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\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 cleantest allgtests-tap TIMEOUT=300 119 artifacts: 120 reports: 121 junit: ${TEST_ARCH}/tests/testresults.xml 122 123.stage-2: 124 extends: .stage-23 125 stage: stage-2 126 only: 127 variables: 128 - $STAGE != "1" 129 - $STAGE != "3" 130 131.stage-3: 132 extends: .stage-23 133 stage: stage-3 134 only: 135 variables: 136 - $STAGE != "1" 137 - $STAGE != "2" 138 139# 140# The following provide templates for various OSes for pre/post info 141# 142 143.linux_test: 144 before_script: 145 - hostname 146 - grep PRETTY_NAME /etc/os-release 147 - echo $(nproc) 148 - ccache --zero-stats 149 after_script: 150 - ccache --show-stats 151 152.freebsd_test: 153 before_script: 154 - hostname 155 - freebsd-version 156 - echo $(sysctl -n hw.ncpu) 157 - ccache --zero-stats 158 after_script: 159 - ccache --show-stats 160 161.osx_test: 162 before_script: 163 - hostname 164 - sw_vers -productVersion 165 - echo $(sysctl -n hw.ncpu) 166 - ccache --zero-stats 167 after_script: 168 - ccache --show-stats 169 170.opensolaris_test: 171 before_script: 172 - hostname 173 - uname -a 174 - echo $(nproc) 175 176.mswin_test: 177 before_script: 178 - hostname 179 - uname -a 180 - echo $(nproc) 181 182# 183# The following tests run as part of stage-2. 184# 185# The tags variable used in the tests below connects the particular test with the runners 186# listed on the left hand side of https://gitlab.com/petsc/petsc/-/settings/ci_cd. 187# For example the test linux-gcc-complex-opt any runner that has the tag 'name:pj02' 188# (in a blue box beneath it) 189# 190 191linux-gcc-complex-opt: 192 extends: 193 - .stage-2 194 - .linux_test 195 tags: 196 - name:pj02 197 variables: 198 TEST_ARCH: arch-ci-linux-gcc-complex-opt 199 200linux-gcc-pkgs-opt: 201 extends: 202 - .stage-2 203 - .linux_test 204 tags: 205 - name:pj02 206 variables: 207 TEST_ARCH: arch-ci-linux-gcc-pkgs-opt 208 209linux-gcc-quad-64idx-dbg: 210 extends: 211 - .stage-2 212 - .linux_test 213 tags: 214 - name:pj02 215 variables: 216 TEST_ARCH: arch-ci-linux-gcc-quad-64idx-dbg 217 218linux-cuda-double: 219 extends: 220 - .stage-2 221 - .linux_test 222 tags: 223 - name:frog 224 variables: 225 PETSC_OPTIONS: < 226 -check_pointer_intensity 0 -error_output_stdout -nox -nox_warning -malloc_dump 227 -cuda_initialize 0 228 TEST_ARCH: arch-ci-linux-cuda-double 229 230freebsd-c-single-opt: 231 extends: 232 - .stage-2 233 - .freebsd_test 234 tags: 235 - os:fbsd 236 variables: 237 TEST_ARCH: arch-ci-freebsd-c-single-opt 238 239freebsd-cxx-cmplx-64idx-dbg: 240 extends: 241 - .stage-2 242 - .freebsd_test 243 tags: 244 - name:petsc-fbsd 245 variables: 246 TEST_ARCH: arch-ci-freebsd-cxx-cmplx-64idx-dbg 247 248opensolaris-misc: 249 extends: 250 - .stage-2 251 - .opensolaris_test 252 tags: 253 - name:n-gage 254 variables: 255 TEST_ARCH: arch-ci-opensolaris-misc 256 257osx-cxx-pkgs-opt: 258 extends: 259 - .stage-2 260 - .osx_test 261 tags: 262 - name:jpro 263 variables: 264 PETSC_OPTIONS: < 265 -check_pointer_intensity 0 -error_output_stdout -nox -nox_warning -malloc_dump 266 -saws_port_auto_select -saws_port_auto_select_silent -vecscatter_mpi1 false -options_left false 267 TEST_ARCH: arch-ci-osx-cxx-pkgs-opt 268 269osx-barry: 270 extends: 271 - .stage-2 272 - .osx_test 273 tags: 274 - os:osx 275 variables: 276 TEST_ARCH: arch-ci-osx-prefix 277 278mswin-uni: 279 extends: 280 - .stage-2 281 - .mswin_test 282 tags: 283 - name:ps5 284 variables: 285 TEST_ARCH: arch-ci-mswin-uni 286 287# 288# The following tests run as part of stage-3. 289# 290 291mswin-intel-cxx-cmplx: 292 extends: 293 - .stage-3 294 - .mswin_test 295 tags: 296 - name:ps5 297 variables: 298 TEST_ARCH: arch-ci-mswin-intel-cxx-cmplx 299 300mswin-intel: 301 extends: 302 - .stage-3 303 - .mswin_test 304 tags: 305 - name:ps5 306 variables: 307 TEST_ARCH: arch-ci-mswin-intel 308 309arch-ci-mswin-opt-impi: 310 extends: 311 - .stage-3 312 - .mswin_test 313 tags: 314 - name:ps4 315 variables: 316 TEST_ARCH: arch-ci-mswin-opt-impi 317 allow_failure: true 318 319 320opensolaris-cmplx-pkgs-dbg: 321 extends: 322 - .stage-3 323 - .opensolaris_test 324 tags: 325 - name:n-gage 326 variables: 327 TEST_ARCH: arch-ci-opensolaris-cmplx-pkgs-dbg 328 329opensolaris-pkgs-opt: 330 extends: 331 - .stage-3 332 - .opensolaris_test 333 tags: 334 - name:n-gage 335 variables: 336 TEST_ARCH: arch-ci-opensolaris-pkgs-opt 337 338freebsd-pkgs-opt: 339 extends: 340 - .stage-3 341 - .freebsd_test 342 tags: 343 - os:fbsd 344 variables: 345 TEST_ARCH: arch-ci-freebsd-pkgs-opt 346 347freebsd-cxx-cmplx-pkgs-dbg: 348 extends: 349 - .stage-3 350 - .freebsd_test 351 tags: 352 - os:fbsd 353 variables: 354 TEST_ARCH: arch-ci-freebsd-cxx-cmplx-pkgs-dbg 355 356freebsd-cxx-pkgs-opt: 357 extends: 358 - .stage-3 359 - .freebsd_test 360 tags: 361 - os:fbsd 362 variables: 363 PETSC_OPTIONS: < 364 -check_pointer_intensity 0 -error_output_stdout -nox -nox_warning -malloc_dump 365 -saws_port_auto_select -saws_port_auto_select_silent -vecscatter_mpi1 false -options_left false 366 variables: 367 TEST_ARCH: arch-ci-freebsd-cxx-pkgs-opt 368 369osx-cxx-cmplx-pkgs-dbg: 370 extends: 371 - .stage-3 372 - .osx_test 373 tags: 374 - os:osx,name:jpro 375 variables: 376 TEST_ARCH: arch-ci-osx-cxx-cmplx-pkgs-dbg 377 378osx-dbg: 379 extends: 380 - .stage-3 381 - .osx_test 382 tags: 383 - os:osx 384 variables: 385 TEST_ARCH: arch-ci-osx-dbg 386 387osx-xsdk-opt: 388 extends: 389 - .stage-3 390 - .osx_test 391 tags: 392 - os:osx 393 variables: 394 TEST_ARCH: arch-ci-osx-xsdk-opt 395 396linux-cmplx-gcov: 397 extends: 398 - .stage-3 399 - .linux_test 400 tags: 401 - name:si 402 variables: 403 PETSC_OPTIONS: < 404 -check_pointer_intensity 0 -error_output_stdout -nox -nox_warning -malloc_dump 405 -vecscatter_mpi1 false -options_left false 406 TEST_ARCH: arch-ci-linux-cmplx-gcov 407 408linux-cmplx-single: 409 extends: 410 - .stage-3 411 - .linux_test 412 tags: 413 - name:si 414 variables: 415 TEST_ARCH: arch-ci-linux-cmplx-single 416 417linux-without-fc: 418 extends: 419 - .stage-3 420 - .linux_test 421 tags: 422 - name:si 423 variables: 424 TEST_ARCH: arch-ci-linux-without-fc 425 426linux-clang-avx: 427 extends: 428 - .stage-3 429 - .linux_test 430 tags: 431 - name:isdp001 432 variables: 433 TEST_ARCH: arch-ci-linux-clang-avx 434 435linux-gcc-cxx-avx2: 436 extends: 437 - .stage-3 438 - .linux_test 439 tags: 440 - name:isdp001 441 variables: 442 TEST_ARCH: arch-ci-linux-gcc-cxx-avx2 443 444linux-knl: 445 extends: 446 - .stage-3 447 - .linux_test 448 tags: 449 - name:isdp001 450 variables: 451 TEST_ARCH: arch-ci-linux-knl 452 453linux-c-exodus-dbg: 454 extends: 455 - .stage-3 456 - .linux_test 457 tags: 458 - name:frog 459 variables: 460 PETSC_OPTIONS: < 461 -check_pointer_intensity 0 -error_output_stdout -nox -nox_warning -malloc_dump 462 -cuda_initialize 0 463 TEST_ARCH: arch-ci-linux-c-exodus-dbg 464 465linux-cuda-single: 466 extends: 467 - .stage-3 468 - .linux_test 469 tags: 470 - name:frog 471 variables: 472 PETSC_OPTIONS: < 473 -check_pointer_intensity 0 -error_output_stdout -nox -nox_warning -malloc_dump 474 -cuda_initialize 0 475 TEST_ARCH: arch-ci-linux-cuda-single 476 477linux-viennacl: 478 extends: 479 - .stage-3 480 - .linux_test 481 tags: 482 - name:frog 483 variables: 484 TEST_ARCH: arch-ci-linux-viennacl 485 486linux-opt-misc: 487 extends: 488 - .stage-3 489 - .linux_test 490 tags: 491 - name:asterix 492 variables: 493 TEST_ARCH: arch-ci-linux-opt-misc 494 495linux-pkgs-cxx-mlib: 496 extends: 497 - .stage-3 498 - .linux_test 499 tags: 500 - name:asterix 501 variables: 502 PETSC_OPTIONS: < 503 -check_pointer_intensity 0 -error_output_stdout -nox -nox_warning -malloc_dump 504 -saws_port_auto_select -saws_port_auto_select_silent 505 TEST_ARCH: arch-ci-linux-pkgs-cxx-mlib 506 507linux-cxx-cmplx-pkgs-64idx: 508 extends: 509 - .stage-3 510 - .linux_test 511 tags: 512 - name:fedora 513 variables: 514 TEST_ARCH: arch-ci-linux-cxx-cmplx-pkgs-64idx 515 516linux-pkgs-dbg-ftn-interfaces: 517 extends: 518 - .stage-3 519 - .linux_test 520 tags: 521 - name:fedora 522 variables: 523 TEST_ARCH: arch-ci-linux-pkgs-dbg-ftn-interfaces 524 525linux-analyzer: 526 extends: 527 - .stage-3 528 - .linux_test 529 tags: 530 - mcs-nfs 531 variables: 532 TEST_ARCH: arch-ci-linux-analyzer 533 534linux-gcc-ifc-cmplx: 535 extends: 536 - .stage-3 537 - .linux_test 538 tags: 539 - mcs-nfs 540 variables: 541 TEST_ARCH: arch-ci-linux-gcc-ifc-cmplx 542 543linux-gcov: 544 extends: 545 - .stage-3 546 - .linux_test 547 tags: 548 - mcs-nfs 549 variables: 550 TEST_ARCH: arch-ci-linux-gcov 551 552linux-IPL64: 553 extends: 554 - .stage-3 555 - .linux_test 556 tags: 557 - mcs-nfs 558 variables: 559 TEST_ARCH: arch-ci-linux-IPL64 560 561linux-matlab-ilp64-gcov: 562 extends: 563 - .stage-3 564 - .linux_test 565 tags: 566 - mcs-nfs 567 variables: 568 TEST_ARCH: arch-ci-linux-matlab-ilp64-gcov 569 570linux-opt-cxx-quad: 571 extends: 572 - .stage-3 573 - .linux_test 574 tags: 575 - mcs-nfs 576 variables: 577 TEST_ARCH: arch-ci-linux-opt-cxx-quad 578 579linux-pgi: 580 extends: 581 - .stage-3 582 - .linux_test 583 tags: 584 - mcs-nfs 585 variables: 586 TEST_ARCH: arch-ci-linux-pgi 587 588linux-pkgs-64idx: 589 extends: 590 - .stage-3 591 - .linux_test 592 tags: 593 - mcs-nfs 594 variables: 595 TEST_ARCH: arch-ci-linux-pkgs-64idx 596 597linux-pkgs-gcov: 598 extends: 599 - .stage-3 600 - .linux_test 601 tags: 602 - mcs-nfs 603 variables: 604 TEST_ARCH: arch-ci-linux-pkgs-gcov 605 606linux-pkgs-opt: 607 extends: 608 - .stage-3 609 - .linux_test 610 tags: 611 - mcs-nfs 612 variables: 613 PETSC_OPTIONS: < 614 -check_pointer_intensity 0 -error_output_stdout -nox -nox_warning -malloc_dump 615 -saws_port_auto_select -saws_port_auto_select_silent 616 TEST_ARCH: arch-ci-linux-pkgs-opt 617 618linux-pkgs-valgrind: 619 extends: 620 - .stage-3 621 - .linux_test 622 tags: 623 - mcs-nfs,server 624 variables: 625 TEST_ARCH: arch-ci-linux-pkgs-valgrind 626 627linux-xsdk-dbg: 628 extends: 629 - .stage-3 630 - .linux_test 631 tags: 632 - mcs-nfs 633 variables: 634 TEST_ARCH: arch-ci-linux-xsdk-dbg 635 636linux-pardiso: 637 extends: 638 - .stage-3 639 - .linux_test 640 tags: 641 - mcs-nfs 642 variables: 643 TEST_ARCH: arch-ci-linux-pardiso 644 645# 646# The following tests are experimental; more tests by users at other sites may be added below this. Experimental test 647# that fail produce a warning, but do not block execution of a pipeline. 648# 649 650.test-experimental: 651 extends: .test 652 allow_failure: true 653 654