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