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 dependencies: [] 38 39# 40# This provides the basic order of operations and options template for cloud based stage 1 tests. 41# Not all test-short need to follow this template but most will. 42# 43 44.stage-1: 45 extends: .test 46 stage: stage-1 47 image: jedbrown/mpich-ccache 48 before_script: 49 - date 50 - echo nproc=$(nproc) 51 - cat /proc/cpuinfo 52 - export CCACHE_COMPILERCHECK=content 53 - export CCACHE_DIR=$(pwd)/.ccache 54 - ccache --show-stats 55 - ccache --zero-stats 56 - echo CONFIG_OPTS=$(CONFIG_OPTS) 57 script: 58 - ${PYTHON} ./configure --with-debugging=0 COPTFLAGS='-O -march=native' CXXOPTFLAGS='-O -march=native' FOPTFLAGS='-O -march=native' ${CONFIG_OPTS} 59 - make CFLAGS=-Werror CXXFLAGS=-Werror 60 - make CFLAGS=-Werror CXXFLAGS=-Werror allgtests-tap search="${TEST_SEARCH}" TIMEOUT=${TIMEOUT} 61 after_script: 62 - date 63 - CCACHE_DIR=$(pwd)/.ccache ccache --show-stats 64 artifacts: 65 reports: 66 junit: arch-*/tests/testresults.xml 67 name: "$CI_JOB_NAME" 68 when: always 69 paths: 70 - arch-*/lib/petsc/conf/configure.log 71 - arch-*/lib/petsc/conf/make.log 72 - arch-*/tests/testresults.xml 73 - arch-*/tests/test_*_tap.log 74 - arch-*/tests/test_*_err.log 75 expire_in: 4 days 76 cache: 77 paths: 78 - .ccache/ 79 key: "${CI_JOB_NAME}" 80 81# 82# The following tests run on the cloud as part of stage-1. 83# 84 85mpich-cxx-py3: 86 extends: .stage-1 87 variables: 88 PYTHON: python3 89 CONFIG_OPTS: --with-mpi-dir=/usr/local --with-clanguage=cxx --with-fc=0 90 TEST_SEARCH: snes_tutorials-ex48% 91 92uni-complex-float-int64: 93 extends: .stage-1 94 variables: 95 PYTHON: python3 96 CONFIG_OPTS: --with-mpi=0 --with-scalar-type=complex --with-precision=single --with-64-bit-indices 97 TEST_SEARCH: ts_tutorials-ex11_adv_2d_quad_% 98 99c89-mlib-static-py2: 100 extends: .stage-1 101 image: jedbrown/mpich-ccache:python2 102 variables: 103 PYTHON: python2 104 CONFIG_OPTS: --with-mpi-dir=/usr/local --with-single-library=0 --with-shared-libraries=0 CFLAGS=-std=c89 105 TEST_SEARCH: snes_tutorials-ex19% 106 107checksource: 108 extends: .test 109 image: jedbrown/mpich-ccache 110 stage: stage-1 111 script: 112 - python3 ./configure --with-mpi=0 --with-fc=0 --with-cxx=0 113 - make checkbadSource SHELL=bash 114 - make check_output SHELL=bash 115 116# 117# This provides the basic order of operations and options template for stage-2,3 tests. 118# Not all stage-2,3 need to follow this template, but most will. 119# 120.stage-23: 121 extends: .test 122 script: 123 - printf "PATH:$PATH\n" 124 - printf "PETSC_OPTIONS:$PETSC_OPTIONS\n" 125 - printf "./config/examples/${TEST_ARCH}.py\n" 126 - cat ./config/examples/${TEST_ARCH}.py 127 - ./config/examples/${TEST_ARCH}.py 128 - make CFLAGS=${MAKE_CFLAGS} CXXFLAGS=${MAKE_CXXFLAGS} 129 - make CFLAGS=${MAKE_CFLAGS} CXXFLAGS=${MAKE_CXXFLAGS} check 130 - make updatedatafiles 131 - make CFLAGS=${MAKE_CFLAGS} CXXFLAGS=${MAKE_CXXFLAGS} cleantest allgtests-tap TIMEOUT=${TIMEOUT} 132 artifacts: 133 reports: 134 junit: ${TEST_ARCH}/tests/testresults.xml 135 name: "$CI_JOB_NAME" 136 when: always 137 paths: 138 - ${TEST_ARCH}/lib/petsc/conf/configure.log 139 - ${TEST_ARCH}/lib/petsc/conf/make.log 140 - ${TEST_ARCH}/tests/testresults.xml 141 - ${TEST_ARCH}/tests/test_${TEST_ARCH}_tap.log 142 - ${TEST_ARCH}/tests/test_${TEST_ARCH}_err.log 143 expire_in: 4 days 144 variables: 145 OPENBLAS_NUM_THREADS: 1 146 147.stage-2: 148 extends: .stage-23 149 stage: stage-2 150 only: 151 variables: 152 - $STAGE != "1" 153 - $STAGE != "3" 154 155.stage-3: 156 extends: .stage-23 157 stage: stage-3 158 only: 159 variables: 160 - $STAGE != "1" 161 - $STAGE != "2" 162 163# 164# The following provide templates for various OSes for pre/post info 165# 166 167.linux_test_noflags: 168 before_script: 169 - date 170 - hostname 171 - grep PRETTY_NAME /etc/os-release 172 - echo $(nproc) 173 - ccache --zero-stats 174 after_script: 175 - date 176 - ccache --show-stats 177 178.linux_test: 179 extends: .linux_test_noflags 180 variables: 181 MAKE_CFLAGS: -Werror 182 MAKE_CXXFLAGS: -Werror 183 184.freebsd_test: 185 variables: 186 MAKE_CFLAGS: -Werror 187 MAKE_CXXFLAGS: -Werror 188 before_script: 189 - date 190 - hostname 191 - freebsd-version 192 - echo $(sysctl -n hw.ncpu) 193 - ccache --zero-stats 194 after_script: 195 - date 196 - ccache --show-stats 197 198.osx_test: 199 variables: 200 MAKE_CFLAGS: -Werror 201 MAKE_CXXFLAGS: -Werror 202 before_script: 203 - date 204 - hostname 205 - sw_vers -productVersion 206 - echo $(sysctl -n hw.ncpu) 207 - ccache --zero-stats 208 after_script: 209 - date 210 - ccache --show-stats 211 212.opensolaris_test: 213 before_script: 214 - date 215 - hostname 216 - uname -a 217 - echo $(nproc) 218 after_script: 219 - date 220 221.mswin_test: 222 before_script: 223 - date 224 - hostname 225 - uname -a 226 - echo $(nproc) 227 after_script: 228 - date 229 230# 231# The following tests run as part of stage-2. 232# 233# The tags variable used in the tests below connects the particular test with the runners 234# listed on the left hand side of https://gitlab.com/petsc/petsc/-/settings/ci_cd. 235# For example the test linux-gcc-complex-opt any runner that has the tag 'name:pj02' 236# (in a blue box beneath it) 237# 238 239linux-gcc-complex-opt: 240 extends: 241 - .stage-2 242 - .linux_test 243 tags: 244 - linux-dell 245 variables: 246 TEST_ARCH: arch-ci-linux-gcc-complex-opt 247 248linux-gcc-pkgs-opt: 249 extends: 250 - .stage-2 251 - .linux_test 252 tags: 253 - linux-dell 254 variables: 255 TEST_ARCH: arch-ci-linux-gcc-pkgs-opt 256 257linux-gcc-quad-64idx-dbg: 258 extends: 259 - .stage-2 260 - .linux_test 261 tags: 262 - linux-dell 263 variables: 264 TEST_ARCH: arch-ci-linux-gcc-quad-64idx-dbg 265 266linux-cuda-double: 267 extends: 268 - .stage-2 269 - .linux_test 270 tags: 271 - gpu:nvidia, os:linux 272 variables: 273 PETSC_OPTIONS: -check_pointer_intensity 0 -error_output_stdout -nox -nox_warning -malloc_dump -cuda_initialize 0 274 TEST_ARCH: arch-ci-linux-cuda-double 275 276freebsd-c-single-opt: 277 extends: 278 - .stage-2 279 - .freebsd_test 280 tags: 281 - os:fbsd 282 variables: 283 TEST_ARCH: arch-ci-freebsd-c-single-opt 284 285freebsd-cxx-cmplx-64idx-dbg: 286 extends: 287 - .stage-2 288 - .freebsd_test 289 tags: 290 - os:fbsd 291 variables: 292 TEST_ARCH: arch-ci-freebsd-cxx-cmplx-64idx-dbg 293 294opensolaris-misc: 295 extends: 296 - .stage-3 297 - .opensolaris_test 298 tags: 299 - name:n-gage 300 variables: 301 TEST_ARCH: arch-ci-opensolaris-misc 302 303osx-cxx-pkgs-opt: 304 extends: 305 - .stage-3 306 - .osx_test 307 tags: 308 - os:macos 309 variables: 310 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 311 TEST_ARCH: arch-ci-osx-cxx-pkgs-opt 312 313mswin-uni: 314 extends: 315 - .stage-2 316 - .mswin_test 317 tags: 318 - name:ps5-2 319 variables: 320 TEST_ARCH: arch-ci-mswin-uni 321 322# 323# The following tests run as part of stage-3. 324# 325 326mswin-intel-cxx-cmplx: 327 extends: 328 - .stage-3 329 - .mswin_test 330 tags: 331 - name:ps5 332 variables: 333 TEST_ARCH: arch-ci-mswin-intel-cxx-cmplx 334 335mswin-intel: 336 extends: 337 - .stage-3 338 - .mswin_test 339 tags: 340 - name:ps5 341 variables: 342 TEST_ARCH: arch-ci-mswin-intel 343 344mswin-opt-impi: 345 extends: 346 - .stage-3 347 - .mswin_test 348 tags: 349 - name:ps4 350 variables: 351 TEST_ARCH: arch-ci-mswin-opt-impi 352 353opensolaris-cmplx-pkgs-dbg: 354 extends: 355 - .stage-3 356 - .opensolaris_test 357 tags: 358 - name:n-gage 359 variables: 360 TEST_ARCH: arch-ci-opensolaris-cmplx-pkgs-dbg 361 362opensolaris-pkgs-opt: 363 extends: 364 - .stage-3 365 - .opensolaris_test 366 tags: 367 - name:n-gage 368 variables: 369 TEST_ARCH: arch-ci-opensolaris-pkgs-opt 370 371freebsd-pkgs-opt: 372 extends: 373 - .stage-3 374 - .freebsd_test 375 tags: 376 - os:fbsd 377 variables: 378 TEST_ARCH: arch-ci-freebsd-pkgs-opt 379 380freebsd-cxx-cmplx-pkgs-dbg: 381 extends: 382 - .stage-3 383 - .freebsd_test 384 tags: 385 - os:fbsd 386 variables: 387 TEST_ARCH: arch-ci-freebsd-cxx-cmplx-pkgs-dbg 388 389freebsd-cxx-pkgs-opt: 390 extends: 391 - .stage-3 392 - .freebsd_test 393 tags: 394 - os:fbsd 395 variables: 396 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 397 TEST_ARCH: arch-ci-freebsd-cxx-pkgs-opt 398 399osx-cxx-cmplx-pkgs-dbg: 400 extends: 401 - .stage-3 402 - .osx_test 403 tags: 404 - os:macos 405 variables: 406 TEST_ARCH: arch-ci-osx-cxx-cmplx-pkgs-dbg 407 408osx-dbg: 409 extends: 410 - .stage-3 411 - .osx_test 412 tags: 413 - os:macos 414 variables: 415 TEST_ARCH: arch-ci-osx-dbg 416 417osx-xsdk-opt: 418 extends: 419 - .stage-3 420 - .osx_test 421 tags: 422 - os:macos 423 variables: 424 TEST_ARCH: arch-ci-osx-xsdk-opt 425 426linux-cmplx-gcov: 427 extends: 428 - .stage-3 429 - .linux_test 430 tags: 431 - mcs-nfs 432 variables: 433 PETSC_OPTIONS: -check_pointer_intensity 0 -error_output_stdout -nox -nox_warning -malloc_dump -vecscatter_mpi1 false -options_left false 434 TEST_ARCH: arch-ci-linux-cmplx-gcov 435 after_script: 436 - make gcov 437 artifacts: 438 when: always 439 paths: 440 - ${TEST_ARCH}/lib/petsc/conf/configure.log 441 - ${TEST_ARCH}/lib/petsc/conf/make.log 442 - ${TEST_ARCH}/tests/testresults.xml 443 - ${TEST_ARCH}/tests/test_${TEST_ARCH}_tap.log 444 - ${TEST_ARCH}/tests/test_${TEST_ARCH}_err.log 445 - gcov.tar.gz 446 expire_in: 4 days 447 448 449linux-cmplx-single: 450 extends: 451 - .stage-3 452 - .linux_test 453 tags: 454 - name:si 455 variables: 456 TEST_ARCH: arch-ci-linux-cmplx-single 457 458linux-without-fc: 459 extends: 460 - .stage-3 461 - .linux_test 462 tags: 463 - name:si 464 variables: 465 TEST_ARCH: arch-ci-linux-without-fc 466 467linux-clang-avx: 468 extends: 469 - .stage-3 470 - .linux_test 471 tags: 472 - name:isdp001 473 variables: 474 TEST_ARCH: arch-ci-linux-clang-avx 475 476linux-gcc-cxx-avx2: 477 extends: 478 - .stage-3 479 - .linux_test 480 tags: 481 - name:isdp001 482 variables: 483 TEST_ARCH: arch-ci-linux-gcc-cxx-avx2 484 485linux-knl: 486 extends: 487 - .stage-3 488 - .linux_test 489 tags: 490 - name:isdp001 491 variables: 492 TEST_ARCH: arch-ci-linux-knl 493 494linux-c-exodus-dbg: 495 extends: 496 - .stage-3 497 - .linux_test 498 tags: 499 - gpu:nvidia, os:linux 500 variables: 501 PETSC_OPTIONS: -check_pointer_intensity 0 -error_output_stdout -nox -nox_warning -malloc_dump -cuda_initialize 0 502 TEST_ARCH: arch-ci-linux-c-exodus-dbg 503 504linux-cuda-single: 505 extends: 506 - .stage-3 507 - .linux_test 508 tags: 509 - gpu:nvidia, os:linux 510 variables: 511 PETSC_OPTIONS: -check_pointer_intensity 0 -error_output_stdout -nox -nox_warning -malloc_dump -cuda_initialize 0 512 TEST_ARCH: arch-ci-linux-cuda-single 513 514linux-viennacl: 515 extends: 516 - .stage-3 517 - .linux_test 518 tags: 519 - gpu:nvidia, os:linux, name:frog 520 variables: 521 TEST_ARCH: arch-ci-linux-viennacl 522 523linux-opt-misc: 524 extends: 525 - .stage-3 526 - .linux_test 527 tags: 528 - name:compute004 529 variables: 530 TEST_ARCH: arch-ci-linux-opt-misc 531 532linux-pkgs-cxx-mlib: 533 extends: 534 - .stage-3 535 - .linux_test 536 tags: 537 - name:pj02 538 variables: 539 PETSC_OPTIONS: -check_pointer_intensity 0 -error_output_stdout -nox -nox_warning -malloc_dump -saws_port_auto_select -saws_port_auto_select_silent 540 TEST_ARCH: arch-ci-linux-pkgs-cxx-mlib 541 542linux-cxx-cmplx-pkgs-64idx: 543 extends: 544 - .stage-3 545 - .linux_test 546 tags: 547 - name:pj01 548 variables: 549 TEST_ARCH: arch-ci-linux-cxx-cmplx-pkgs-64idx 550 551linux-pkgs-dbg-ftn-interfaces: 552 extends: 553 - .stage-3 554 - .linux_test 555 tags: 556 - name:pj02 557 variables: 558 TEST_ARCH: arch-ci-linux-pkgs-dbg-ftn-interfaces 559 560linux-analyzer: 561 extends: 562 - .stage-3 563 - .linux_test 564 tags: 565 - mcs-nfs 566 variables: 567 TEST_ARCH: arch-ci-linux-analyzer 568 569linux-gcc-ifc-cmplx: 570 extends: 571 - .stage-3 572 - .linux_test 573 tags: 574 - mcs-nfs 575 variables: 576 TEST_ARCH: arch-ci-linux-gcc-ifc-cmplx 577 578linux-gcov: 579 extends: 580 - .stage-3 581 - .linux_test 582 tags: 583 - mcs-nfs 584 variables: 585 TEST_ARCH: arch-ci-linux-gcov 586 after_script: 587 - make gcov 588 artifacts: 589 when: always 590 paths: 591 - ${TEST_ARCH}/lib/petsc/conf/configure.log 592 - ${TEST_ARCH}/lib/petsc/conf/make.log 593 - ${TEST_ARCH}/tests/testresults.xml 594 - ${TEST_ARCH}/tests/test_${TEST_ARCH}_tap.log 595 - ${TEST_ARCH}/tests/test_${TEST_ARCH}_err.log 596 - gcov.tar.gz 597 expire_in: 4 days 598 599 600linux-ILP64: 601 extends: 602 - .stage-3 603 - .linux_test 604 tags: 605 - name:compute004 606 variables: 607 TEST_ARCH: arch-ci-linux-ILP64 608 609linux-matlab-ilp64-gcov: 610 extends: 611 - .stage-3 612 - .linux_test 613 tags: 614 - mcs-nfs 615 variables: 616 TEST_ARCH: arch-ci-linux-matlab-ilp64-gcov 617 after_script: 618 - make gcov 619 artifacts: 620 when: always 621 paths: 622 - ${TEST_ARCH}/lib/petsc/conf/configure.log 623 - ${TEST_ARCH}/lib/petsc/conf/make.log 624 - ${TEST_ARCH}/tests/testresults.xml 625 - ${TEST_ARCH}/tests/test_${TEST_ARCH}_tap.log 626 - ${TEST_ARCH}/tests/test_${TEST_ARCH}_err.log 627 - gcov.tar.gz 628 expire_in: 4 days 629 630 631linux-opt-cxx-quad: 632 extends: 633 - .stage-3 634 - .linux_test 635 tags: 636 - mcs-nfs 637 variables: 638 TEST_ARCH: arch-ci-linux-opt-cxx-quad 639 640linux-pgi: 641 extends: 642 - .stage-3 643 - .linux_test_noflags 644 tags: 645 - mcs-nfs,name:petsc 646 variables: 647 TEST_ARCH: arch-ci-linux-pgi 648 649linux-pkgs-64idx: 650 extends: 651 - .stage-3 652 - .linux_test 653 tags: 654 - mcs-nfs 655 variables: 656 TEST_ARCH: arch-ci-linux-pkgs-64idx 657 658linux-pkgs-gcov: 659 extends: 660 - .stage-3 661 - .linux_test 662 tags: 663 - mcs-nfs 664 variables: 665 TEST_ARCH: arch-ci-linux-pkgs-gcov 666 after_script: 667 - make gcov 668 artifacts: 669 when: always 670 paths: 671 - ${TEST_ARCH}/lib/petsc/conf/configure.log 672 - ${TEST_ARCH}/lib/petsc/conf/make.log 673 - ${TEST_ARCH}/tests/testresults.xml 674 - ${TEST_ARCH}/tests/test_${TEST_ARCH}_tap.log 675 - ${TEST_ARCH}/tests/test_${TEST_ARCH}_err.log 676 - gcov.tar.gz 677 expire_in: 4 days 678 679linux-pkgs-opt: 680 extends: 681 - .stage-3 682 - .linux_test 683 tags: 684 - name:compute004 685 variables: 686 PETSC_OPTIONS: -check_pointer_intensity 0 -error_output_stdout -nox -nox_warning -malloc_dump -saws_port_auto_select -saws_port_auto_select_silent 687 TEST_ARCH: arch-ci-linux-pkgs-opt 688 689linux-pkgs-valgrind: 690 extends: 691 - .stage-3 692 - .linux_test 693 tags: 694 - valgrind 695 variables: 696 TEST_ARCH: arch-ci-linux-pkgs-valgrind 697 TIMEOUT: 7200 698 allow_failure: true 699 700linux-xsdk-dbg: 701 extends: 702 - .stage-3 703 - .linux_test 704 tags: 705 - mcs-nfs 706 variables: 707 TEST_ARCH: arch-ci-linux-xsdk-dbg 708 709linux-pardiso: 710 extends: 711 - .stage-3 712 - .linux_test 713 tags: 714 - mcs-nfs 715 variables: 716 TEST_ARCH: arch-ci-linux-pardiso 717 718linux-nagfor: 719 extends: 720 - .stage-3 721 - .linux_test 722 tags: 723 - mcs-nfs 724 variables: 725 TEST_ARCH: arch-ci-linux-nagfor 726 727# 728# The following tests are experimental; more tests by users at other sites may be added below this. Experimental test 729# that fail produce a warning, but do not block execution of a pipeline. 730# 731 732.test-experimental: 733 extends: .test 734 allow_failure: true 735 736