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