1# 2# stage-1 take only a few minutes; 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# 8# The stage-(n) tests are only started if all of the stage-(n-1) tests run without error 9# You can limit the testing by using the variable STAGE with value 1 or 2 10# 11 12stages: 13 - stage-1 14 - stage-2 15 - stage-3 16variables: 17 GIT_STRATEGY: fetch 18 GIT_CLEAN_FLAGS: -ffdxq 19 PETSC_OPTIONS: -check_pointer_intensity 0 -error_output_stdout -nox -nox_warning -malloc_dump -checkstack 20 TIMEOUT: 450 21 22# 23# The most basic template that most tests will expand upon 24# 25 26.test-basic: 27 interruptible: true 28 only: 29 refs: 30# Set with CI/CD Shedules - New Schedule 31 - schedules 32 - api 33# Set with CI/CD Pipelines - Run Pipeline 34 - web 35 - merge_requests 36 dependencies: [] 37 38.test: 39 extends: .test-basic 40 except: 41 variables: 42 # Skip if the docs-only label is attached to a merge request 43 - $CI_MERGE_REQUEST_LABELS =~ /(^|,)docs-only($|,)/ 44 - $PETSC_CI_SCHEDULED =~ /yes/ 45 46check-ci-settings: 47 extends: .test-basic 48 stage: .pre 49 tags: 50 - check-ci-settings 51 script: 52 - lib/petsc/bin/maint/check-ci-settings.sh 53# 54# This provides the basic order of operations and options template for cloud based stage 1 tests. 55# Not all test-short need to follow this template but most will. 56# 57 58.stage-1: 59 extends: .test 60 stage: stage-1 61 tags: 62 - stage1 63 before_script: 64 - date 65 - hostname 66 - grep PRETTY_NAME /etc/os-release 67 - nproc 68 - lscpu 69 - ccache --zero-stats 70 - echo ${CONFIG_OPTS} 71 script: 72 - printf "PATH:$PATH\n" 73 - printf "PYTHONPATH:$PYTHONPATH\n" 74 - printf "PETSC_OPTIONS:$PETSC_OPTIONS\n" 75 - if [ ! -z ${CI_MERGE_REQUEST_SOURCE_BRANCH_NAME+x} ]; then printf "CI_MERGE_REQUEST_SOURCE_BRANCH_NAME:$CI_MERGE_REQUEST_SOURCE_BRANCH_NAME\n" ;fi 76 - ${PYTHON} ./configure --with-debugging=0 COPTFLAGS='-O3 -march=native' CXXOPTFLAGS='-O3 -march=native' FOPTFLAGS='-O3 -march=native' ${CONFIG_OPTS} 77 - make CFLAGS="${MAKE_CFLAGS}" CXXFLAGS="${MAKE_CXXFLAGS}" FFLAGS="${MAKE_FFLAGS}" 78 - make CFLAGS="${MAKE_TEST_CFLAGS}" CXXFLAGS="${MAKE_TEST_CXXFLAGS}" FFLAGS="${MAKE_TEST_FFLAGS}" allgtests-tap gmakesearch="${TEST_SEARCH}" TIMEOUT=${TIMEOUT} 79 variables: 80 MAKE_CFLAGS: -Werror 81 MAKE_CXXFLAGS: -Werror -Wzero-as-null-pointer-constant 82 MAKE_FFLAGS: -Werror 83 MAKE_TEST_CFLAGS: -Werror 84 MAKE_TEST_CXXFLAGS: -Werror 85 MAKE_TEST_FFLAGS: -Werror 86 after_script: 87 - date 88 - ccache --show-stats 89 artifacts: 90 reports: 91 junit: arch-*/tests/testresults.xml 92 name: "$CI_JOB_NAME" 93 when: always 94 paths: 95 - arch-*/lib/petsc/conf/*.log 96 - arch-*/lib/pkgconfig/petsc.pc 97 - arch-*/tests/testresults.xml 98 - arch-*/tests/test_*_tap.log 99 - arch-*/tests/test_*_err.log 100 expire_in: 4 days 101 102# 103# The following tests run on the cloud as part of stage-1. 104# 105 106ompi-cuda: 107 extends: .stage-1 108 tags: 109 - stage1, name:p1 110 variables: 111 PYTHON: python3 112 CONFIG_OPTS: --with-mpi-dir=/home/petsc/soft/openmpi-4.0.2-cuda --with-cuda=1 --with-fc=0 113 TEST_SEARCH: snes_tutorials-ex19_cuda% 114 MAKE_CXXFLAGS: -Werror 115 116mpich-cxx-py3: 117 extends: .stage-1 118 tags: 119 - stage1, fedora 120 variables: 121 PYTHON: python3 122 CONFIG_OPTS: --with-mpi-dir=/home/glci/soft/mpich-3.3.2 --with-clanguage=cxx --with-fc=0 CXXFLAGS=-std=c++11 123 TEST_SEARCH: snes_tutorials-ex48% 124 125uni-complex-float-int64: 126 extends: .stage-1 127 tags: 128 - stage1, name:pj02 129 variables: 130 PYTHON: python3 131 CONFIG_OPTS: --with-mpi=0 --with-scalar-type=complex --with-precision=single --with-64-bit-indices 132 TEST_SEARCH: ts_tutorials-ex11_adv_2d_quad_% 133 134c99-mlib-static-py2: 135 extends: .stage-1 136 tags: 137 - stage1, fedora 138 variables: 139 PYTHON: python2 140 CONFIG_OPTS: --with-mpi-dir=/home/glci/soft/mpich-3.3.2 --with-single-library=0 --with-shared-libraries=0 CFLAGS=-std=c99 141 TEST_SEARCH: snes_tutorials-ex19% snes_tutorials-ex5f90t% 142 MAKE_TEST_FFLAGS: -Werror -std=f2008 143 144petsc4py-install: 145 extends: .stage-2 146 tags: 147 - linux-stage2 148 variables: 149 PYTHON: python3 150 T_PREFIX: petsc-install 151 T_DESTDIR: petsc-destdir 152 T_PETSC4PY: src/binding/petsc4py 153 T_VALIDATE_CMD: lib/petsc/bin/maint/validate-petsc4py.sh 154 script: 155 - printf "PATH:$PATH\n" 156 - mkdir hide 157 - if [ ! -z ${CI_MERGE_REQUEST_SOURCE_BRANCH_NAME+x} ]; then printf "CI_MERGE_REQUEST_SOURCE_BRANCH_NAME:$CI_MERGE_REQUEST_SOURCE_BRANCH_NAME\n" ;fi 158 - ${PYTHON} ./configure --prefix="${PWD}/${T_PREFIX}" --with-petsc4py=1 --with-debugging=0 --with-mpi-dir=/home/glci/soft/mpich-3.3.2 159 - make CFLAGS=-Werror CXXFLAGS="-Werror -Wzero-as-null-pointer-constant" FFLAGS=-Werror 160 - printf "====== Test A. Install into staging directory then into prefix directory (mimics distro package recipe) =====\n" 161 - make install DESTDIR="${PWD}/${T_DESTDIR}" 162 - test "$(find ${PWD}/${T_PREFIX} -mindepth 1 | wc -l)" -eq 0 163 - test "$(find ${PWD}/${T_DESTDIR} -mindepth 1 | wc -l)" -gt 0 164 - (cd "${PWD}/${T_DESTDIR}" && find * -exec install -v -D "{}" "/{}" \; ) 165 - mv arch-* hide/ && PETSC_DIR="${PWD}/${T_PREFIX}" ${T_VALIDATE_CMD} && mv hide/arch-* ./ 166 - rm -r "${PWD}/${T_PREFIX}" "${PWD}/${T_DESTDIR}" && mkdir "${PWD}/${T_PREFIX}" 167 - printf "====== Test B. Install directly into prefix directory =====\n" 168 - make install 169 - test "$(find ${PWD}/${T_PREFIX} -mindepth 1 | wc -l)" -gt 0 170 - mv arch-* hide/ && PETSC_DIR="${PWD}/${T_PREFIX}" ${T_VALIDATE_CMD} && mv hide/arch-* ./ 171 - rm -r "${PWD}/${T_PREFIX}"/*/petsc4py* 172 - printf "====== Test C. Install manually with setuptools =====\n" 173 - export PETSC_DIR="${PWD}/${T_PREFIX}" && (cd "${T_PETSC4PY}" && ${PYTHON} setup.py build) 174 - export PETSC_DIR="${PWD}/${T_PREFIX}" P="${PWD}" && (cd "${T_PETSC4PY}" && ${PYTHON} setup.py install --install-lib="${P}/${T_PREFIX}/lib") 175 - mv arch-* hide/ && PETSC_DIR="${PWD}/${T_PREFIX}" ${T_VALIDATE_CMD} && mv hide/arch-* ./ 176 - rm -r "${PWD}/${T_PREFIX}"/*/petsc4py* 177 - printf "====== Test D. Install manually with setuptools with staging =====\n" 178 - export PETSC_DIR="${PWD}/${T_PREFIX}" P="${PWD}" && (cd "${T_PETSC4PY}" && ${PYTHON} setup.py install --root="${P}/${T_DESTDIR}" --install-lib="${P}/${T_PREFIX}/lib") 179 - (cd "${PWD}/${T_DESTDIR}" && find * -exec install -v -D "{}" "/{}" \; ) 180 - mv arch-* hide/ && PETSC_DIR="${PWD}/${T_PREFIX}" ${T_VALIDATE_CMD} && mv hide/arch-* ./ 181 182checksource: 183 extends: .test-basic 184 stage: .pre 185 tags: 186 - stage1 187 script: 188 - python3 ./configure --with-mpi=0 --with-fc=0 --with-cxx=0 189 - vermin --version 190 - make vermin 191 - make checkbadSource SHELL=bash 192 - make -f gmakefile check_output SHELL=bash 193 - make check_petsc4py_rst 194 195pause-for-approval: 196 extends: .test 197 stage: .pre 198 tags: 199 - stage1 200 only: 201 refs: 202 - merge_requests 203 variables: 204 - $CI_MERGE_REQUEST_EVENT_TYPE == "merged_result" 205 - $CI_MERGE_REQUEST_EVENT_TYPE == "detached" 206 script: 207 - echo "pause-for-approval has no script to run" 208 variables: 209 GIT_STRATEGY: none 210 when: manual 211 allow_failure: false 212 213# 214# This provides the basic order of operations and options template for stage-2,3 tests. 215# Not all stage-2,3 need to follow this template, but most will. 216# 217.stage-23: 218 extends: .test 219 script: 220 - printf "PATH:$PATH\n" 221 - printf "PYTHONPATH:$PYTHONPATH\n" 222 - printf "PETSC_OPTIONS:$PETSC_OPTIONS\n" 223 - if [ ! -z ${CI_MERGE_REQUEST_SOURCE_BRANCH_NAME+x} ]; then printf "CI_MERGE_REQUEST_SOURCE_BRANCH_NAME:$CI_MERGE_REQUEST_SOURCE_BRANCH_NAME\n" ;fi 224 - printf "./config/examples/${TEST_ARCH}.py\n" 225 - cat ./config/examples/${TEST_ARCH}.py 226 - ./config/examples/${TEST_ARCH}.py 227 - make CFLAGS="${MAKE_CFLAGS}" CXXFLAGS="${MAKE_CXXFLAGS}" FFLAGS="${MAKE_FFLAGS}" 228 - make CFLAGS="${MAKE_CFLAGS}" CXXFLAGS="${MAKE_CXXFLAGS}" FFLAGS="${MAKE_FFLAGS}" check 229 - make updatedatafiles 230 - if [ -z ${DISABLE_PETSC4PY_TESTS+x} ]; then if [ -z ${ENABLE_PETSC4PY_LDPRELOAD+x} ]; then echo "NOT using LD_PRELOAD"; make petsc4pytest; else echo "using LD_PRELOAD"; LD_PRELOAD=${PWD}/${TEST_ARCH}/lib/libpetsc.so make petsc4pytest; fi; fi 231 - if [ -z ${DISABLE_TESTS+x} ]; then make CFLAGS="${MAKE_CFLAGS}" CXXFLAGS="${MAKE_CXXFLAGS}" FFLAGS="${MAKE_FFLAGS}" cleantest allgtests-tap TIMEOUT=${TIMEOUT} ${TEST_OPTS}; fi 232 - if [ ! -z ${RUN_GCOV+x} ]; then make gcov; fi 233 artifacts: 234 reports: 235 junit: ${TEST_ARCH}/tests/testresults.xml 236 name: "$CI_JOB_NAME" 237 when: always 238 paths: 239 - ${TEST_ARCH}/lib/petsc/conf/*.log 240 - ${TEST_ARCH}/lib/pkgconfig/petsc.pc 241 - ${TEST_ARCH}/tests/testresults.xml 242 - ${TEST_ARCH}/tests/test_${TEST_ARCH}_tap.log 243 - ${TEST_ARCH}/tests/test_${TEST_ARCH}_err.log 244 - ${TEST_ARCH}/gcov.tar.gz 245 expire_in: 4 days 246 variables: 247 OPENBLAS_NUM_THREADS: 1 248 249.stage-2: 250 extends: .stage-23 251 stage: stage-2 252 253.stage-3: 254 extends: .stage-23 255 stage: stage-3 256 257# 258# The following provide templates for various OSes for pre/post info 259# 260 261.linux_test_noflags: 262 before_script: 263 - date 264 - hostname 265 - grep PRETTY_NAME /etc/os-release 266 - nproc 267 - lscpu 268 - ccache --zero-stats 269 - if [ ! -z ${LOAD_MODULES+x} ]; then module --trace load ${LOAD_MODULES}; module list; fi 270 - if [ ! -z ${INIT_SCRIPT+x} ]; then echo "sourcing ${INIT_SCRIPT}"; source ${INIT_SCRIPT}; fi 271 after_script: 272 - date 273 - ccache --show-stats 274 275.linux_test_nofflags: 276 extends: .linux_test_noflags 277 variables: 278 MAKE_CFLAGS: -Werror 279 MAKE_CXXFLAGS: -Werror 280 281.linux_test: 282 extends: .linux_test_noflags 283 variables: 284 MAKE_CFLAGS: -Werror 285 MAKE_CXXFLAGS: -Werror 286 MAKE_FFLAGS: -Werror 287 288.freebsd_test: 289 variables: 290 MAKE_CFLAGS: -Werror 291 MAKE_CXXFLAGS: -Werror 292 MAKE_FFLAGS: -Werror 293 before_script: 294 - date 295 - hostname 296 - freebsd-version 297 - echo $(sysctl -n hw.ncpu) 298 - ccache --zero-stats 299 after_script: 300 - date 301 - ccache --show-stats 302 303.osx_test: 304 variables: 305 MAKE_CFLAGS: -Werror 306 MAKE_CXXFLAGS: -Werror 307 MAKE_FFLAGS: -Werror 308 before_script: 309 - date 310 - hostname 311 - sw_vers -productVersion 312 - echo $(sysctl -n hw.ncpu) 313 - ccache --zero-stats 314 after_script: 315 - date 316 - ccache --show-stats 317 318.opensolaris_test: 319 before_script: 320 - date 321 - hostname 322 - uname -a 323 - nproc 324 - isainfo -x 325 after_script: 326 - date 327 328.mswin_test: 329 before_script: 330 - date 331 - hostname 332 - uname -a 333 - nproc 334 after_script: 335 - date 336 337# 338# The following tests run as part of stage-2. 339# 340# The tags variable used in the tests below connects the particular test with the runners 341# listed on the left hand side of https://gitlab.com/petsc/petsc/-/settings/ci_cd. 342# For example the test linux-sycl-double any runner that has the tag 'name:pj01' 343# (in a blue box beneath it) 344# 345 346freebsd-cxx-cmplx-64idx-dbg: 347 extends: 348 - .stage-2 349 - .freebsd_test 350 tags: 351 - os:fbsd 352 variables: 353 TEST_ARCH: arch-ci-freebsd-cxx-cmplx-64idx-dbg 354 355freebsd-c-single-opt: 356 extends: 357 - .stage-2 358 - .freebsd_test 359 tags: 360 - os:fbsd 361 variables: 362 TEST_ARCH: arch-ci-freebsd-c-single-opt 363 364linux-cuda-double: 365 extends: 366 - .stage-3 367 - .linux_test 368 tags: 369 - gpu:nvidia, os:linux, name:p1 370 variables: 371 TEST_ARCH: arch-ci-linux-cuda-double 372 373linux-gcc-quad-64idx-dbg: 374 extends: 375 - .stage-2 376 - .linux_test 377 tags: 378 - linux-stage2 379 variables: 380 TEST_ARCH: arch-ci-linux-gcc-quad-64idx-dbg 381 382linux-gcc-pkgs-opt: 383 extends: 384 - .stage-2 385 - .linux_test 386 tags: 387 - linux-stage2 388 variables: 389 TEST_ARCH: arch-ci-linux-gcc-pkgs-opt 390 391linux-gcc-complex-opt-32bit: 392 extends: 393 - .stage-2 394 - .linux_test 395 tags: 396 - linux-stage2 397 variables: 398 TEST_ARCH: arch-ci-linux-gcc-complex-opt-32bit 399 400#do not run checkstack on MSWIN-UNI 401mswin-uni: 402 extends: 403 - .stage-2 404 - .mswin_test 405 tags: 406 - win-stage2 407 variables: 408 PETSC_OPTIONS: -check_pointer_intensity 0 -error_output_stdout -nox -nox_warning -malloc_dump 409 TEST_ARCH: arch-ci-mswin-uni 410 411mswin-gnu: 412 extends: 413 - .stage-2 414 - .mswin_test 415 tags: 416 - win-stage2 417 variables: 418 TEST_ARCH: arch-ci-mswin-gnu 419 MAKE_CFLAGS: -Werror 420 MAKE_CXXFLAGS: -Werror 421 MAKE_FFLAGS: -Werror 422 DISABLE_TESTS: 1 423 artifacts: 424 reports: 425 paths: 426 - arch-*/lib/petsc/conf/*.log 427 expire_in: 4 days 428 429# 430# The following tests run as part of stage-3. 431# 432 433freebsd-cxx-cmplx-pkgs-dbg: 434 extends: 435 - .stage-3 436 - .freebsd_test 437 tags: 438 - os:fbsd 439 variables: 440 TEST_ARCH: arch-ci-freebsd-cxx-cmplx-pkgs-dbg 441 442freebsd-cxx-pkgs-opt: 443 extends: 444 - .stage-3 445 - .freebsd_test 446 tags: 447 - os:fbsd 448 variables: 449 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 450 TEST_ARCH: arch-ci-freebsd-cxx-pkgs-opt 451 452freebsd-pkgs-opt: 453 extends: 454 - .stage-3 455 - .freebsd_test 456 tags: 457 - os:fbsd 458 variables: 459 TEST_ARCH: arch-ci-freebsd-pkgs-opt 460 461linux-hip-double: 462 extends: 463 - .stage-3 464 - .linux_test 465 tags: 466 - gpu:amd, os:linux, name:hip-txcorp 467 variables: 468 PATH: /opt/rh/devtoolset-7/root/usr/bin:/opt/rocm/bin:/opt/rocm/llvm/bin:/usr/sbin:/usr/bin:/sbin:/bin 469 TEST_ARCH: arch-ci-linux-hip-double 470 471linux-sycl-double: 472 extends: 473 - .stage-3 474 - .linux_test_nofflags 475 tags: 476 - os:linux, name:pj01 477 variables: 478 TEST_ARCH: arch-ci-linux-sycl-double 479 INIT_SCRIPT: /home/glci/bin/ci-inteloneapi.sh 480 DISABLE_TESTS: 1 481 482linux-c-exodus-dbg: 483 extends: 484 - .stage-3 485 - .linux_test 486 tags: 487 - gpu:nvidia, os:linux, name:frog 488 variables: 489 PETSC_OPTIONS: -check_pointer_intensity 0 -error_output_stdout -nox -nox_warning -malloc_dump -use_gpu_aware_mpi 0 -checkstack 490 TEST_ARCH: arch-ci-linux-c-exodus-dbg 491 RUN_GCOV: 1 492 TEST_OPTS: -j1 query=requires queryval=cuda 493 494linux-cuda11-double: 495 extends: 496 - .stage-3 497 - .linux_test 498 tags: 499 - gpu:nvidia, os:linux, name:frog 500 variables: 501 PETSC_OPTIONS: -check_pointer_intensity 0 -error_output_stdout -nox -nox_warning -malloc_dump -use_gpu_aware_mpi 0 -checkstack 502 TEST_ARCH: arch-ci-linux-cuda11-double 503 TEST_OPTS: -j1 query=requires queryval=cuda 504 505linux-cuda11-complex: 506 extends: 507 - .stage-3 508 - .linux_test 509 tags: 510 - gpu:nvidia, os:linux, name:frog 511 variables: 512 PETSC_OPTIONS: -check_pointer_intensity 0 -error_output_stdout -nox -nox_warning -malloc_dump -use_gpu_aware_mpi 0 -checkstack 513 TEST_ARCH: arch-ci-linux-cuda11-complex 514 TEST_OPTS: -j1 query=requires queryval=cuda 515 516linux-cuda-double-64idx: 517 extends: 518 - .stage-3 519 - .linux_test 520 tags: 521 - gpu:nvidia, os:linux, name:p1 522 variables: 523 TEST_ARCH: arch-ci-linux-cuda-double-64idx 524 TEST_OPTS: -j1 query=requires queryval=cuda 525 526linux-cuda-single-cxx: 527 extends: 528 - .stage-3 529 - .linux_test 530 tags: 531 - gpu:nvidia, os:linux 532 variables: 533 PETSC_OPTIONS: -check_pointer_intensity 0 -error_output_stdout -nox -nox_warning -malloc_dump -use_gpu_aware_mpi 0 -checkstack 534 TEST_ARCH: arch-ci-linux-cuda-single-cxx 535 TEST_OPTS: -j1 query=requires queryval=cuda 536 537linux-cuda-uni-pkgs: 538 extends: 539 - .stage-3 540 - .linux_test 541 tags: 542 - gpu:nvidia, os:linux 543 variables: 544 TEST_ARCH: arch-ci-linux-cuda-uni-pkgs 545 TEST_OPTS: -j4 query=requires queryval=cuda 546 547linux-viennacl: 548 extends: 549 - .stage-3 550 - .linux_test 551 tags: 552 - gpu:nvidia, os:linux 553 variables: 554 TEST_ARCH: arch-ci-linux-viennacl 555 MAKE_CXXFLAGS: -Werror -Wno-ignored-attributes 556 TEST_OPTS: -j1 query=requires queryval=viennacl 557 558linux-without-fc: 559 extends: 560 - .stage-3 561 - .linux_test 562 tags: 563 - gce-nfs 564 variables: 565 TEST_ARCH: arch-ci-linux-without-fc 566 567linux-cmplx-single: 568 extends: 569 - .stage-3 570 - .linux_test 571 tags: 572 - name:si 573 variables: 574 TEST_ARCH: arch-ci-linux-cmplx-single 575 576linux-gcc-cxx-avx2: 577 extends: 578 - .stage-3 579 - .linux_test 580 tags: 581 - name:isdp001 582 variables: 583 TEST_ARCH: arch-ci-linux-gcc-cxx-avx2 584 585linux-clang-avx: 586 extends: 587 - .stage-3 588 - .linux_test 589 tags: 590 - name:isdp001 591 variables: 592 TEST_ARCH: arch-ci-linux-clang-avx 593 594linux-knl: 595 extends: 596 - .stage-3 597 - .linux_test 598 tags: 599 - name:isdp001 600 variables: 601 TEST_ARCH: arch-ci-linux-knl 602 603linux-intel-mkl-single: 604 extends: 605 - .stage-3 606 - .linux_test_nofflags 607 tags: 608 - name:isdp001 609 variables: 610 TEST_ARCH: arch-ci-linux-intel-mkl-single 611 612linux-cxx-cmplx-pkgs-64idx: 613 extends: 614 - .stage-3 615 - .linux_test 616 tags: 617 - gce-nfs 618 variables: 619 TEST_ARCH: arch-ci-linux-cxx-cmplx-pkgs-64idx 620 LOAD_MODULES: llvm/9.0.0-7fyffox gcc/8.3.0-fjpc5ys cmake/3.14.2-rl3q676 621 622# Set env vars for 'Kokkos + OpenMP' tests, so that they won't give warnings 623linux-pkgs-dbg-ftn-interfaces: 624 extends: 625 - .stage-3 626 - .linux_test 627 tags: 628 - gce-nfs 629 variables: 630 TEST_ARCH: arch-ci-linux-pkgs-dbg-ftn-interfaces 631 LOAD_MODULES: cmake/3.20.5-yjp2hz6 632 OMP_PROC_BIND: "false" 633 OMP_NUM_THREADS: 4 634 635linux-pkgs-cxx-mlib: 636 extends: 637 - .stage-3 638 - .linux_test 639 tags: 640 - gce-nfs 641 variables: 642 PETSC_OPTIONS: -check_pointer_intensity 0 -error_output_stdout -nox -nox_warning -malloc_dump -saws_port_auto_select -saws_port_auto_select_silent -checkstack 643 TEST_ARCH: arch-ci-linux-pkgs-cxx-mlib 644 LOAD_MODULES: gcc/11.1.0-5ikoznk cmake/3.20.5-yjp2hz6 645 646linux-pkgs-valgrind: 647 extends: 648 - .stage-3 649 - .linux_test 650 tags: 651 - gce-nfs, linux-fast 652 variables: 653 TEST_ARCH: arch-ci-linux-pkgs-valgrind 654 TIMEOUT: 7200 655 LOAD_MODULES: valgrind/3.17.0 656 657linux-pkgs-opt: 658 extends: 659 - .stage-3 660 - .linux_test 661 tags: 662 - gce-nfs, linux-fast 663 variables: 664 PETSC_OPTIONS: -check_pointer_intensity 0 -error_output_stdout -nox -nox_warning -malloc_dump -saws_port_auto_select -saws_port_auto_select_silent -checkstack 665 TEST_ARCH: arch-ci-linux-pkgs-opt 666 LOAD_MODULES: gcc/10.1.0-5hiqhdh 667 668linux-pkgs-gcov: 669 extends: 670 - .stage-3 671 - .linux_test 672 tags: 673 - gce-nfs, linux-gcov 674 variables: 675 TEST_ARCH: arch-ci-linux-pkgs-gcov 676 RUN_GCOV: 1 677 678linux-cmplx-gcov: 679 extends: 680 - .stage-3 681 - .linux_test 682 tags: 683 - gce-nfs, linux-gcov 684 variables: 685 PETSC_OPTIONS: -check_pointer_intensity 0 -error_output_stdout -nox -nox_warning -malloc_dump -vecscatter_mpi1 false -options_left false -checkstack 686 TEST_ARCH: arch-ci-linux-cmplx-gcov 687 LOAD_MODULES: gcc/8.3.0-fjpc5ys 688 RUN_GCOV: 1 689 690linux-matlab-ilp64-gcov: 691 extends: 692 - .stage-3 693 - .linux_test 694 tags: 695 - gce-nfs, linux-gcov 696 variables: 697 TEST_ARCH: arch-ci-linux-matlab-ilp64-gcov 698 LOAD_MODULES: matlab/R2018a 699 RUN_GCOV: 1 700 allow_failure: true 701 702linux-gcov: 703 extends: 704 - .stage-3 705 - .linux_test 706 tags: 707 - gce-nfs, linux-gcov 708 variables: 709 TEST_ARCH: arch-ci-linux-gcov 710 RUN_GCOV: 1 711 712linux-pgi: 713 extends: 714 - .stage-3 715 - .linux_test_noflags 716 tags: 717 - gce-nfs, linux-mcpu 718 variables: 719 TEST_ARCH: arch-ci-linux-pgi 720 LOAD_MODULES: hpc_sdk/20.9 721 722linux-nagfor: 723 extends: 724 - .stage-3 725 - .linux_test_nofflags 726 tags: 727 - gce-nfs, linux-mcpu 728 variables: 729 LOAD_MODULES: nag/6.1 730 TEST_ARCH: arch-ci-linux-nagfor 731 732linux-intel-cmplx: 733 extends: 734 - .stage-3 735 - .linux_test_nofflags 736 tags: 737 - gce-nfs 738 variables: 739 TEST_ARCH: arch-ci-linux-intel-cmplx 740 LOAD_MODULES: intel-mkl/19.5 intel/19.0-nompilib cmake/3.20.5-yjp2hz6 741 ENABLE_PETSC4PY_LDPRELOAD: 1 742 743linux-xsdk-dbg: 744 extends: 745 - .stage-3 746 - .linux_test 747 tags: 748 - gce-nfs 749 variables: 750 TEST_ARCH: arch-ci-linux-xsdk-dbg 751 LOAD_MODULES: gcc/8.3.0-fjpc5ys 752 753linux-analyzer: 754 extends: 755 - .stage-2 756 - .linux_test 757 tags: 758 - gce-nfs-short 759 script: 760 - printf "PATH:$PATH\n" 761 - printf "PYTHONPATH:$PYTHONPATH\n" 762 - printf "PETSC_OPTIONS:$PETSC_OPTIONS\n" 763 - if [ ! -z ${CI_MERGE_REQUEST_SOURCE_BRANCH_NAME+x} ]; then printf "CI_MERGE_REQUEST_SOURCE_BRANCH_NAME:$CI_MERGE_REQUEST_SOURCE_BRANCH_NAME\n" ;fi 764 - printf "./config/examples/${TEST_ARCH}.py\n" 765 - cat ./config/examples/${TEST_ARCH}.py 766 - ./config/examples/${TEST_ARCH}.py 767 - make LINTER_OPTIONS="${LINTER_OPTIONS}" test-lint 768 - make LINTER_OPTIONS="${LINTER_OPTIONS}" lint 769 variables: 770 TEST_ARCH: arch-ci-linux-analyzer 771 LOAD_MODULES: llvm/11.0.0-snbtima cmake/3.20.0-vov726r 772 LINTER_OPTIONS: "--PETSC_ARCH=${TEST_ARCH} --clang_lib=`llvm-config --libdir`/libclang.so.11 --verbose --werror" 773 artifacts: 774 paths: 775 - ${TEST_ARCH}/lib/petsc/conf/*.log 776 - ./petscLintPatches/*.patch 777 778linux-intel: 779 extends: 780 - .stage-3 781 - .linux_test_nofflags 782 tags: 783 - gce-nfs 784 variables: 785 TEST_ARCH: arch-ci-linux-intel 786 LOAD_MODULES: intel-mkl/19.5 intel/19.0-nompilib 787 788linux-opt-misc: 789 extends: 790 - .stage-3 791 - .linux_test 792 tags: 793 - gce-nfs, linux-fast 794 variables: 795 TEST_ARCH: arch-ci-linux-opt-misc 796 LOAD_MODULES: gcc/6.5.0-57usejd 797 798linux-pkgs-64idx: 799 extends: 800 - .stage-3 801 - .linux_test 802 tags: 803 - gce-nfs, linux-mcpu 804 variables: 805 TEST_ARCH: arch-ci-linux-pkgs-64idx 806 LOAD_MODULES: cmake/3.20.5-yjp2hz6 intel-mkl/19.5 807 808linux-64idx-i8: 809 extends: 810 - .stage-3 811 - .linux_test 812 tags: 813 - gce-nfs 814 variables: 815 TEST_ARCH: arch-ci-linux-64idx-i8 816 817linux-gcc-ifc-cmplx: 818 extends: 819 - .stage-3 820 - .linux_test_nofflags 821 tags: 822 - gce-nfs 823 variables: 824 TEST_ARCH: arch-ci-linux-gcc-ifc-cmplx 825 LOAD_MODULES: intel/19.0-nompilib cmake/3.20.0-vov726r 826 827linux-opt-cxx-quad: 828 extends: 829 - .stage-3 830 - .linux_test 831 tags: 832 - gce-nfs 833 variables: 834 TEST_ARCH: arch-ci-linux-opt-cxx-quad 835 836linux-ILP64: 837 extends: 838 - .stage-3 839 - .linux_test 840 tags: 841 - gce-nfs 842 variables: 843 TEST_ARCH: arch-ci-linux-ILP64 844 LOAD_MODULES: mpich/2-1.5-gcc750 845 846linux-64idx-i8-uni: 847 extends: 848 - .stage-3 849 - .linux_test 850 tags: 851 - gce-nfs 852 variables: 853 TEST_ARCH: arch-ci-linux-64idx-i8-uni 854 855mswin-intel-cxx-cmplx: 856 extends: 857 - .stage-3 858 - .mswin_test 859 tags: 860 - os:win 861 variables: 862 TEST_ARCH: arch-ci-mswin-intel-cxx-cmplx 863 864#mswin-intel: 865# extends: 866# - .stage-3 867# - .mswin_test 868# tags: 869# - os:win 870# variables: 871# TEST_ARCH: arch-ci-mswin-intel 872 873#mswin-opt-impi: 874# extends: 875# - .stage-3 876# - .mswin_test 877# tags: 878# - os:win 879# variables: 880# TEST_ARCH: arch-ci-mswin-opt-impi 881# DISABLE_TESTS: 1 882 883opensolaris-pkgs-opt: 884 extends: 885 - .stage-3 886 - .opensolaris_test 887 tags: 888 - name:n-gage 889 variables: 890 TEST_ARCH: arch-ci-opensolaris-pkgs-opt 891 892opensolaris-cmplx-pkgs-dbg: 893 extends: 894 - .stage-3 895 - .opensolaris_test 896 tags: 897 - name:n-gage 898 variables: 899 TEST_ARCH: arch-ci-opensolaris-cmplx-pkgs-dbg 900 901opensolaris-misc: 902 extends: 903 - .stage-3 904 - .opensolaris_test 905 tags: 906 - name:n-gage 907 variables: 908 TEST_ARCH: arch-ci-opensolaris-misc 909 910osx-cxx-cmplx-pkgs-dbg: 911 extends: 912 - .stage-3 913 - .osx_test 914 tags: 915 - os:macos 916 variables: 917 TEST_ARCH: arch-ci-osx-cxx-cmplx-pkgs-dbg 918 919osx-cxx-pkgs-opt: 920 extends: 921 - .stage-3 922 - .osx_test 923 tags: 924 - os:macos, opt 925 variables: 926 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 927 TEST_ARCH: arch-ci-osx-cxx-pkgs-opt 928 MAKE_CXXFLAGS: -Werror -Wno-pass-failed 929 930osx-dbg: 931 extends: 932 - .stage-3 933 - .osx_test 934 tags: 935 - os:macos 936 variables: 937 TEST_ARCH: arch-ci-osx-dbg 938 939osx-xsdk-opt: 940 extends: 941 - .stage-3 942 - .osx_test 943 tags: 944 - os:macos, opt 945 variables: 946 TEST_ARCH: arch-ci-osx-xsdk-opt 947 948# job for analyzing the final coverage results 949analyze-pipeline: 950 extends: .test 951 stage: .post 952 tags: 953 - gce-nfs-short 954 dependencies: 955 - linux-c-exodus-dbg 956 - linux-pkgs-gcov 957 - linux-cmplx-gcov 958 - linux-matlab-ilp64-gcov 959 - linux-gcov 960 variables: 961 PETSC_ARCH: arch-ci-analyze-pipeline 962 before_script: 963 - date 964 - hostname 965 script: 966 - ./configure --with-mpi=0 --with-cxx=0 --with-c2html 967 - make srchtml 968 - make mergegcov 969 artifacts: 970 name: "$CI_JOB_NAME" 971 when: always 972 paths: 973 - arch-ci-analyze-pipeline/* 974 expire_in: 4 days 975 976 977# 978# Base job for a documentation build 979# 980.docs: 981 stage: stage-2 982 tags: 983 - name:pj02 984 before_script: 985 - VENV=venv-petsc-docs && 986 python3 -m venv $VENV && 987 . $VENV/bin/activate && 988 cd doc && 989 pip install -r requirements.txt 990 allow_failure: true 991 992# 993# Build documentation and make available for review using GitLab pages 994# 995docs-review: 996 extends: 997 - .docs 998 - .test-basic 999 script: 1000 - make html BUILDDIR="../public" SPHINXOPTS="-T -E" 1001 - make latexpdf && mkdir -p ../public/docs/manual && cp _build/latex/manual.pdf ../public/html/docs/manual/ 1002 environment: 1003 name: review/$CI_COMMIT_REF_NAME 1004 url: https://$CI_PROJECT_NAMESPACE.gitlab.io/-/$CI_PROJECT_NAME/-/jobs/$CI_JOB_ID/artifacts/public/html/index.html 1005 artifacts: 1006 paths: 1007 - public 1008 except: 1009 variables: 1010 - $PETSC_CI_SCHEDULED =~ /yes/ 1011 1012# 1013# Deploy documentation using GitLab pages 1014# 1015pages: # this job name has special meaning to GitLab 1016 extends: .docs 1017 interruptible: true 1018 script: 1019 - mkdir -p ../public/ && cp public/* ../public/ 1020 - git fetch --unshallow --no-tags origin +release:remotes/origin/release +main:remotes/origin/main 1021 - git checkout origin/main && make website-deploy BUILDDIR="../public/main" && make latexpdf && mkdir -p ../public/main/docs/manual && cp _build/latex/manual.pdf ../public/main/docs/manual/ 1022 - make clean BUILDDIR="../public/release" 1023 - git checkout origin/release && make website-deploy BUILDDIR="../public/release" && make latexpdf && mkdir -p ../public/release/docs/manual && cp _build/latex/manual.pdf ../public/release/docs/manual/ 1024 only: 1025 variables: 1026 - $PETSC_CI_SCHEDULED == "yes" 1027 artifacts: 1028 paths: 1029 - public 1030 1031# 1032# 1033# The following tests are experimental; more tests by users at other sites may be added below this. Experimental test 1034# that fail produce a warning, but do not block execution of a pipeline. 1035# 1036 1037.test-experimental: 1038 extends: .test 1039 allow_failure: true 1040 1041