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 variables: 124 OPENBLAS_NUM_THREADS: 1 125 126.stage-2: 127 extends: .stage-23 128 stage: stage-2 129 only: 130 variables: 131 - $STAGE != "1" 132 - $STAGE != "3" 133 134.stage-3: 135 extends: .stage-23 136 stage: stage-3 137 only: 138 variables: 139 - $STAGE != "1" 140 - $STAGE != "2" 141 142# 143# The following provide templates for various OSes for pre/post info 144# 145 146.linux_test: 147 before_script: 148 - hostname 149 - grep PRETTY_NAME /etc/os-release 150 - echo $(nproc) 151 - ccache --zero-stats 152 after_script: 153 - cp configure.log ../configure.log-${CI_JOB_NAME}-${CI_PIPELINE_ID}-${CI_JOB_ID} 154 - ccache --show-stats 155 156.freebsd_test: 157 before_script: 158 - hostname 159 - freebsd-version 160 - echo $(sysctl -n hw.ncpu) 161 - ccache --zero-stats 162 after_script: 163 - cp configure.log ../configure.log-${CI_JOB_NAME}-${CI_PIPELINE_ID}-${CI_JOB_ID} 164 - ccache --show-stats 165 166.osx_test: 167 before_script: 168 - hostname 169 - sw_vers -productVersion 170 - echo $(sysctl -n hw.ncpu) 171 - ccache --zero-stats 172 after_script: 173 - cp configure.log ../configure.log-${CI_JOB_NAME}-${CI_PIPELINE_ID}-${CI_JOB_ID} 174 - ccache --show-stats 175 176.opensolaris_test: 177 before_script: 178 - hostname 179 - uname -a 180 - echo $(nproc) 181 after_script: 182 - cp configure.log ../configure.log-${CI_JOB_NAME}-${CI_PIPELINE_ID}-${CI_JOB_ID} 183 184.mswin_test: 185 before_script: 186 - hostname 187 - uname -a 188 - echo $(nproc) 189 after_script: 190 - cp configure.log ../configure.log-${CI_JOB_NAME}-${CI_PIPELINE_ID}-${CI_JOB_ID} 191 192# 193# The following tests run as part of stage-2. 194# 195# The tags variable used in the tests below connects the particular test with the runners 196# listed on the left hand side of https://gitlab.com/petsc/petsc/-/settings/ci_cd. 197# For example the test linux-gcc-complex-opt any runner that has the tag 'name:pj02' 198# (in a blue box beneath it) 199# 200 201linux-gcc-complex-opt: 202 extends: 203 - .stage-2 204 - .linux_test 205 tags: 206 - linux-dell 207 variables: 208 TEST_ARCH: arch-ci-linux-gcc-complex-opt 209 210linux-gcc-pkgs-opt: 211 extends: 212 - .stage-2 213 - .linux_test 214 tags: 215 - linux-dell 216 variables: 217 TEST_ARCH: arch-ci-linux-gcc-pkgs-opt 218 219linux-gcc-quad-64idx-dbg: 220 extends: 221 - .stage-2 222 - .linux_test 223 tags: 224 - linux-dell 225 variables: 226 TEST_ARCH: arch-ci-linux-gcc-quad-64idx-dbg 227 228linux-cuda-double: 229 extends: 230 - .stage-2 231 - .linux_test 232 tags: 233 - name:frog 234 variables: 235 PETSC_OPTIONS: -check_pointer_intensity 0 -error_output_stdout -nox -nox_warning -malloc_dump -cuda_initialize 0 236 TEST_ARCH: arch-ci-linux-cuda-double 237 238freebsd-c-single-opt: 239 extends: 240 - .stage-2 241 - .freebsd_test 242 tags: 243 - os:fbsd 244 variables: 245 TEST_ARCH: arch-ci-freebsd-c-single-opt 246 247freebsd-cxx-cmplx-64idx-dbg: 248 extends: 249 - .stage-2 250 - .freebsd_test 251 tags: 252 - name:petsc-fbsd 253 variables: 254 TEST_ARCH: arch-ci-freebsd-cxx-cmplx-64idx-dbg 255 256opensolaris-misc: 257 extends: 258 - .stage-3 259 - .opensolaris_test 260 tags: 261 - name:n-gage 262 variables: 263 TEST_ARCH: arch-ci-opensolaris-misc 264 265osx-cxx-pkgs-opt: 266 extends: 267 - .stage-2 268 - .osx_test 269 tags: 270 - os:osx 271 variables: 272 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 273 TEST_ARCH: arch-ci-osx-cxx-pkgs-opt 274 275mswin-uni: 276 extends: 277 - .stage-2 278 - .mswin_test 279 tags: 280 - name:ps5-2 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 - name:compute004 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-ILP64: 539 extends: 540 - .stage-3 541 - .linux_test 542 tags: 543 - name:compute004 544 variables: 545 TEST_ARCH: arch-ci-linux-ILP64 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 - name:compute004 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 TIMEOUT: 7200 611 612linux-xsdk-dbg: 613 extends: 614 - .stage-3 615 - .linux_test 616 tags: 617 - mcs-nfs 618 variables: 619 TEST_ARCH: arch-ci-linux-xsdk-dbg 620 621linux-pardiso: 622 extends: 623 - .stage-3 624 - .linux_test 625 tags: 626 - mcs-nfs 627 variables: 628 TEST_ARCH: arch-ci-linux-pardiso 629 630linux-nagfor: 631 extends: 632 - .stage-3 633 - .linux_test 634 tags: 635 - mcs-nfs 636 variables: 637 TEST_ARCH: arch-ci-linux-nagfor 638 639# 640# The following tests are experimental; more tests by users at other sites may be added below this. Experimental test 641# that fail produce a warning, but do not block execution of a pipeline. 642# 643 644.test-experimental: 645 extends: .test 646 allow_failure: true 647 648