128d80369SJed Brown# 29c15ed49SBarry Smith# stage-1 take only a few minutes and generally run on the cloud; they do not run the full test suite or external packages. 328d80369SJed Brown# 49c15ed49SBarry Smith# 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 504df5595SBarry Smith# 69c15ed49SBarry Smith# 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 79c15ed49SBarry Smith# (not yet implemented) 804df5595SBarry Smith# 99c15ed49SBarry Smith# The stage-(n) tests are only started if all of the stage-(n-1) tests run without error 109c15ed49SBarry Smith# You can limit the testing by using the variable STAGE with value 1 or 2 119c15ed49SBarry Smith# 129c15ed49SBarry Smith# By default the test branch is merged to master before testing. (not yet implemented) 139c15ed49SBarry Smith# You can limite this by using the variable MERGETOMASTER with value 0 (not yet implemented) 1428d80369SJed Brown# 1528d80369SJed Brown 16340aff75SJed Brownstages: 179c15ed49SBarry Smith - stage-1 189c15ed49SBarry Smith - stage-2 199c15ed49SBarry Smith - stage-3 20340aff75SJed Brownvariables: 21340aff75SJed Brown GIT_STRATEGY: fetch 22c592e2e1SSatish Balay GIT_CLEAN_FLAGS: -ffdxq 23a3e7580aSSatish Balay PETSC_OPTIONS: -check_pointer_intensity 0 -error_output_stdout -nox -nox_warning -malloc_dump 24340aff75SJed Brown 2528d80369SJed Brown# 269c15ed49SBarry Smith# The most basic template that most tests will expand upon. In particular merge requests and branch pushes DO NOT trigger testing 2728d80369SJed Brown# 2828d80369SJed Brown 29e74c1a09SJed Brown.test: 30410f5c6aSJed Brown only: 310962a0d6SJed Brown refs: 329c15ed49SBarry Smith# Set with CI/CD Shedules - New Schedule 339c15ed49SBarry Smith - schedules 349c15ed49SBarry Smith# Set with CI/CD Pipelines - Run Pipeline 3542cde88bSBarry Smith - web 3628d80369SJed Brown 3728d80369SJed Brown# 389c15ed49SBarry Smith# This provides the basic order of operations and options template for cloud based stage 1 tests. 3928d80369SJed Brown# Not all test-short need to follow this template but most will. 4028d80369SJed Brown# 4128d80369SJed Brown 429c15ed49SBarry Smith.stage-1: 4328d80369SJed Brown extends: .test 449c15ed49SBarry Smith stage: stage-1 4528d80369SJed Brown image: jedbrown/mpich-ccache 46340aff75SJed Brown before_script: 47340aff75SJed Brown - echo nproc=$(nproc) 48340aff75SJed Brown - cat /proc/cpuinfo 49525f0e14SJed Brown - export CCACHE_COMPILERCHECK=content 5004bc68e0SJed Brown - export CCACHE_DIR=$(pwd)/.ccache 5104bc68e0SJed Brown - ccache --show-stats 5204bc68e0SJed Brown - ccache --zero-stats 53340aff75SJed Brown script: 541c6b2e5dSSatish Balay - ${PYTHON} ./configure --with-debugging=0 COPTFLAGS='-O -march=native' CXXOPTFLAGS='-O -march=native' FOPTFLAGS='-O -march=native' ${CONFIG_OPTS} 5502e5f532SJed Brown - make CFLAGS=-Werror 5628d80369SJed Brown - make allgtests-tap search="${TEST_SEARCH}" TIMEOUT=300 573d889285SJed Brown after_script: 5804bc68e0SJed Brown - CCACHE_DIR=$(pwd)/.ccache ccache --show-stats 59e22b0966SJed Brown artifacts: 60e22b0966SJed Brown reports: 61e22b0966SJed Brown junit: arch-*/tests/testresults.xml 623d889285SJed Brown cache: 633d889285SJed Brown paths: 6404bc68e0SJed Brown - .ccache/ 653d889285SJed Brown key: "${CI_JOB_NAME}" 66e74c1a09SJed Brown 6728d80369SJed Brown# 6828d80369SJed Brown# The following tests run on the cloud as part of test-short. 6928d80369SJed Brown# 7028d80369SJed Brown 711c6b2e5dSSatish Balaympich-cxx-py3: 729c15ed49SBarry Smith extends: .stage-1 73e74c1a09SJed Brown variables: 741c6b2e5dSSatish Balay PYTHON: python3 751c6b2e5dSSatish Balay CONFIG_OPTS: --with-mpi-dir=/usr/local --with-clanguage=cxx --with-fc=0 76e74c1a09SJed Brown TEST_SEARCH: snes_tutorials-ex48% 77340aff75SJed Brown 78340aff75SJed Brownuni-complex-float-int64: 799c15ed49SBarry Smith extends: .stage-1 80e74c1a09SJed Brown variables: 811c6b2e5dSSatish Balay PYTHON: python3 82e74c1a09SJed Brown CONFIG_OPTS: < 83e74c1a09SJed Brown --with-mpi=0 84340aff75SJed Brown --with-scalar-type=complex --with-precision=single --with-64-bit-indices 85e74c1a09SJed Brown TEST_SEARCH: ts_tutorials-ex11_adv_2d_quad_% 86340aff75SJed Brown 871c6b2e5dSSatish Balayc89-mlib-static-py2: 889c15ed49SBarry Smith extends: .stage-1 893d889285SJed Brown image: jedbrown/mpich-ccache:python2 901c6b2e5dSSatish Balay variables: 91377e4ec7SSatish Balay PYTHON: python2 921c6b2e5dSSatish Balay CONFIG_OPTS: < 931c6b2e5dSSatish Balay --with-mpi-dir=/usr/local 941c6b2e5dSSatish Balay --with-single-library=0 --with-shared-libraries=0 'CFLAGS=-std=c89 -pedantic -Wno-long-long -Wno-overlength-strings' 951c6b2e5dSSatish Balay TEST_SEARCH: snes_tutorials-ex48% 961c6b2e5dSSatish Balay 9728d80369SJed Brown# 989c15ed49SBarry Smith# This provides the basic order of operations and options template for stage-2 tests. 999c15ed49SBarry Smith# Not all stage-2 need to follow this template, but most will. 10028d80369SJed Brown# 1019c15ed49SBarry Smith.stage-2: 10228d80369SJed Brown extends: .test 1039c15ed49SBarry Smith stage: stage-2 104410f5c6aSJed Brown only: 1050962a0d6SJed Brown variables: 106040bb367SBarry Smith - $STAGE != "1" 10744cd3865SJed Brown script: 1081702e285SSatish Balay - ./config/examples/${TEST_ARCH}.py 10944cd3865SJed Brown - make 11044cd3865SJed Brown - make check 1111702e285SSatish Balay - make cleantest allgtests-tap TIMEOUT=300 1128166029eSJed Brown artifacts: 1138166029eSJed Brown reports: 1148166029eSJed Brown junit: ${TEST_ARCH}/tests/testresults.xml 11544cd3865SJed Brown 11628d80369SJed Brown# 1179c15ed49SBarry Smith# The following tests run on MCS systems as part of stage-2. 11828d80369SJed Brown# 11928d80369SJed Brown# The tags variable used in the tests below connects the particular test with the runners 12028d80369SJed Brown# listed on the left hand side of https://gitlab.com/petsc/petsc/-/settings/ci_cd. 12128d80369SJed Brown# For example the test linux-gcc-complex-opt which extends .linux_mcs_test will run on 12228d80369SJed Brown# any runner that has the tag (in a blue box beneath it) of mcs-linux. 12328d80369SJed Brown# 12428d80369SJed Brown 12528d80369SJed Brown.mcs_test: 1269c15ed49SBarry Smith extends: .stage-2 12728d80369SJed Brown 1281702e285SSatish Balay.linux_mcs_test: 1291702e285SSatish Balay extends: .mcs_test 1301702e285SSatish Balay tags: 131*f923398bSSatish Balay - os:linux,name:pj02 1321702e285SSatish Balay before_script: 1331702e285SSatish Balay - hostname 1341702e285SSatish Balay - grep PRETTY_NAME /etc/os-release 1351702e285SSatish Balay - echo $(nproc) 136525f0e14SJed Brown - ccache --zero-stats 137525f0e14SJed Brown after_script: 138525f0e14SJed Brown - ccache --show-stats 1391702e285SSatish Balay 1401702e285SSatish Balay.freebsd_mcs_test: 1411702e285SSatish Balay extends: .mcs_test 1428623489dSJed Brown tags: 143*f923398bSSatish Balay - os:fbsd,name:petsc-fbsd 1448623489dSJed Brown before_script: 1458623489dSJed Brown - hostname 1461702e285SSatish Balay - freebsd-version 1471702e285SSatish Balay - echo $(sysctl -n hw.ncpu) 148525f0e14SJed Brown - ccache --zero-stats 149525f0e14SJed Brown after_script: 150525f0e14SJed Brown - ccache --show-stats 1511702e285SSatish Balay 15220099508SSatish Balay.osx_mcs_test: 15320099508SSatish Balay extends: .mcs_test 15420099508SSatish Balay tags: 155*f923398bSSatish Balay - os:osx,name:jpro 156a3e7580aSSatish Balay variables: 15728d80369SJed Brown# the stages definition defines the first line of PETSC_OPTIONS below. Do they have to be repeated here or can one use 15828d80369SJed Brown# $PETSC_OPTIONS or another option so that they do not need to be repeated? 15928d80369SJed Brown PETSC_OPTIONS: < 16028d80369SJed Brown -check_pointer_intensity 0 -error_output_stdout -nox -nox_warning -malloc_dump 16128d80369SJed Brown -saws_port_auto_select -saws_port_auto_select_silent -vecscatter_mpi1 false -options_left false 16220099508SSatish Balay before_script: 16320099508SSatish Balay - hostname 16420099508SSatish Balay - sw_vers -productVersion 16520099508SSatish Balay - echo $(sysctl -n hw.ncpu) 166525f0e14SJed Brown - ccache --zero-stats 167525f0e14SJed Brown after_script: 168525f0e14SJed Brown - ccache --show-stats 16920099508SSatish Balay 17020099508SSatish Balay.opensolaris_mcs_test: 17120099508SSatish Balay extends: .mcs_test 17220099508SSatish Balay tags: 173*f923398bSSatish Balay - os:opensolaris,name:n-gage 17420099508SSatish Balay before_script: 17520099508SSatish Balay - hostname 17620099508SSatish Balay - uname -a 17720099508SSatish Balay - echo $(nproc) 17820099508SSatish Balay 179*f923398bSSatish Balay##### These are the specific tests that map to the scripts in config/examples 180*f923398bSSatish Balay 1811702e285SSatish Balaylinux-gcc-complex-opt: 1821702e285SSatish Balay extends: .linux_mcs_test 1831702e285SSatish Balay variables: 1844d09bf9bSSatish Balay TEST_ARCH: arch-ci-linux-gcc-complex-opt 1851702e285SSatish Balay 1861702e285SSatish Balaylinux-gcc-pkgs-opt: 1871702e285SSatish Balay extends: .linux_mcs_test 1881702e285SSatish Balay variables: 1894d09bf9bSSatish Balay TEST_ARCH: arch-ci-linux-gcc-pkgs-opt 1901702e285SSatish Balay 1911702e285SSatish Balaylinux-gcc-quad-64idx-dbg: 1921702e285SSatish Balay extends: .linux_mcs_test 1931702e285SSatish Balay variables: 1944d09bf9bSSatish Balay TEST_ARCH: arch-ci-linux-gcc-quad-64idx-dbg 1951702e285SSatish Balay 1961702e285SSatish Balayfreebsd-c-single-opt: 1971702e285SSatish Balay extends: .freebsd_mcs_test 1981702e285SSatish Balay variables: 1994d09bf9bSSatish Balay TEST_ARCH: arch-ci-freebsd-c-single-opt 2001702e285SSatish Balay 2011702e285SSatish Balayfreebsd-cxx-cmplx-64idx-dbg: 2021702e285SSatish Balay extends: .freebsd_mcs_test 2031702e285SSatish Balay variables: 2044d09bf9bSSatish Balay TEST_ARCH: arch-ci-freebsd-cxx-cmplx-64idx-dbg 2058623489dSJed Brown 20620099508SSatish Balayosx-cxx-pkgs-opt: 20720099508SSatish Balay extends: .osx_mcs_test 20820099508SSatish Balay variables: 2094d09bf9bSSatish Balay TEST_ARCH: arch-ci-osx-cxx-pkgs-opt 21020099508SSatish Balay 21120099508SSatish Balayopensolaris-cmplx-pkgs-dbg: 21220099508SSatish Balay extends: .opensolaris_mcs_test 21320099508SSatish Balay variables: 2144d09bf9bSSatish Balay TEST_ARCH: arch-ci-opensolaris-cmplx-pkgs-dbg 2154f89072dSBarry Smith 216*f923398bSSatish Balayosx-barry: 217*f923398bSSatish Balay extends: .mcs_test 218*f923398bSSatish Balay tags: 219*f923398bSSatish Balay - os:osx 220*f923398bSSatish Balay variables: 221*f923398bSSatish Balay# the stages definition defines the first line of PETSC_OPTIONS below. Do they have to be repeated here or can one use 222*f923398bSSatish Balay# $PETSC_OPTIONS or another option so that they do not need to be repeated? 223*f923398bSSatish Balay PETSC_OPTIONS: < 224*f923398bSSatish Balay -check_pointer_intensity 0 -error_output_stdout -nox -nox_warning -malloc_dump 225*f923398bSSatish Balay -vecscatter_mpi1 false -options_left false 226*f923398bSSatish Balay TEST_ARCH: arch-ci-osx-prefix 227*f923398bSSatish Balay before_script: 228*f923398bSSatish Balay - hostname 229*f923398bSSatish Balay - sw_vers -productVersion 230*f923398bSSatish Balay - echo $(sysctl -n hw.ncpu) 231*f923398bSSatish Balay - ccache --zero-stats 232*f923398bSSatish Balay after_script: 233*f923398bSSatish Balay - ccache --show-stats 234*f923398bSSatish Balay 235*f923398bSSatish Balaychecksource: 236*f923398bSSatish Balay extends: .test 237*f923398bSSatish Balay stage: stage-1 238*f923398bSSatish Balay script: 239*f923398bSSatish Balay - ./configure --with-mpi=0 --with-fc=0 --with-cxx=0 240*f923398bSSatish Balay - make checkbadSource 241*f923398bSSatish Balay 242*f923398bSSatish Balay 24328d80369SJed Brown# 24428d80369SJed Brown# The following tests are experimental; more tests by users at other sites may be added below this. Experimental test 24528d80369SJed Brown# that fail produce a warning, but do not block execution of a pipeline. 24628d80369SJed Brown# 24728d80369SJed Brown 24828d80369SJed Brown.test-experimental: 24928d80369SJed Brown extends: .test 25028d80369SJed Brown allow_failure: true 25128d80369SJed Brown 252