1 2# test-short take only a few minutes and generally run on the cloud; they do not run the full test suite or external packages. 3# 4# 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. 5# 6# The test-long tests are only started if all of the test-short tests run without error and if the merge request has 7# been labeled with "fulltest". 8# 9 10stages: 11 - test-short 12 - test-long 13variables: 14 GIT_STRATEGY: fetch 15 GIT_CLEAN_FLAGS: -ffdxq 16 PETSC_OPTIONS: -check_pointer_intensity 0 -error_output_stdout -nox -nox_warning -malloc_dump 17 18# 19# The most basic template that most tests will expand upon. It ensures that the tests are run only for merge requests. 20# 21 22.test: 23 only: 24 refs: 25 - merge_requests 26 - web 27 28# 29# This provides the basic order of operations and options template for cloud based test-short tests. 30# Not all test-short need to follow this template but most will. 31# 32 33.test-short: 34 extends: .test 35 stage: test-short 36 image: jedbrown/mpich-ccache 37 before_script: 38 - echo nproc=$(nproc) 39 - cat /proc/cpuinfo 40 - export CCACHE_COMPILERCHECK=content 41 - export CCACHE_DIR=$(pwd)/.ccache 42 - ccache --show-stats 43 - ccache --zero-stats 44 script: 45 - ${PYTHON} ./configure --with-debugging=0 COPTFLAGS='-O -march=native' CXXOPTFLAGS='-O -march=native' FOPTFLAGS='-O -march=native' ${CONFIG_OPTS} 46 - make CFLAGS=-Werror 47 - make allgtests-tap search="${TEST_SEARCH}" TIMEOUT=300 48 after_script: 49 - CCACHE_DIR=$(pwd)/.ccache ccache --show-stats 50 artifacts: 51 reports: 52 junit: arch-*/tests/testresults.xml 53 cache: 54 paths: 55 - .ccache/ 56 key: "${CI_JOB_NAME}" 57 58# 59# The following tests run on the cloud as part of test-short. 60# 61 62mpich-cxx-py3: 63 extends: .test-short 64 variables: 65 PYTHON: python3 66 CONFIG_OPTS: --with-mpi-dir=/usr/local --with-clanguage=cxx --with-fc=0 67 TEST_SEARCH: snes_tutorials-ex48% 68 69uni-complex-float-int64: 70 extends: .test-short 71 variables: 72 PYTHON: python3 73 CONFIG_OPTS: < 74 --with-mpi=0 75 --with-scalar-type=complex --with-precision=single --with-64-bit-indices 76 TEST_SEARCH: ts_tutorials-ex11_adv_2d_quad_% 77 78c89-mlib-static-py2: 79 extends: .test-short 80 image: jedbrown/mpich-ccache:python2 81 variables: 82 PYTHON: python2 83 CONFIG_OPTS: < 84 --with-mpi-dir=/usr/local 85 --with-single-library=0 --with-shared-libraries=0 'CFLAGS=-std=c89 -pedantic -Wno-long-long -Wno-overlength-strings' 86 TEST_SEARCH: snes_tutorials-ex48% 87 88# 89# This provides the basic order of operations and options template for test-long tests. 90# Not all test-long need to follow this template, but most will. 91# 92.test-long: 93 extends: .test 94 stage: test-long 95 only: 96 variables: 97 - $CI_MERGE_REQUEST_LABELS =~ /fulltest/ 98 script: 99 - ./config/examples/${TEST_ARCH}.py 100 - make 101 - make check 102 - make cleantest allgtests-tap TIMEOUT=300 103 artifacts: 104 reports: 105 junit: ${TEST_ARCH}/tests/testresults.xml 106 107# 108# The following tests run on MCS systems as part of test-long. 109# 110# The tags variable used in the tests below connects the particular test with the runners 111# listed on the left hand side of https://gitlab.com/petsc/petsc/-/settings/ci_cd. 112# For example the test linux-gcc-complex-opt which extends .linux_mcs_test will run on 113# any runner that has the tag (in a blue box beneath it) of mcs-linux. 114# 115 116.mcs_test: 117 extends: .test-long 118 119.linux_mcs_test: 120 extends: .mcs_test 121 tags: 122 - mcs-linux 123 before_script: 124 - hostname 125 - grep PRETTY_NAME /etc/os-release 126 - echo $(nproc) 127 - ccache --zero-stats 128 after_script: 129 - ccache --show-stats 130 131.freebsd_mcs_test: 132 extends: .mcs_test 133 tags: 134 - mcs-freebsd 135 before_script: 136 - hostname 137 - freebsd-version 138 - echo $(sysctl -n hw.ncpu) 139 - ccache --zero-stats 140 after_script: 141 - ccache --show-stats 142 143.osx_mcs_test: 144 extends: .mcs_test 145 tags: 146 - mcs-osx 147 variables: 148# the stages definition defines the first line of PETSC_OPTIONS below. Do they have to be repeated here or can one use 149# $PETSC_OPTIONS or another option so that they do not need to be repeated? 150 PETSC_OPTIONS: < 151 -check_pointer_intensity 0 -error_output_stdout -nox -nox_warning -malloc_dump 152 -saws_port_auto_select -saws_port_auto_select_silent -vecscatter_mpi1 false -options_left false 153 before_script: 154 - hostname 155 - sw_vers -productVersion 156 - echo $(sysctl -n hw.ncpu) 157 - ccache --zero-stats 158 after_script: 159 - ccache --show-stats 160 161.opensolaris_mcs_test: 162 extends: .mcs_test 163 tags: 164 - mcs-opensolaris 165 before_script: 166 - hostname 167 - uname -a 168 - echo $(nproc) 169 170linux-gcc-complex-opt: 171 extends: .linux_mcs_test 172 variables: 173 TEST_ARCH: arch-ci-linux-gcc-complex-opt 174 175linux-gcc-pkgs-opt: 176 extends: .linux_mcs_test 177 variables: 178 TEST_ARCH: arch-ci-linux-gcc-pkgs-opt 179 180linux-gcc-quad-64idx-dbg: 181 extends: .linux_mcs_test 182 variables: 183 TEST_ARCH: arch-ci-linux-gcc-quad-64idx-dbg 184 185freebsd-c-single-opt: 186 extends: .freebsd_mcs_test 187 variables: 188 TEST_ARCH: arch-ci-freebsd-c-single-opt 189 190freebsd-cxx-cmplx-64idx-dbg: 191 extends: .freebsd_mcs_test 192 variables: 193 TEST_ARCH: arch-ci-freebsd-cxx-cmplx-64idx-dbg 194 195osx-cxx-pkgs-opt: 196 extends: .osx_mcs_test 197 variables: 198 TEST_ARCH: arch-ci-osx-cxx-pkgs-opt 199 200opensolaris-cmplx-pkgs-dbg: 201 extends: .opensolaris_mcs_test 202 variables: 203 TEST_ARCH: arch-ci-opensolaris-cmplx-pkgs-dbg 204 205# 206# The following tests are experimental; more tests by users at other sites may be added below this. Experimental test 207# that fail produce a warning, but do not block execution of a pipeline. 208# 209 210.test-experimental: 211 extends: .test 212 allow_failure: true 213 214barry-checksource: 215 extends: .test-experimental 216 stage: test-short 217 variables: 218# the blank GIT_CLEAN_FLAGS below indicates that the CI should NOT clean the git directory before running the next test 219 GIT_CLEAN_FLAGS: -qn 220 tags: 221 - barry 222 script: 223 - PETSC_ARCH=arch-barry PETSC_DIR=`pwd` ./configure --with-mpi=0 --with-fc=0 224 - PETSC_ARCH=arch-barry PETSC_DIR=`pwd` make checkbadSource 225 226barry-arch-hash: 227 extends: .test-experimental 228 stage: test-short 229 variables: 230# the blank GIT_CLEAN_FLAGS below indicates that the CI should NOT clean the git directory before running the next test 231 GIT_CLEAN_FLAGS: -qn 232 tags: 233 - barry 234 script: 235 - PETSC_DIR=`pwd` ./configure --with-mpi=0 --with-fc=0 --arch-hash 236 - PETSC_DIR=`pwd` make checkbadSource 237