128d80369SJed Brown 228d80369SJed Brown# test-short take only a few minutes and generally run on the cloud; they do not run the full test suite or external packages. 328d80369SJed Brown# 428d80369SJed Brown# test-long often runs on MCS systems and may take an hour or more. They run the full test suite and may test external packages. 528d80369SJed Brown# 628d80369SJed Brown# The test-long tests are only started if all of the test-short tests run without error and if the merge request has 728d80369SJed Brown# been labeled with "fulltest". 828d80369SJed Brown# 928d80369SJed Brown 10340aff75SJed Brownstages: 1128d80369SJed Brown - test-short 12636284c1SSatish Balay - test-long 13340aff75SJed Brownvariables: 14340aff75SJed Brown GIT_STRATEGY: fetch 15c592e2e1SSatish Balay GIT_CLEAN_FLAGS: -ffdxq 16a3e7580aSSatish Balay PETSC_OPTIONS: -check_pointer_intensity 0 -error_output_stdout -nox -nox_warning -malloc_dump 17340aff75SJed Brown 1828d80369SJed Brown# 1928d80369SJed Brown# The most basic template that most tests will expand upon. It ensures that the tests are run only for merge requests. 2028d80369SJed Brown# 2128d80369SJed Brown 22e74c1a09SJed Brown.test: 23410f5c6aSJed Brown only: 240962a0d6SJed Brown refs: 25410f5c6aSJed Brown - merge_requests 2628d80369SJed Brown 2728d80369SJed Brown# 2828d80369SJed Brown# This provides the basic order of operations and options template for cloud based test-short tests. 2928d80369SJed Brown# Not all test-short need to follow this template but most will. 3028d80369SJed Brown# 3128d80369SJed Brown 3228d80369SJed Brown.test-short: 3328d80369SJed Brown extends: .test 3428d80369SJed Brown stage: test-short 3528d80369SJed Brown image: jedbrown/mpich-ccache 36340aff75SJed Brown before_script: 37340aff75SJed Brown - echo nproc=$(nproc) 38340aff75SJed Brown - cat /proc/cpuinfo 39525f0e14SJed Brown - export CCACHE_COMPILERCHECK=content 40*04bc68e0SJed Brown - export CCACHE_DIR=$(pwd)/.ccache 41*04bc68e0SJed Brown - ccache --show-stats 42*04bc68e0SJed Brown - ccache --zero-stats 43340aff75SJed Brown script: 441c6b2e5dSSatish Balay - ${PYTHON} ./configure --with-debugging=0 COPTFLAGS='-O -march=native' CXXOPTFLAGS='-O -march=native' FOPTFLAGS='-O -march=native' ${CONFIG_OPTS} 45377e4ec7SSatish Balay - make -j$(nproc) -l$(nproc) CFLAGS=-Werror 4628d80369SJed Brown - make allgtests-tap search="${TEST_SEARCH}" TIMEOUT=300 473d889285SJed Brown after_script: 48*04bc68e0SJed Brown - CCACHE_DIR=$(pwd)/.ccache ccache --show-stats 49e22b0966SJed Brown artifacts: 50e22b0966SJed Brown reports: 51e22b0966SJed Brown junit: arch-*/tests/testresults.xml 523d889285SJed Brown cache: 533d889285SJed Brown paths: 54*04bc68e0SJed Brown - .ccache/ 553d889285SJed Brown key: "${CI_JOB_NAME}" 56e74c1a09SJed Brown 5728d80369SJed Brown# 5828d80369SJed Brown# The following tests run on the cloud as part of test-short. 5928d80369SJed Brown# 6028d80369SJed Brown 611c6b2e5dSSatish Balaympich-cxx-py3: 6228d80369SJed Brown extends: .test-short 63e74c1a09SJed Brown variables: 641c6b2e5dSSatish Balay PYTHON: python3 651c6b2e5dSSatish Balay CONFIG_OPTS: --with-mpi-dir=/usr/local --with-clanguage=cxx --with-fc=0 66e74c1a09SJed Brown TEST_SEARCH: snes_tutorials-ex48% 67340aff75SJed Brown 68340aff75SJed Brownuni-complex-float-int64: 6928d80369SJed Brown extends: .test-short 70e74c1a09SJed Brown variables: 711c6b2e5dSSatish Balay PYTHON: python3 72e74c1a09SJed Brown CONFIG_OPTS: < 73e74c1a09SJed Brown --with-mpi=0 74340aff75SJed Brown --with-scalar-type=complex --with-precision=single --with-64-bit-indices 75e74c1a09SJed Brown TEST_SEARCH: ts_tutorials-ex11_adv_2d_quad_% 76340aff75SJed Brown 771c6b2e5dSSatish Balayc89-mlib-static-py2: 7828d80369SJed Brown extends: .test-short 793d889285SJed Brown image: jedbrown/mpich-ccache:python2 801c6b2e5dSSatish Balay variables: 81377e4ec7SSatish Balay PYTHON: python2 821c6b2e5dSSatish Balay CONFIG_OPTS: < 831c6b2e5dSSatish Balay --with-mpi-dir=/usr/local 841c6b2e5dSSatish Balay --with-single-library=0 --with-shared-libraries=0 'CFLAGS=-std=c89 -pedantic -Wno-long-long -Wno-overlength-strings' 851c6b2e5dSSatish Balay TEST_SEARCH: snes_tutorials-ex48% 861c6b2e5dSSatish Balay 8728d80369SJed Brown# 8828d80369SJed Brown# This provides the basic order of operations and options template for test-long tests. 8928d80369SJed Brown# Not all test-long need to follow this template, but most will. 9028d80369SJed Brown# 9128d80369SJed Brown.test-long: 9228d80369SJed Brown extends: .test 93636284c1SSatish Balay stage: test-long 94410f5c6aSJed Brown only: 950962a0d6SJed Brown variables: 960962a0d6SJed Brown - $CI_MERGE_REQUEST_LABELS =~ /fulltest/ 9744cd3865SJed Brown script: 981702e285SSatish Balay - ./config/examples/${TEST_ARCH}.py 9944cd3865SJed Brown - make 10044cd3865SJed Brown - make check 1011702e285SSatish Balay - make cleantest allgtests-tap TIMEOUT=300 1028166029eSJed Brown artifacts: 1038166029eSJed Brown reports: 1048166029eSJed Brown junit: ${TEST_ARCH}/tests/testresults.xml 10544cd3865SJed Brown 10628d80369SJed Brown# 10728d80369SJed Brown# The following tests run on MCS systems as part of test-long. 10828d80369SJed Brown# 10928d80369SJed Brown# The tags variable used in the tests below connects the particular test with the runners 11028d80369SJed Brown# listed on the left hand side of https://gitlab.com/petsc/petsc/-/settings/ci_cd. 11128d80369SJed Brown# For example the test linux-gcc-complex-opt which extends .linux_mcs_test will run on 11228d80369SJed Brown# any runner that has the tag (in a blue box beneath it) of mcs-linux. 11328d80369SJed Brown# 11428d80369SJed Brown 11528d80369SJed Brown.mcs_test: 11628d80369SJed Brown extends: .test-long 11728d80369SJed Brown 1181702e285SSatish Balay.linux_mcs_test: 1191702e285SSatish Balay extends: .mcs_test 1201702e285SSatish Balay tags: 1219f54a376SSatish Balay - mcs-linux 1221702e285SSatish Balay before_script: 1231702e285SSatish Balay - hostname 1241702e285SSatish Balay - grep PRETTY_NAME /etc/os-release 1251702e285SSatish Balay - echo $(nproc) 126525f0e14SJed Brown - ccache --zero-stats 127525f0e14SJed Brown after_script: 128525f0e14SJed Brown - ccache --show-stats 1291702e285SSatish Balay 1301702e285SSatish Balay.freebsd_mcs_test: 1311702e285SSatish Balay extends: .mcs_test 1328623489dSJed Brown tags: 1339f54a376SSatish Balay - mcs-freebsd 1348623489dSJed Brown before_script: 1358623489dSJed Brown - hostname 1361702e285SSatish Balay - freebsd-version 1371702e285SSatish Balay - echo $(sysctl -n hw.ncpu) 138525f0e14SJed Brown - ccache --zero-stats 139525f0e14SJed Brown after_script: 140525f0e14SJed Brown - ccache --show-stats 1411702e285SSatish Balay 14220099508SSatish Balay.osx_mcs_test: 14320099508SSatish Balay extends: .mcs_test 14420099508SSatish Balay tags: 1459f54a376SSatish Balay - mcs-osx 146a3e7580aSSatish Balay variables: 14728d80369SJed Brown# the stages definition defines the first line of PETSC_OPTIONS below. Do they have to be repeated here or can one use 14828d80369SJed Brown# $PETSC_OPTIONS or another option so that they do not need to be repeated? 14928d80369SJed Brown PETSC_OPTIONS: < 15028d80369SJed Brown -check_pointer_intensity 0 -error_output_stdout -nox -nox_warning -malloc_dump 15128d80369SJed Brown -saws_port_auto_select -saws_port_auto_select_silent -vecscatter_mpi1 false -options_left false 15220099508SSatish Balay before_script: 15320099508SSatish Balay - hostname 15420099508SSatish Balay - sw_vers -productVersion 15520099508SSatish Balay - echo $(sysctl -n hw.ncpu) 156525f0e14SJed Brown - ccache --zero-stats 157525f0e14SJed Brown after_script: 158525f0e14SJed Brown - ccache --show-stats 15920099508SSatish Balay 16020099508SSatish Balay.opensolaris_mcs_test: 16120099508SSatish Balay extends: .mcs_test 16220099508SSatish Balay tags: 1639f54a376SSatish Balay - mcs-opensolaris 16420099508SSatish Balay before_script: 16520099508SSatish Balay - hostname 16620099508SSatish Balay - uname -a 16720099508SSatish Balay - echo $(nproc) 16820099508SSatish Balay 1691702e285SSatish Balaylinux-gcc-complex-opt: 1701702e285SSatish Balay extends: .linux_mcs_test 1711702e285SSatish Balay variables: 1724d09bf9bSSatish Balay TEST_ARCH: arch-ci-linux-gcc-complex-opt 1731702e285SSatish Balay 1741702e285SSatish Balaylinux-gcc-pkgs-opt: 1751702e285SSatish Balay extends: .linux_mcs_test 1761702e285SSatish Balay variables: 1774d09bf9bSSatish Balay TEST_ARCH: arch-ci-linux-gcc-pkgs-opt 1781702e285SSatish Balay 1791702e285SSatish Balaylinux-gcc-quad-64idx-dbg: 1801702e285SSatish Balay extends: .linux_mcs_test 1811702e285SSatish Balay variables: 1824d09bf9bSSatish Balay TEST_ARCH: arch-ci-linux-gcc-quad-64idx-dbg 1831702e285SSatish Balay 1841702e285SSatish Balayfreebsd-c-single-opt: 1851702e285SSatish Balay extends: .freebsd_mcs_test 1861702e285SSatish Balay variables: 1874d09bf9bSSatish Balay TEST_ARCH: arch-ci-freebsd-c-single-opt 1881702e285SSatish Balay 1891702e285SSatish Balayfreebsd-cxx-cmplx-64idx-dbg: 1901702e285SSatish Balay extends: .freebsd_mcs_test 1911702e285SSatish Balay variables: 1924d09bf9bSSatish Balay TEST_ARCH: arch-ci-freebsd-cxx-cmplx-64idx-dbg 1938623489dSJed Brown 19420099508SSatish Balayosx-cxx-pkgs-opt: 19520099508SSatish Balay extends: .osx_mcs_test 19620099508SSatish Balay variables: 1974d09bf9bSSatish Balay TEST_ARCH: arch-ci-osx-cxx-pkgs-opt 19820099508SSatish Balay 19920099508SSatish Balayopensolaris-cmplx-pkgs-dbg: 20020099508SSatish Balay extends: .opensolaris_mcs_test 20120099508SSatish Balay variables: 2024d09bf9bSSatish Balay TEST_ARCH: arch-ci-opensolaris-cmplx-pkgs-dbg 2034f89072dSBarry Smith 20428d80369SJed Brown# 20528d80369SJed Brown# The following tests are experimental; more tests by users at other sites may be added below this. Experimental test 20628d80369SJed Brown# that fail produce a warning, but do not block execution of a pipeline. 20728d80369SJed Brown# 20828d80369SJed Brown 20928d80369SJed Brown.test-experimental: 21028d80369SJed Brown extends: .test 21128d80369SJed Brown allow_failure: true 21228d80369SJed Brown 2134f89072dSBarry Smithbarry-checksource: 21428d80369SJed Brown extends: .test-experimental 21528d80369SJed Brown stage: test-short 21628d80369SJed Brown variables: 21728d80369SJed Brown# the blank GIT_CLEAN_FLAGS below indicates that the CI should NOT clean the git directory before running the next test 21828d80369SJed Brown GIT_CLEAN_FLAGS: -qn 2194f89072dSBarry Smith tags: 2204f89072dSBarry Smith - barry 2214f89072dSBarry Smith script: 22228d80369SJed Brown - PETSC_ARCH=arch-barry PETSC_DIR=`pwd` ./configure --with-mpi=0 --with-fc=0 22328d80369SJed Brown - PETSC_ARCH=arch-barry PETSC_DIR=`pwd` make checkbadSource 22428d80369SJed Brown 22528d80369SJed Brownbarry-arch-hash: 22628d80369SJed Brown extends: .test-experimental 22728d80369SJed Brown stage: test-short 22828d80369SJed Brown variables: 22928d80369SJed Brown# the blank GIT_CLEAN_FLAGS below indicates that the CI should NOT clean the git directory before running the next test 23028d80369SJed Brown GIT_CLEAN_FLAGS: -qn 23128d80369SJed Brown tags: 23228d80369SJed Brown - barry 23328d80369SJed Brown script: 23428d80369SJed Brown - PETSC_DIR=`pwd` ./configure --with-mpi=0 --with-fc=0 --arch-hash 23528d80369SJed Brown - PETSC_DIR=`pwd` make checkbadSource 236