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