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 25# 26# The most basic template that most tests will expand upon. In particular merge requests and branch pushes DO NOT trigger testing 27# 28 29.test: 30 only: 31 refs: 32# Set with CI/CD Shedules - New Schedule 33 - schedules 34# Set with CI/CD Pipelines - Run Pipeline 35 - web 36 37# 38# This provides the basic order of operations and options template for cloud based stage 1 tests. 39# Not all test-short need to follow this template but most will. 40# 41 42.stage-1: 43 extends: .test 44 stage: stage-1 45 image: jedbrown/mpich-ccache 46 before_script: 47 - echo nproc=$(nproc) 48 - cat /proc/cpuinfo 49 - export CCACHE_COMPILERCHECK=content 50 - export CCACHE_DIR=$(pwd)/.ccache 51 - ccache --show-stats 52 - ccache --zero-stats 53 script: 54 - ${PYTHON} ./configure --with-debugging=0 COPTFLAGS='-O -march=native' CXXOPTFLAGS='-O -march=native' FOPTFLAGS='-O -march=native' ${CONFIG_OPTS} 55 - make CFLAGS=-Werror 56 - make allgtests-tap search="${TEST_SEARCH}" TIMEOUT=300 57 after_script: 58 - CCACHE_DIR=$(pwd)/.ccache ccache --show-stats 59 artifacts: 60 reports: 61 junit: arch-*/tests/testresults.xml 62 cache: 63 paths: 64 - .ccache/ 65 key: "${CI_JOB_NAME}" 66 67# 68# The following tests run on the cloud as part of stage-1. 69# 70 71mpich-cxx-py3: 72 extends: .stage-1 73 variables: 74 PYTHON: python3 75 CONFIG_OPTS: --with-mpi-dir=/usr/local --with-clanguage=cxx --with-fc=0 76 TEST_SEARCH: snes_tutorials-ex48% 77 78uni-complex-float-int64: 79 extends: .stage-1 80 variables: 81 PYTHON: python3 82 CONFIG_OPTS: < 83 --with-mpi=0 84 --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: < 93 --with-mpi-dir=/usr/local 94 --with-single-library=0 --with-shared-libraries=0 'CFLAGS=-std=c89 -pedantic -Wno-long-long -Wno-overlength-strings' 95 TEST_SEARCH: snes_tutorials-ex48% 96 97checksource: 98 extends: .test 99 image: jedbrown/mpich-ccache 100 stage: stage-1 101 script: 102 - python3 ./configure --with-mpi=0 --with-fc=0 --with-cxx=0 103 - make checkbadSource SHELL=bash 104 105# 106# This provides the basic order of operations and options template for stage-2,3 tests. 107# Not all stage-2,3 need to follow this template, but most will. 108# 109.stage-23: 110 extends: .test 111 script: 112 - printf "PATH:$PATH\n" 113 - printf "PETSC_OPTIONS:$PETSC_OPTIONS\n" 114 - printf "./config/examples/${TEST_ARCH}.py\n" 115 - cat ./config/examples/${TEST_ARCH}.py 116 - ./config/examples/${TEST_ARCH}.py 117 - make 118 - make check 119 - make cleantest allgtests-tap TIMEOUT=300 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-2 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 266osx-barry: 267 extends: 268 - .stage-2 269 - .osx_test 270 tags: 271 - os:osx 272 variables: 273 TEST_ARCH: arch-ci-osx-prefix 274 275mswin-uni: 276 extends: 277 - .stage-2 278 - .mswin_test 279 tags: 280 - name:ps5 281 variables: 282 TEST_ARCH: arch-ci-mswin-uni 283 284# 285# The following tests run as part of stage-3. 286# 287 288mswin-intel-cxx-cmplx: 289 extends: 290 - .stage-3 291 - .mswin_test 292 tags: 293 - name:ps5 294 variables: 295 TEST_ARCH: arch-ci-mswin-intel-cxx-cmplx 296 297mswin-intel: 298 extends: 299 - .stage-3 300 - .mswin_test 301 tags: 302 - name:ps5 303 variables: 304 TEST_ARCH: arch-ci-mswin-intel 305 306arch-ci-mswin-opt-impi: 307 extends: 308 - .stage-3 309 - .mswin_test 310 tags: 311 - name:ps4 312 variables: 313 TEST_ARCH: arch-ci-mswin-opt-impi 314 allow_failure: true 315 316 317opensolaris-cmplx-pkgs-dbg: 318 extends: 319 - .stage-3 320 - .opensolaris_test 321 tags: 322 - name:n-gage 323 variables: 324 TEST_ARCH: arch-ci-opensolaris-cmplx-pkgs-dbg 325 326opensolaris-pkgs-opt: 327 extends: 328 - .stage-3 329 - .opensolaris_test 330 tags: 331 - name:n-gage 332 variables: 333 TEST_ARCH: arch-ci-opensolaris-pkgs-opt 334 335freebsd-pkgs-opt: 336 extends: 337 - .stage-3 338 - .freebsd_test 339 tags: 340 - os:fbsd 341 variables: 342 TEST_ARCH: arch-ci-freebsd-pkgs-opt 343 344freebsd-cxx-cmplx-pkgs-dbg: 345 extends: 346 - .stage-3 347 - .freebsd_test 348 tags: 349 - os:fbsd 350 variables: 351 TEST_ARCH: arch-ci-freebsd-cxx-cmplx-pkgs-dbg 352 353freebsd-cxx-pkgs-opt: 354 extends: 355 - .stage-3 356 - .freebsd_test 357 tags: 358 - os:fbsd 359 variables: 360 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 361 TEST_ARCH: arch-ci-freebsd-cxx-pkgs-opt 362 363osx-cxx-cmplx-pkgs-dbg: 364 extends: 365 - .stage-3 366 - .osx_test 367 tags: 368 - os:osx 369 variables: 370 TEST_ARCH: arch-ci-osx-cxx-cmplx-pkgs-dbg 371 372osx-dbg: 373 extends: 374 - .stage-3 375 - .osx_test 376 tags: 377 - os:osx 378 variables: 379 TEST_ARCH: arch-ci-osx-dbg 380 381osx-xsdk-opt: 382 extends: 383 - .stage-3 384 - .osx_test 385 tags: 386 - os:osx 387 variables: 388 TEST_ARCH: arch-ci-osx-xsdk-opt 389 390linux-cmplx-gcov: 391 extends: 392 - .stage-3 393 - .linux_test 394 tags: 395 - mcs-nfs 396 variables: 397 PETSC_OPTIONS: -check_pointer_intensity 0 -error_output_stdout -nox -nox_warning -malloc_dump -vecscatter_mpi1 false -options_left false 398 TEST_ARCH: arch-ci-linux-cmplx-gcov 399 400linux-cmplx-single: 401 extends: 402 - .stage-3 403 - .linux_test 404 tags: 405 - name:si 406 variables: 407 TEST_ARCH: arch-ci-linux-cmplx-single 408 409linux-without-fc: 410 extends: 411 - .stage-3 412 - .linux_test 413 tags: 414 - name:si 415 variables: 416 TEST_ARCH: arch-ci-linux-without-fc 417 418linux-clang-avx: 419 extends: 420 - .stage-3 421 - .linux_test 422 tags: 423 - name:isdp001 424 variables: 425 TEST_ARCH: arch-ci-linux-clang-avx 426 427linux-gcc-cxx-avx2: 428 extends: 429 - .stage-3 430 - .linux_test 431 tags: 432 - name:isdp001 433 variables: 434 TEST_ARCH: arch-ci-linux-gcc-cxx-avx2 435 436linux-knl: 437 extends: 438 - .stage-3 439 - .linux_test 440 tags: 441 - name:isdp001 442 variables: 443 TEST_ARCH: arch-ci-linux-knl 444 445linux-c-exodus-dbg: 446 extends: 447 - .stage-3 448 - .linux_test 449 tags: 450 - name:frog 451 variables: 452 PETSC_OPTIONS: -check_pointer_intensity 0 -error_output_stdout -nox -nox_warning -malloc_dump -cuda_initialize 0 453 TEST_ARCH: arch-ci-linux-c-exodus-dbg 454 455linux-cuda-single: 456 extends: 457 - .stage-3 458 - .linux_test 459 tags: 460 - name:frog 461 variables: 462 PETSC_OPTIONS: -check_pointer_intensity 0 -error_output_stdout -nox -nox_warning -malloc_dump -cuda_initialize 0 463 TEST_ARCH: arch-ci-linux-cuda-single 464 465linux-viennacl: 466 extends: 467 - .stage-3 468 - .linux_test 469 tags: 470 - name:frog 471 variables: 472 TEST_ARCH: arch-ci-linux-viennacl 473 474linux-opt-misc: 475 extends: 476 - .stage-3 477 - .linux_test 478 tags: 479 - mcs-nfs,name:cg 480 variables: 481 TEST_ARCH: arch-ci-linux-opt-misc 482 483linux-pkgs-cxx-mlib: 484 extends: 485 - .stage-3 486 - .linux_test 487 tags: 488 - name:pj02 489 variables: 490 PETSC_OPTIONS: -check_pointer_intensity 0 -error_output_stdout -nox -nox_warning -malloc_dump -saws_port_auto_select -saws_port_auto_select_silent 491 TEST_ARCH: arch-ci-linux-pkgs-cxx-mlib 492 493linux-cxx-cmplx-pkgs-64idx: 494 extends: 495 - .stage-3 496 - .linux_test 497 tags: 498 - name:pj01 499 variables: 500 TEST_ARCH: arch-ci-linux-cxx-cmplx-pkgs-64idx 501 502linux-pkgs-dbg-ftn-interfaces: 503 extends: 504 - .stage-3 505 - .linux_test 506 tags: 507 - name:pj02 508 variables: 509 TEST_ARCH: arch-ci-linux-pkgs-dbg-ftn-interfaces 510 511linux-analyzer: 512 extends: 513 - .stage-3 514 - .linux_test 515 tags: 516 - mcs-nfs 517 variables: 518 TEST_ARCH: arch-ci-linux-analyzer 519 520linux-gcc-ifc-cmplx: 521 extends: 522 - .stage-3 523 - .linux_test 524 tags: 525 - mcs-nfs 526 variables: 527 TEST_ARCH: arch-ci-linux-gcc-ifc-cmplx 528 529linux-gcov: 530 extends: 531 - .stage-3 532 - .linux_test 533 tags: 534 - mcs-nfs 535 variables: 536 TEST_ARCH: arch-ci-linux-gcov 537 538linux-IPL64: 539 extends: 540 - .stage-3 541 - .linux_test 542 tags: 543 - mcs-nfs,name:cg 544 variables: 545 TEST_ARCH: arch-ci-linux-IPL64 546 547linux-matlab-ilp64-gcov: 548 extends: 549 - .stage-3 550 - .linux_test 551 tags: 552 - mcs-nfs 553 variables: 554 TEST_ARCH: arch-ci-linux-matlab-ilp64-gcov 555 556linux-opt-cxx-quad: 557 extends: 558 - .stage-3 559 - .linux_test 560 tags: 561 - mcs-nfs 562 variables: 563 TEST_ARCH: arch-ci-linux-opt-cxx-quad 564 565linux-pgi: 566 extends: 567 - .stage-3 568 - .linux_test 569 tags: 570 - mcs-nfs,name:petsc 571 variables: 572 TEST_ARCH: arch-ci-linux-pgi 573 574linux-pkgs-64idx: 575 extends: 576 - .stage-3 577 - .linux_test 578 tags: 579 - mcs-nfs 580 variables: 581 TEST_ARCH: arch-ci-linux-pkgs-64idx 582 583linux-pkgs-gcov: 584 extends: 585 - .stage-3 586 - .linux_test 587 tags: 588 - mcs-nfs 589 variables: 590 TEST_ARCH: arch-ci-linux-pkgs-gcov 591 592linux-pkgs-opt: 593 extends: 594 - .stage-3 595 - .linux_test 596 tags: 597 - mcs-nfs 598 variables: 599 PETSC_OPTIONS: -check_pointer_intensity 0 -error_output_stdout -nox -nox_warning -malloc_dump -saws_port_auto_select -saws_port_auto_select_silent 600 TEST_ARCH: arch-ci-linux-pkgs-opt 601 602linux-pkgs-valgrind: 603 extends: 604 - .stage-3 605 - .linux_test 606 tags: 607 - mcs-nfs,server 608 variables: 609 TEST_ARCH: arch-ci-linux-pkgs-valgrind 610 611linux-xsdk-dbg: 612 extends: 613 - .stage-3 614 - .linux_test 615 tags: 616 - mcs-nfs 617 variables: 618 TEST_ARCH: arch-ci-linux-xsdk-dbg 619 620linux-pardiso: 621 extends: 622 - .stage-3 623 - .linux_test 624 tags: 625 - mcs-nfs 626 variables: 627 TEST_ARCH: arch-ci-linux-pardiso 628 629# 630# The following tests are experimental; more tests by users at other sites may be added below this. Experimental test 631# that fail produce a warning, but do not block execution of a pipeline. 632# 633 634.test-experimental: 635 extends: .test 636 allow_failure: true 637 638