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 103# 104# This provides the basic order of operations and options template for stage-2,3 tests. 105# Not all stage-2,3 need to follow this template, but most will. 106# 107.stage-23: 108 extends: .test 109 script: 110 - printf "PATH:$PATH\n" 111 - printf "PETSC_OPTIONS:$PETSC_OPTIONS\n" 112 - printf "./config/examples/${TEST_ARCH}.py\n" 113 - cat ./config/examples/${TEST_ARCH}.py 114 - ./config/examples/${TEST_ARCH}.py 115 - make 116 - make check 117 - make updatedatafiles 118 - make cleantest allgtests-tap TIMEOUT=${TIMEOUT} 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 - linux-dell 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 - linux-dell 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 - linux-dell 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: -check_pointer_intensity 0 -error_output_stdout -nox -nox_warning -malloc_dump -cuda_initialize 0 226 TEST_ARCH: arch-ci-linux-cuda-double 227 228freebsd-c-single-opt: 229 extends: 230 - .stage-2 231 - .freebsd_test 232 tags: 233 - os:fbsd 234 variables: 235 TEST_ARCH: arch-ci-freebsd-c-single-opt 236 237freebsd-cxx-cmplx-64idx-dbg: 238 extends: 239 - .stage-2 240 - .freebsd_test 241 tags: 242 - name:petsc-fbsd 243 variables: 244 TEST_ARCH: arch-ci-freebsd-cxx-cmplx-64idx-dbg 245 246opensolaris-misc: 247 extends: 248 - .stage-3 249 - .opensolaris_test 250 tags: 251 - name:n-gage 252 variables: 253 TEST_ARCH: arch-ci-opensolaris-misc 254 255osx-cxx-pkgs-opt: 256 extends: 257 - .stage-2 258 - .osx_test 259 tags: 260 - os:osx 261 variables: 262 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 263 TEST_ARCH: arch-ci-osx-cxx-pkgs-opt 264 265mswin-uni: 266 extends: 267 - .stage-2 268 - .mswin_test 269 tags: 270 - name:ps5-2 271 variables: 272 TEST_ARCH: arch-ci-mswin-uni 273 274# 275# The following tests run as part of stage-3. 276# 277 278mswin-intel-cxx-cmplx: 279 extends: 280 - .stage-3 281 - .mswin_test 282 tags: 283 - name:ps5 284 variables: 285 TEST_ARCH: arch-ci-mswin-intel-cxx-cmplx 286 287mswin-intel: 288 extends: 289 - .stage-3 290 - .mswin_test 291 tags: 292 - name:ps5 293 variables: 294 TEST_ARCH: arch-ci-mswin-intel 295 296arch-ci-mswin-opt-impi: 297 extends: 298 - .stage-3 299 - .mswin_test 300 tags: 301 - name:ps4 302 variables: 303 TEST_ARCH: arch-ci-mswin-opt-impi 304 allow_failure: true 305 306 307opensolaris-cmplx-pkgs-dbg: 308 extends: 309 - .stage-3 310 - .opensolaris_test 311 tags: 312 - name:n-gage 313 variables: 314 TEST_ARCH: arch-ci-opensolaris-cmplx-pkgs-dbg 315 316opensolaris-pkgs-opt: 317 extends: 318 - .stage-3 319 - .opensolaris_test 320 tags: 321 - name:n-gage 322 variables: 323 TEST_ARCH: arch-ci-opensolaris-pkgs-opt 324 325freebsd-pkgs-opt: 326 extends: 327 - .stage-3 328 - .freebsd_test 329 tags: 330 - os:fbsd 331 variables: 332 TEST_ARCH: arch-ci-freebsd-pkgs-opt 333 334freebsd-cxx-cmplx-pkgs-dbg: 335 extends: 336 - .stage-3 337 - .freebsd_test 338 tags: 339 - os:fbsd 340 variables: 341 TEST_ARCH: arch-ci-freebsd-cxx-cmplx-pkgs-dbg 342 343freebsd-cxx-pkgs-opt: 344 extends: 345 - .stage-3 346 - .freebsd_test 347 tags: 348 - os:fbsd 349 variables: 350 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 351 TEST_ARCH: arch-ci-freebsd-cxx-pkgs-opt 352 353osx-cxx-cmplx-pkgs-dbg: 354 extends: 355 - .stage-3 356 - .osx_test 357 tags: 358 - os:osx 359 variables: 360 TEST_ARCH: arch-ci-osx-cxx-cmplx-pkgs-dbg 361 362osx-dbg: 363 extends: 364 - .stage-3 365 - .osx_test 366 tags: 367 - os:osx 368 variables: 369 TEST_ARCH: arch-ci-osx-dbg 370 371osx-xsdk-opt: 372 extends: 373 - .stage-3 374 - .osx_test 375 tags: 376 - os:osx 377 variables: 378 TEST_ARCH: arch-ci-osx-xsdk-opt 379 380linux-cmplx-gcov: 381 extends: 382 - .stage-3 383 - .linux_test 384 tags: 385 - mcs-nfs 386 variables: 387 PETSC_OPTIONS: -check_pointer_intensity 0 -error_output_stdout -nox -nox_warning -malloc_dump -vecscatter_mpi1 false -options_left false 388 TEST_ARCH: arch-ci-linux-cmplx-gcov 389 390linux-cmplx-single: 391 extends: 392 - .stage-3 393 - .linux_test 394 tags: 395 - name:si 396 variables: 397 TEST_ARCH: arch-ci-linux-cmplx-single 398 399linux-without-fc: 400 extends: 401 - .stage-3 402 - .linux_test 403 tags: 404 - name:si 405 variables: 406 TEST_ARCH: arch-ci-linux-without-fc 407 408linux-clang-avx: 409 extends: 410 - .stage-3 411 - .linux_test 412 tags: 413 - name:isdp001 414 variables: 415 TEST_ARCH: arch-ci-linux-clang-avx 416 417linux-gcc-cxx-avx2: 418 extends: 419 - .stage-3 420 - .linux_test 421 tags: 422 - name:isdp001 423 variables: 424 TEST_ARCH: arch-ci-linux-gcc-cxx-avx2 425 426linux-knl: 427 extends: 428 - .stage-3 429 - .linux_test 430 tags: 431 - name:isdp001 432 variables: 433 TEST_ARCH: arch-ci-linux-knl 434 435linux-c-exodus-dbg: 436 extends: 437 - .stage-3 438 - .linux_test 439 tags: 440 - name:frog 441 variables: 442 PETSC_OPTIONS: -check_pointer_intensity 0 -error_output_stdout -nox -nox_warning -malloc_dump -cuda_initialize 0 443 TEST_ARCH: arch-ci-linux-c-exodus-dbg 444 445linux-cuda-single: 446 extends: 447 - .stage-3 448 - .linux_test 449 tags: 450 - name:frog 451 variables: 452 OPENBLAS_NUM_THREADS: 1 453 PETSC_OPTIONS: -check_pointer_intensity 0 -error_output_stdout -nox -nox_warning -malloc_dump -cuda_initialize 0 454 TEST_ARCH: arch-ci-linux-cuda-single 455 456linux-viennacl: 457 extends: 458 - .stage-3 459 - .linux_test 460 tags: 461 - name:frog 462 variables: 463 TEST_ARCH: arch-ci-linux-viennacl 464 465linux-opt-misc: 466 extends: 467 - .stage-3 468 - .linux_test 469 tags: 470 - name:compute004 471 variables: 472 OPENBLAS_NUM_THREADS: 1 473 TEST_ARCH: arch-ci-linux-opt-misc 474 475linux-pkgs-cxx-mlib: 476 extends: 477 - .stage-3 478 - .linux_test 479 tags: 480 - name:pj02 481 variables: 482 PETSC_OPTIONS: -check_pointer_intensity 0 -error_output_stdout -nox -nox_warning -malloc_dump -saws_port_auto_select -saws_port_auto_select_silent 483 TEST_ARCH: arch-ci-linux-pkgs-cxx-mlib 484 485linux-cxx-cmplx-pkgs-64idx: 486 extends: 487 - .stage-3 488 - .linux_test 489 tags: 490 - name:pj01 491 variables: 492 TEST_ARCH: arch-ci-linux-cxx-cmplx-pkgs-64idx 493 494linux-pkgs-dbg-ftn-interfaces: 495 extends: 496 - .stage-3 497 - .linux_test 498 tags: 499 - name:pj02 500 variables: 501 TEST_ARCH: arch-ci-linux-pkgs-dbg-ftn-interfaces 502 503linux-analyzer: 504 extends: 505 - .stage-3 506 - .linux_test 507 tags: 508 - mcs-nfs 509 variables: 510 TEST_ARCH: arch-ci-linux-analyzer 511 512linux-gcc-ifc-cmplx: 513 extends: 514 - .stage-3 515 - .linux_test 516 tags: 517 - mcs-nfs 518 variables: 519 TEST_ARCH: arch-ci-linux-gcc-ifc-cmplx 520 521linux-gcov: 522 extends: 523 - .stage-3 524 - .linux_test 525 tags: 526 - mcs-nfs 527 variables: 528 TEST_ARCH: arch-ci-linux-gcov 529 530linux-ILP64: 531 extends: 532 - .stage-3 533 - .linux_test 534 tags: 535 - name:compute004 536 variables: 537 OPENBLAS_NUM_THREADS: 1 538 TEST_ARCH: arch-ci-linux-ILP64 539 540linux-matlab-ilp64-gcov: 541 extends: 542 - .stage-3 543 - .linux_test 544 tags: 545 - mcs-nfs 546 variables: 547 TEST_ARCH: arch-ci-linux-matlab-ilp64-gcov 548 549linux-opt-cxx-quad: 550 extends: 551 - .stage-3 552 - .linux_test 553 tags: 554 - mcs-nfs 555 variables: 556 TEST_ARCH: arch-ci-linux-opt-cxx-quad 557 558linux-pgi: 559 extends: 560 - .stage-3 561 - .linux_test 562 tags: 563 - mcs-nfs,name:petsc 564 variables: 565 TEST_ARCH: arch-ci-linux-pgi 566 567linux-pkgs-64idx: 568 extends: 569 - .stage-3 570 - .linux_test 571 tags: 572 - mcs-nfs 573 variables: 574 TEST_ARCH: arch-ci-linux-pkgs-64idx 575 576linux-pkgs-gcov: 577 extends: 578 - .stage-3 579 - .linux_test 580 tags: 581 - mcs-nfs 582 variables: 583 TEST_ARCH: arch-ci-linux-pkgs-gcov 584 585linux-pkgs-opt: 586 extends: 587 - .stage-3 588 - .linux_test 589 tags: 590 - name:compute004 591 variables: 592 PETSC_OPTIONS: -check_pointer_intensity 0 -error_output_stdout -nox -nox_warning -malloc_dump -saws_port_auto_select -saws_port_auto_select_silent 593 TEST_ARCH: arch-ci-linux-pkgs-opt 594 595linux-pkgs-valgrind: 596 extends: 597 - .stage-3 598 - .linux_test 599 tags: 600 - mcs-nfs,server 601 variables: 602 TEST_ARCH: arch-ci-linux-pkgs-valgrind 603 TIMEOUT: 7200 604 605linux-xsdk-dbg: 606 extends: 607 - .stage-3 608 - .linux_test 609 tags: 610 - mcs-nfs 611 variables: 612 TEST_ARCH: arch-ci-linux-xsdk-dbg 613 614linux-pardiso: 615 extends: 616 - .stage-3 617 - .linux_test 618 tags: 619 - mcs-nfs 620 variables: 621 TEST_ARCH: arch-ci-linux-pardiso 622 623# 624# The following tests are experimental; more tests by users at other sites may be added below this. Experimental test 625# that fail produce a warning, but do not block execution of a pipeline. 626# 627 628.test-experimental: 629 extends: .test 630 allow_failure: true 631 632