1# 2# stage-1 take only a few minutes and generally run on the cloud; they do not run the full test suite or external packages. 3# 4# stage-2 runs on MCS systems and may take 10 to 15 minutes. They run the full test suite but with limited mixture of external packages 5# 6# stage-3 runs on MCS systems and may take an hour or more. They run the full test suite and heavily test external packages, utilize valgrind etc 7# (not yet implemented) 8# 9# The stage-(n) tests are only started if all of the stage-(n-1) tests run without error 10# You can limit the testing by using the variable STAGE with value 1 or 2 11# 12# By default the test branch is merged to master before testing. (not yet implemented) 13# You can limite this by using the variable MERGETOMASTER with value 0 (not yet implemented) 14# 15 16stages: 17 - stage-1 18 - stage-2 19 - stage-3 20variables: 21 GIT_STRATEGY: fetch 22 GIT_CLEAN_FLAGS: -ffdxq 23 PETSC_OPTIONS: -check_pointer_intensity 0 -error_output_stdout -nox -nox_warning -malloc_dump 24 TIMEOUT: 600 25 26# 27# The most basic template that most tests will expand upon. In particular merge requests and branch pushes DO NOT trigger testing 28# 29 30.test: 31 only: 32 refs: 33# Set with CI/CD Shedules - New Schedule 34 - schedules 35# Set with CI/CD Pipelines - Run Pipeline 36 - web 37 38# 39# This provides the basic order of operations and options template for cloud based stage 1 tests. 40# Not all test-short need to follow this template but most will. 41# 42 43.stage-1: 44 extends: .test 45 stage: stage-1 46 image: jedbrown/mpich-ccache 47 before_script: 48 - echo nproc=$(nproc) 49 - cat /proc/cpuinfo 50 - export CCACHE_COMPILERCHECK=content 51 - export CCACHE_DIR=$(pwd)/.ccache 52 - ccache --show-stats 53 - ccache --zero-stats 54 - echo CONFIG_OPTS=$(CONFIG_OPTS) 55 script: 56 - ${PYTHON} ./configure --with-debugging=0 COPTFLAGS='-O -march=native' CXXOPTFLAGS='-O -march=native' FOPTFLAGS='-O -march=native' ${CONFIG_OPTS} 57 - make CFLAGS=-Werror 58 - make allgtests-tap search="${TEST_SEARCH}" TIMEOUT=${TIMEOUT} 59 after_script: 60 - CCACHE_DIR=$(pwd)/.ccache ccache --show-stats 61 artifacts: 62 reports: 63 junit: arch-*/tests/testresults.xml 64 cache: 65 paths: 66 - .ccache/ 67 key: "${CI_JOB_NAME}" 68 69# 70# The following tests run on the cloud as part of stage-1. 71# 72 73mpich-cxx-py3: 74 extends: .stage-1 75 variables: 76 PYTHON: python3 77 CONFIG_OPTS: --with-mpi-dir=/usr/local --with-clanguage=cxx --with-fc=0 78 TEST_SEARCH: snes_tutorials-ex48% 79 80uni-complex-float-int64: 81 extends: .stage-1 82 variables: 83 PYTHON: python3 84 CONFIG_OPTS: --with-mpi=0 --with-scalar-type=complex --with-precision=single --with-64-bit-indices 85 TEST_SEARCH: ts_tutorials-ex11_adv_2d_quad_% 86 87c89-mlib-static-py2: 88 extends: .stage-1 89 image: jedbrown/mpich-ccache:python2 90 variables: 91 PYTHON: python2 92 CONFIG_OPTS: --with-mpi-dir=/usr/local --with-single-library=0 --with-shared-libraries=0 CFLAGS=-std=c89 93 TEST_SEARCH: snes_tutorials-ex19% 94 95checksource: 96 extends: .test 97 image: jedbrown/mpich-ccache 98 stage: stage-1 99 script: 100 - python3 ./configure --with-mpi=0 --with-fc=0 --with-cxx=0 101 - make checkbadSource SHELL=bash 102 - make check_output SHELL=bash 103 104# 105# This provides the basic order of operations and options template for stage-2,3 tests. 106# Not all stage-2,3 need to follow this template, but most will. 107# 108.stage-23: 109 extends: .test 110 script: 111 - printf "PATH:$PATH\n" 112 - printf "PETSC_OPTIONS:$PETSC_OPTIONS\n" 113 - printf "./config/examples/${TEST_ARCH}.py\n" 114 - cat ./config/examples/${TEST_ARCH}.py 115 - ./config/examples/${TEST_ARCH}.py 116 - make 117 - make check 118 - make updatedatafiles 119 - make cleantest allgtests-tap TIMEOUT=${TIMEOUT} 120 artifacts: 121 reports: 122 junit: ${TEST_ARCH}/tests/testresults.xml 123 124.stage-2: 125 extends: .stage-23 126 stage: stage-2 127 only: 128 variables: 129 - $STAGE != "1" 130 - $STAGE != "3" 131 132.stage-3: 133 extends: .stage-23 134 stage: stage-3 135 only: 136 variables: 137 - $STAGE != "1" 138 - $STAGE != "2" 139 140# 141# The following provide templates for various OSes for pre/post info 142# 143 144.linux_test: 145 before_script: 146 - hostname 147 - grep PRETTY_NAME /etc/os-release 148 - echo $(nproc) 149 - ccache --zero-stats 150 after_script: 151 - ccache --show-stats 152 153.freebsd_test: 154 before_script: 155 - hostname 156 - freebsd-version 157 - echo $(sysctl -n hw.ncpu) 158 - ccache --zero-stats 159 after_script: 160 - ccache --show-stats 161 162.osx_test: 163 before_script: 164 - hostname 165 - sw_vers -productVersion 166 - echo $(sysctl -n hw.ncpu) 167 - ccache --zero-stats 168 after_script: 169 - ccache --show-stats 170 171.opensolaris_test: 172 before_script: 173 - hostname 174 - uname -a 175 - echo $(nproc) 176 177.mswin_test: 178 before_script: 179 - hostname 180 - uname -a 181 - echo $(nproc) 182 183# 184# The following tests run as part of stage-2. 185# 186# The tags variable used in the tests below connects the particular test with the runners 187# listed on the left hand side of https://gitlab.com/petsc/petsc/-/settings/ci_cd. 188# For example the test linux-gcc-complex-opt any runner that has the tag 'name:pj02' 189# (in a blue box beneath it) 190# 191 192linux-gcc-complex-opt: 193 extends: 194 - .stage-2 195 - .linux_test 196 tags: 197 - linux-dell 198 variables: 199 TEST_ARCH: arch-ci-linux-gcc-complex-opt 200 201linux-gcc-pkgs-opt: 202 extends: 203 - .stage-2 204 - .linux_test 205 tags: 206 - linux-dell 207 variables: 208 TEST_ARCH: arch-ci-linux-gcc-pkgs-opt 209 210linux-gcc-quad-64idx-dbg: 211 extends: 212 - .stage-2 213 - .linux_test 214 tags: 215 - linux-dell 216 variables: 217 TEST_ARCH: arch-ci-linux-gcc-quad-64idx-dbg 218 219linux-cuda-double: 220 extends: 221 - .stage-2 222 - .linux_test 223 tags: 224 - name:frog 225 variables: 226 PETSC_OPTIONS: -check_pointer_intensity 0 -error_output_stdout -nox -nox_warning -malloc_dump -cuda_initialize 0 227 TEST_ARCH: arch-ci-linux-cuda-double 228 229freebsd-c-single-opt: 230 extends: 231 - .stage-2 232 - .freebsd_test 233 tags: 234 - os:fbsd 235 variables: 236 TEST_ARCH: arch-ci-freebsd-c-single-opt 237 238freebsd-cxx-cmplx-64idx-dbg: 239 extends: 240 - .stage-2 241 - .freebsd_test 242 tags: 243 - name:petsc-fbsd 244 variables: 245 TEST_ARCH: arch-ci-freebsd-cxx-cmplx-64idx-dbg 246 247opensolaris-misc: 248 extends: 249 - .stage-3 250 - .opensolaris_test 251 tags: 252 - name:n-gage 253 variables: 254 TEST_ARCH: arch-ci-opensolaris-misc 255 256osx-cxx-pkgs-opt: 257 extends: 258 - .stage-2 259 - .osx_test 260 tags: 261 - os:osx 262 variables: 263 PETSC_OPTIONS: -check_pointer_intensity 0 -error_output_stdout -nox -nox_warning -malloc_dump -saws_port_auto_select -saws_port_auto_select_silent -vecscatter_mpi1 false -options_left false 264 TEST_ARCH: arch-ci-osx-cxx-pkgs-opt 265 266mswin-uni: 267 extends: 268 - .stage-2 269 - .mswin_test 270 tags: 271 - name:ps5-2 272 variables: 273 TEST_ARCH: arch-ci-mswin-uni 274 275# 276# The following tests run as part of stage-3. 277# 278 279mswin-intel-cxx-cmplx: 280 extends: 281 - .stage-3 282 - .mswin_test 283 tags: 284 - name:ps5 285 variables: 286 TEST_ARCH: arch-ci-mswin-intel-cxx-cmplx 287 288mswin-intel: 289 extends: 290 - .stage-3 291 - .mswin_test 292 tags: 293 - name:ps5 294 variables: 295 TEST_ARCH: arch-ci-mswin-intel 296 297arch-ci-mswin-opt-impi: 298 extends: 299 - .stage-3 300 - .mswin_test 301 tags: 302 - name:ps4 303 variables: 304 TEST_ARCH: arch-ci-mswin-opt-impi 305 allow_failure: true 306 307 308opensolaris-cmplx-pkgs-dbg: 309 extends: 310 - .stage-3 311 - .opensolaris_test 312 tags: 313 - name:n-gage 314 variables: 315 TEST_ARCH: arch-ci-opensolaris-cmplx-pkgs-dbg 316 317opensolaris-pkgs-opt: 318 extends: 319 - .stage-3 320 - .opensolaris_test 321 tags: 322 - name:n-gage 323 variables: 324 TEST_ARCH: arch-ci-opensolaris-pkgs-opt 325 326freebsd-pkgs-opt: 327 extends: 328 - .stage-3 329 - .freebsd_test 330 tags: 331 - os:fbsd 332 variables: 333 TEST_ARCH: arch-ci-freebsd-pkgs-opt 334 335freebsd-cxx-cmplx-pkgs-dbg: 336 extends: 337 - .stage-3 338 - .freebsd_test 339 tags: 340 - os:fbsd 341 variables: 342 TEST_ARCH: arch-ci-freebsd-cxx-cmplx-pkgs-dbg 343 344freebsd-cxx-pkgs-opt: 345 extends: 346 - .stage-3 347 - .freebsd_test 348 tags: 349 - os:fbsd 350 variables: 351 PETSC_OPTIONS: -check_pointer_intensity 0 -error_output_stdout -nox -nox_warning -malloc_dump -saws_port_auto_select -saws_port_auto_select_silent -vecscatter_mpi1 false -options_left false 352 TEST_ARCH: arch-ci-freebsd-cxx-pkgs-opt 353 354osx-cxx-cmplx-pkgs-dbg: 355 extends: 356 - .stage-3 357 - .osx_test 358 tags: 359 - os:osx 360 variables: 361 TEST_ARCH: arch-ci-osx-cxx-cmplx-pkgs-dbg 362 363osx-dbg: 364 extends: 365 - .stage-3 366 - .osx_test 367 tags: 368 - os:osx 369 variables: 370 TEST_ARCH: arch-ci-osx-dbg 371 372osx-xsdk-opt: 373 extends: 374 - .stage-3 375 - .osx_test 376 tags: 377 - os:osx 378 variables: 379 TEST_ARCH: arch-ci-osx-xsdk-opt 380 381linux-cmplx-gcov: 382 extends: 383 - .stage-3 384 - .linux_test 385 tags: 386 - mcs-nfs 387 variables: 388 PETSC_OPTIONS: -check_pointer_intensity 0 -error_output_stdout -nox -nox_warning -malloc_dump -vecscatter_mpi1 false -options_left false 389 TEST_ARCH: arch-ci-linux-cmplx-gcov 390 391linux-cmplx-single: 392 extends: 393 - .stage-3 394 - .linux_test 395 tags: 396 - name:si 397 variables: 398 TEST_ARCH: arch-ci-linux-cmplx-single 399 400linux-without-fc: 401 extends: 402 - .stage-3 403 - .linux_test 404 tags: 405 - name:si 406 variables: 407 TEST_ARCH: arch-ci-linux-without-fc 408 409linux-clang-avx: 410 extends: 411 - .stage-3 412 - .linux_test 413 tags: 414 - name:isdp001 415 variables: 416 TEST_ARCH: arch-ci-linux-clang-avx 417 418linux-gcc-cxx-avx2: 419 extends: 420 - .stage-3 421 - .linux_test 422 tags: 423 - name:isdp001 424 variables: 425 TEST_ARCH: arch-ci-linux-gcc-cxx-avx2 426 427linux-knl: 428 extends: 429 - .stage-3 430 - .linux_test 431 tags: 432 - name:isdp001 433 variables: 434 TEST_ARCH: arch-ci-linux-knl 435 436linux-c-exodus-dbg: 437 extends: 438 - .stage-3 439 - .linux_test 440 tags: 441 - name:frog 442 variables: 443 PETSC_OPTIONS: -check_pointer_intensity 0 -error_output_stdout -nox -nox_warning -malloc_dump -cuda_initialize 0 444 TEST_ARCH: arch-ci-linux-c-exodus-dbg 445 446linux-cuda-single: 447 extends: 448 - .stage-3 449 - .linux_test 450 tags: 451 - name:frog 452 variables: 453 OPENBLAS_NUM_THREADS: 1 454 PETSC_OPTIONS: -check_pointer_intensity 0 -error_output_stdout -nox -nox_warning -malloc_dump -cuda_initialize 0 455 TEST_ARCH: arch-ci-linux-cuda-single 456 457linux-viennacl: 458 extends: 459 - .stage-3 460 - .linux_test 461 tags: 462 - name:frog 463 variables: 464 TEST_ARCH: arch-ci-linux-viennacl 465 466linux-opt-misc: 467 extends: 468 - .stage-3 469 - .linux_test 470 tags: 471 - name:compute004 472 variables: 473 OPENBLAS_NUM_THREADS: 1 474 TEST_ARCH: arch-ci-linux-opt-misc 475 476linux-pkgs-cxx-mlib: 477 extends: 478 - .stage-3 479 - .linux_test 480 tags: 481 - name:pj02 482 variables: 483 PETSC_OPTIONS: -check_pointer_intensity 0 -error_output_stdout -nox -nox_warning -malloc_dump -saws_port_auto_select -saws_port_auto_select_silent 484 TEST_ARCH: arch-ci-linux-pkgs-cxx-mlib 485 486linux-cxx-cmplx-pkgs-64idx: 487 extends: 488 - .stage-3 489 - .linux_test 490 tags: 491 - name:pj01 492 variables: 493 TEST_ARCH: arch-ci-linux-cxx-cmplx-pkgs-64idx 494 495linux-pkgs-dbg-ftn-interfaces: 496 extends: 497 - .stage-3 498 - .linux_test 499 tags: 500 - name:pj02 501 variables: 502 TEST_ARCH: arch-ci-linux-pkgs-dbg-ftn-interfaces 503 504linux-analyzer: 505 extends: 506 - .stage-3 507 - .linux_test 508 tags: 509 - mcs-nfs 510 variables: 511 TEST_ARCH: arch-ci-linux-analyzer 512 513linux-gcc-ifc-cmplx: 514 extends: 515 - .stage-3 516 - .linux_test 517 tags: 518 - mcs-nfs 519 variables: 520 TEST_ARCH: arch-ci-linux-gcc-ifc-cmplx 521 522linux-gcov: 523 extends: 524 - .stage-3 525 - .linux_test 526 tags: 527 - mcs-nfs 528 variables: 529 TEST_ARCH: arch-ci-linux-gcov 530 531linux-ILP64: 532 extends: 533 - .stage-3 534 - .linux_test 535 tags: 536 - name:compute004 537 variables: 538 OPENBLAS_NUM_THREADS: 1 539 TEST_ARCH: arch-ci-linux-ILP64 540 541linux-matlab-ilp64-gcov: 542 extends: 543 - .stage-3 544 - .linux_test 545 tags: 546 - mcs-nfs 547 variables: 548 TEST_ARCH: arch-ci-linux-matlab-ilp64-gcov 549 550linux-opt-cxx-quad: 551 extends: 552 - .stage-3 553 - .linux_test 554 tags: 555 - mcs-nfs 556 variables: 557 TEST_ARCH: arch-ci-linux-opt-cxx-quad 558 559linux-pgi: 560 extends: 561 - .stage-3 562 - .linux_test 563 tags: 564 - mcs-nfs,name:petsc 565 variables: 566 TEST_ARCH: arch-ci-linux-pgi 567 568linux-pkgs-64idx: 569 extends: 570 - .stage-3 571 - .linux_test 572 tags: 573 - mcs-nfs 574 variables: 575 TEST_ARCH: arch-ci-linux-pkgs-64idx 576 577linux-pkgs-gcov: 578 extends: 579 - .stage-3 580 - .linux_test 581 tags: 582 - mcs-nfs 583 variables: 584 TEST_ARCH: arch-ci-linux-pkgs-gcov 585 586linux-pkgs-opt: 587 extends: 588 - .stage-3 589 - .linux_test 590 tags: 591 - name:compute004 592 variables: 593 PETSC_OPTIONS: -check_pointer_intensity 0 -error_output_stdout -nox -nox_warning -malloc_dump -saws_port_auto_select -saws_port_auto_select_silent 594 TEST_ARCH: arch-ci-linux-pkgs-opt 595 596linux-pkgs-valgrind: 597 extends: 598 - .stage-3 599 - .linux_test 600 tags: 601 - mcs-nfs,server 602 variables: 603 TEST_ARCH: arch-ci-linux-pkgs-valgrind 604 TIMEOUT: 7200 605 606linux-xsdk-dbg: 607 extends: 608 - .stage-3 609 - .linux_test 610 tags: 611 - mcs-nfs 612 variables: 613 TEST_ARCH: arch-ci-linux-xsdk-dbg 614 615linux-pardiso: 616 extends: 617 - .stage-3 618 - .linux_test 619 tags: 620 - mcs-nfs 621 variables: 622 TEST_ARCH: arch-ci-linux-pardiso 623 624# 625# The following tests are experimental; more tests by users at other sites may be added below this. Experimental test 626# that fail produce a warning, but do not block execution of a pipeline. 627# 628 629.test-experimental: 630 extends: .test 631 allow_failure: true 632 633