3939 FIREDRAKE_CI : 1
4040 PYOP2_CI_TESTS : 1
4141 PYOP2_SPMD_STRICT : 1
42- EXTRA_PYTEST_ARGS : --splitting-algorithm least_duration --timeout=600 --timeout-method=thread -o faulthandler_timeout=660 firedrake-repo/tests/firedrake
42+ EXTRA_PYTEST_ARGS : --splitting-algorithm least_duration --timeout=600 --timeout-method=thread -o faulthandler_timeout=660
4343 PYTEST_MPI_MAX_NPROCS : 8
4444 steps :
4545 - name : Fix HOME
7272 xargs -L1 ./configure --with-make-np=8 --download-slepc
7373 make PETSC_DIR=/__w/firedrake/firedrake/petsc PETSC_ARCH=arch-firedrake-${{ matrix.arch }}
7474 make check
75- echo "PETSC_DIR=/__w/firedrake/firedrake/petsc" >> "$GITHUB_ENV"
76- echo "PETSC_ARCH=arch-firedrake-${{ matrix.arch }}" >> "$GITHUB_ENV"
75+ {
76+ echo "PETSC_DIR=/__w/firedrake/firedrake/petsc"
77+ echo "PETSC_ARCH=arch-firedrake-${{ matrix.arch }}"
78+ echo "SLEPC_DIR=/__w/firedrake/firedrake/petsc/arch-firedrake-${{ matrix.arch }}"
79+ } >> "$GITHUB_ENV"
7780
7881 - name : Install Firedrake
7982 id : install
@@ -98,63 +101,85 @@ jobs:
98101 firedrake-check
99102 timeout-minutes : 5
100103
101- - name : Run tests (nprocs = 1)
104+ - name : Run TSFC tests
102105 # Run even if earlier tests failed
103- if : ${{ success() || steps.install.conclusion == 'success' }}
106+ if : success() || steps.install.conclusion == 'success'
104107 run : |
105108 . venv/bin/activate
106109 : # Use pytest-xdist here so we can have a single collated output (not possible
107110 : # for parallel tests)
108- firedrake-run-split-tests 1 1 "-n 8 $EXTRA_PYTEST_ARGS"
111+ firedrake-run-split-tests 1 1 -n 8 "$EXTRA_PYTEST_ARGS" firedrake-repo/tests/tsfc
112+ timeout-minutes : 60
113+
114+ - name : Run PyOP2 tests
115+ if : success() || steps.install.conclusion == 'success'
116+ run : |
117+ . venv/bin/activate
118+ : # Use pytest-xdist here so we can have a single collated output (not possible
119+ : # for parallel tests)
120+ firedrake-run-split-tests 1 1 -n 8 "$EXTRA_PYTEST_ARGS" firedrake-repo/tests/pyop2
121+ firedrake-run-split-tests 2 4 "$EXTRA_PYTEST_ARGS" firedrake-repo/tests/pyop2
122+ firedrake-run-split-tests 3 2 "$EXTRA_PYTEST_ARGS" firedrake-repo/tests/pyop2
123+ firedrake-run-split-tests 4 2 "$EXTRA_PYTEST_ARGS" firedrake-repo/tests/pyop2
124+ timeout-minutes : 15
125+
126+
127+ - name : Run Firedrake tests (nprocs = 1)
128+ if : success() || steps.install.conclusion == 'success'
129+ run : |
130+ . venv/bin/activate
131+ : # Use pytest-xdist here so we can have a single collated output (not possible
132+ : # for parallel tests)
133+ firedrake-run-split-tests 1 1 -n 8 "$EXTRA_PYTEST_ARGS" firedrake-repo/tests/firedrake
109134 timeout-minutes : 60
110135
111136 - name : Run tests (nprocs = 2)
112- if : ${{ success() || steps.install.conclusion == 'success' }}
137+ if : success() || steps.install.conclusion == 'success'
113138 run : |
114139 . venv/bin/activate
115- firedrake-run-split-tests 2 4 "$EXTRA_PYTEST_ARGS"
140+ firedrake-run-split-tests 2 4 "$EXTRA_PYTEST_ARGS" firedrake-repo/tests/firedrake
116141 timeout-minutes : 30
117142
118143 - name : Run tests (nprocs = 3)
119- if : ${{ success() || steps.install.conclusion == 'success' }}
144+ if : success() || steps.install.conclusion == 'success'
120145 run : |
121146 . venv/bin/activate
122- firedrake-run-split-tests 3 2 "$EXTRA_PYTEST_ARGS"
147+ firedrake-run-split-tests 3 2 "$EXTRA_PYTEST_ARGS" firedrake-repo/tests/firedrake
123148 timeout-minutes : 60
124149
125150 - name : Run tests (nprocs = 4)
126- if : ${{ success() || steps.install.conclusion == 'success' }}
151+ if : success() || steps.install.conclusion == 'success'
127152 run : |
128153 . venv/bin/activate
129- firedrake-run-split-tests 4 2 "$EXTRA_PYTEST_ARGS"
154+ firedrake-run-split-tests 4 2 "$EXTRA_PYTEST_ARGS" firedrake-repo/tests/firedrake
130155 timeout-minutes : 15
131156
132157 - name : Run tests (nprocs = 5)
133- if : ${{ success() || steps.install.conclusion == 'success' }}
158+ if : success() || steps.install.conclusion == 'success'
134159 run : |
135160 . venv/bin/activate
136- firedrake-run-split-tests 5 1 "$EXTRA_PYTEST_ARGS"
161+ firedrake-run-split-tests 5 1 "$EXTRA_PYTEST_ARGS" firedrake-repo/tests/firedrake
137162 timeout-minutes : 15
138163
139164 - name : Run tests (nprocs = 6)
140- if : ${{ success() || steps.install.conclusion == 'success' }}
165+ if : success() || steps.install.conclusion == 'success'
141166 run : |
142167 . venv/bin/activate
143- firedrake-run-split-tests 6 1 "$EXTRA_PYTEST_ARGS"
168+ firedrake-run-split-tests 6 1 "$EXTRA_PYTEST_ARGS" firedrake-repo/tests/firedrake
144169 timeout-minutes : 15
145170
146171 - name : Run tests (nprocs = 7)
147- if : ${{ success() || steps.install.conclusion == 'success' }}
172+ if : success() || steps.install.conclusion == 'success'
148173 run : |
149174 . venv/bin/activate
150- firedrake-run-split-tests 7 1 "$EXTRA_PYTEST_ARGS"
175+ firedrake-run-split-tests 7 1 "$EXTRA_PYTEST_ARGS" firedrake-repo/tests/firedrake
151176 timeout-minutes : 15
152177
153178 - name : Run tests (nprocs = 8)
154- if : ${{ success() || steps.install.conclusion == 'success' }}
179+ if : success() || steps.install.conclusion == 'success'
155180 run : |
156181 . venv/bin/activate
157- firedrake-run-split-tests 8 1 "$EXTRA_PYTEST_ARGS"
182+ firedrake-run-split-tests 8 1 "$EXTRA_PYTEST_ARGS" firedrake-repo/tests/firedrake
158183 timeout-minutes : 15
159184
160185 - name : Run Gusto smoke tests
@@ -260,7 +285,7 @@ jobs:
260285 - name : Setup Python
261286 uses : actions/setup-python@v5
262287 with :
263- python-version : ' 3.12'
288+ python-version : " 3.12"
264289 - name : Install deps
265290 run : pip install requests packaging
266291 - name : Zenodo API canary
@@ -269,5 +294,5 @@ jobs:
269294 uses : actions/upload-artifact@v4
270295 if : failure()
271296 with :
272- name : " zenodo-canary"
297+ name : zenodo-canary
273298 path : firedrake-install.log
0 commit comments