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