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 - cp configure.log ../configure.log-${CI_JOB_NAME}-${CI_PIPELINE_ID}-${CI_JOB_ID} 151 - ccache --show-stats 152 153.freebsd_test: 154 before_script: 155 - hostname 156 - freebsd-version 157 - echo $(sysctl -n hw.ncpu) 158 - ccache --zero-stats 159 after_script: 160 - cp configure.log ../configure.log-${CI_JOB_NAME}-${CI_PIPELINE_ID}-${CI_JOB_ID} 161 - ccache --show-stats 162 163.osx_test: 164 before_script: 165 - hostname 166 - sw_vers -productVersion 167 - echo $(sysctl -n hw.ncpu) 168 - ccache --zero-stats 169 after_script: 170 - cp configure.log ../configure.log-${CI_JOB_NAME}-${CI_PIPELINE_ID}-${CI_JOB_ID} 171 - ccache --show-stats 172 173.opensolaris_test: 174 before_script: 175 - hostname 176 - uname -a 177 - echo $(nproc) 178 after_script: 179 - cp configure.log ../configure.log-${CI_JOB_NAME}-${CI_PIPELINE_ID}-${CI_JOB_ID} 180 181.mswin_test: 182 before_script: 183 - hostname 184 - uname -a 185 - echo $(nproc) 186 after_script: 187 - cp configure.log ../configure.log-${CI_JOB_NAME}-${CI_PIPELINE_ID}-${CI_JOB_ID} 188 189# 190# The following tests run as part of stage-2. 191# 192# The tags variable used in the tests below connects the particular test with the runners 193# listed on the left hand side of https://gitlab.com/petsc/petsc/-/settings/ci_cd. 194# For example the test linux-gcc-complex-opt any runner that has the tag 'name:pj02' 195# (in a blue box beneath it) 196# 197 198linux-gcc-complex-opt: 199 extends: 200 - .stage-2 201 - .linux_test 202 tags: 203 - linux-dell 204 variables: 205 TEST_ARCH: arch-ci-linux-gcc-complex-opt 206 207linux-gcc-pkgs-opt: 208 extends: 209 - .stage-2 210 - .linux_test 211 tags: 212 - linux-dell 213 variables: 214 TEST_ARCH: arch-ci-linux-gcc-pkgs-opt 215 216linux-gcc-quad-64idx-dbg: 217 extends: 218 - .stage-2 219 - .linux_test 220 tags: 221 - linux-dell 222 variables: 223 TEST_ARCH: arch-ci-linux-gcc-quad-64idx-dbg 224 225linux-cuda-double: 226 extends: 227 - .stage-2 228 - .linux_test 229 tags: 230 - name:frog 231 variables: 232 PETSC_OPTIONS: -check_pointer_intensity 0 -error_output_stdout -nox -nox_warning -malloc_dump -cuda_initialize 0 233 TEST_ARCH: arch-ci-linux-cuda-double 234 235freebsd-c-single-opt: 236 extends: 237 - .stage-2 238 - .freebsd_test 239 tags: 240 - os:fbsd 241 variables: 242 TEST_ARCH: arch-ci-freebsd-c-single-opt 243 244freebsd-cxx-cmplx-64idx-dbg: 245 extends: 246 - .stage-2 247 - .freebsd_test 248 tags: 249 - name:petsc-fbsd 250 variables: 251 TEST_ARCH: arch-ci-freebsd-cxx-cmplx-64idx-dbg 252 253opensolaris-misc: 254 extends: 255 - .stage-3 256 - .opensolaris_test 257 tags: 258 - name:n-gage 259 variables: 260 TEST_ARCH: arch-ci-opensolaris-misc 261 262osx-cxx-pkgs-opt: 263 extends: 264 - .stage-2 265 - .osx_test 266 tags: 267 - os:osx 268 variables: 269 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 270 TEST_ARCH: arch-ci-osx-cxx-pkgs-opt 271 272mswin-uni: 273 extends: 274 - .stage-2 275 - .mswin_test 276 tags: 277 - name:ps5-2 278 variables: 279 TEST_ARCH: arch-ci-mswin-uni 280 281# 282# The following tests run as part of stage-3. 283# 284 285mswin-intel-cxx-cmplx: 286 extends: 287 - .stage-3 288 - .mswin_test 289 tags: 290 - name:ps5 291 variables: 292 TEST_ARCH: arch-ci-mswin-intel-cxx-cmplx 293 294mswin-intel: 295 extends: 296 - .stage-3 297 - .mswin_test 298 tags: 299 - name:ps5 300 variables: 301 TEST_ARCH: arch-ci-mswin-intel 302 303arch-ci-mswin-opt-impi: 304 extends: 305 - .stage-3 306 - .mswin_test 307 tags: 308 - name:ps4 309 variables: 310 TEST_ARCH: arch-ci-mswin-opt-impi 311 allow_failure: true 312 313 314opensolaris-cmplx-pkgs-dbg: 315 extends: 316 - .stage-3 317 - .opensolaris_test 318 tags: 319 - name:n-gage 320 variables: 321 TEST_ARCH: arch-ci-opensolaris-cmplx-pkgs-dbg 322 323opensolaris-pkgs-opt: 324 extends: 325 - .stage-3 326 - .opensolaris_test 327 tags: 328 - name:n-gage 329 variables: 330 TEST_ARCH: arch-ci-opensolaris-pkgs-opt 331 332freebsd-pkgs-opt: 333 extends: 334 - .stage-3 335 - .freebsd_test 336 tags: 337 - os:fbsd 338 variables: 339 TEST_ARCH: arch-ci-freebsd-pkgs-opt 340 341freebsd-cxx-cmplx-pkgs-dbg: 342 extends: 343 - .stage-3 344 - .freebsd_test 345 tags: 346 - os:fbsd 347 variables: 348 TEST_ARCH: arch-ci-freebsd-cxx-cmplx-pkgs-dbg 349 350freebsd-cxx-pkgs-opt: 351 extends: 352 - .stage-3 353 - .freebsd_test 354 tags: 355 - os:fbsd 356 variables: 357 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 358 TEST_ARCH: arch-ci-freebsd-cxx-pkgs-opt 359 360osx-cxx-cmplx-pkgs-dbg: 361 extends: 362 - .stage-3 363 - .osx_test 364 tags: 365 - os:osx 366 variables: 367 TEST_ARCH: arch-ci-osx-cxx-cmplx-pkgs-dbg 368 369osx-dbg: 370 extends: 371 - .stage-3 372 - .osx_test 373 tags: 374 - os:osx 375 variables: 376 TEST_ARCH: arch-ci-osx-dbg 377 378osx-xsdk-opt: 379 extends: 380 - .stage-3 381 - .osx_test 382 tags: 383 - os:osx 384 variables: 385 TEST_ARCH: arch-ci-osx-xsdk-opt 386 387linux-cmplx-gcov: 388 extends: 389 - .stage-3 390 - .linux_test 391 tags: 392 - mcs-nfs 393 variables: 394 PETSC_OPTIONS: -check_pointer_intensity 0 -error_output_stdout -nox -nox_warning -malloc_dump -vecscatter_mpi1 false -options_left false 395 TEST_ARCH: arch-ci-linux-cmplx-gcov 396 397linux-cmplx-single: 398 extends: 399 - .stage-3 400 - .linux_test 401 tags: 402 - name:si 403 variables: 404 TEST_ARCH: arch-ci-linux-cmplx-single 405 406linux-without-fc: 407 extends: 408 - .stage-3 409 - .linux_test 410 tags: 411 - name:si 412 variables: 413 TEST_ARCH: arch-ci-linux-without-fc 414 415linux-clang-avx: 416 extends: 417 - .stage-3 418 - .linux_test 419 tags: 420 - name:isdp001 421 variables: 422 TEST_ARCH: arch-ci-linux-clang-avx 423 424linux-gcc-cxx-avx2: 425 extends: 426 - .stage-3 427 - .linux_test 428 tags: 429 - name:isdp001 430 variables: 431 TEST_ARCH: arch-ci-linux-gcc-cxx-avx2 432 433linux-knl: 434 extends: 435 - .stage-3 436 - .linux_test 437 tags: 438 - name:isdp001 439 variables: 440 TEST_ARCH: arch-ci-linux-knl 441 442linux-c-exodus-dbg: 443 extends: 444 - .stage-3 445 - .linux_test 446 tags: 447 - name:frog 448 variables: 449 PETSC_OPTIONS: -check_pointer_intensity 0 -error_output_stdout -nox -nox_warning -malloc_dump -cuda_initialize 0 450 TEST_ARCH: arch-ci-linux-c-exodus-dbg 451 452linux-cuda-single: 453 extends: 454 - .stage-3 455 - .linux_test 456 tags: 457 - name:frog 458 variables: 459 OPENBLAS_NUM_THREADS: 1 460 PETSC_OPTIONS: -check_pointer_intensity 0 -error_output_stdout -nox -nox_warning -malloc_dump -cuda_initialize 0 461 TEST_ARCH: arch-ci-linux-cuda-single 462 463linux-viennacl: 464 extends: 465 - .stage-3 466 - .linux_test 467 tags: 468 - name:frog 469 variables: 470 TEST_ARCH: arch-ci-linux-viennacl 471 472linux-opt-misc: 473 extends: 474 - .stage-3 475 - .linux_test 476 tags: 477 - name:compute004 478 variables: 479 OPENBLAS_NUM_THREADS: 1 480 TEST_ARCH: arch-ci-linux-opt-misc 481 482linux-pkgs-cxx-mlib: 483 extends: 484 - .stage-3 485 - .linux_test 486 tags: 487 - name:pj02 488 variables: 489 PETSC_OPTIONS: -check_pointer_intensity 0 -error_output_stdout -nox -nox_warning -malloc_dump -saws_port_auto_select -saws_port_auto_select_silent 490 TEST_ARCH: arch-ci-linux-pkgs-cxx-mlib 491 492linux-cxx-cmplx-pkgs-64idx: 493 extends: 494 - .stage-3 495 - .linux_test 496 tags: 497 - name:pj01 498 variables: 499 TEST_ARCH: arch-ci-linux-cxx-cmplx-pkgs-64idx 500 501linux-pkgs-dbg-ftn-interfaces: 502 extends: 503 - .stage-3 504 - .linux_test 505 tags: 506 - name:pj02 507 variables: 508 TEST_ARCH: arch-ci-linux-pkgs-dbg-ftn-interfaces 509 510linux-analyzer: 511 extends: 512 - .stage-3 513 - .linux_test 514 tags: 515 - mcs-nfs 516 variables: 517 TEST_ARCH: arch-ci-linux-analyzer 518 519linux-gcc-ifc-cmplx: 520 extends: 521 - .stage-3 522 - .linux_test 523 tags: 524 - mcs-nfs 525 variables: 526 TEST_ARCH: arch-ci-linux-gcc-ifc-cmplx 527 528linux-gcov: 529 extends: 530 - .stage-3 531 - .linux_test 532 tags: 533 - mcs-nfs 534 variables: 535 TEST_ARCH: arch-ci-linux-gcov 536 537linux-ILP64: 538 extends: 539 - .stage-3 540 - .linux_test 541 tags: 542 - name:compute004 543 variables: 544 OPENBLAS_NUM_THREADS: 1 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