88 type : string
99 required : true
1010 target_branch :
11- description : The target branch (usually 'master ' or 'release')
11+ description : The target branch (usually 'main ' or 'release')
1212 type : string
1313 required : true
1414 run_tests :
3939 type : string
4040 required : true
4141 target_branch :
42- description : The target branch (usually 'master ' or 'release')
42+ description : The target branch (usually 'main ' or 'release')
4343 type : string
4444 required : true
4545 run_tests :
9393 FIREDRAKE_CI : 1
9494 PYOP2_CI_TESTS : 1
9595 PYOP2_SPMD_STRICT : 1
96- EXTRA_PYTEST_ARGS : --splitting-algorithm least_duration --timeout=600 --timeout-method=thread -o faulthandler_timeout=660
96+ # NOTE: One should occasionally update test_durations.json by running
97+ # 'make test_durations' inside a 'firedrake:latest' Docker image.
98+ EXTRA_PYTEST_ARGS : --splitting-algorithm least_duration --timeout=600 --timeout-method=thread -o faulthandler_timeout=660 --durations-path=./firedrake-repo/tests/test_durations.json
9799 PYTEST_MPI_MAX_NPROCS : 8
98100 steps :
99101 - name : Fix HOME
@@ -144,7 +146,7 @@ jobs:
144146 $(python3 ./firedrake-repo/scripts/firedrake-configure --arch ${{ matrix.arch }} --show-system-packages)
145147 apt-get -y install python3-venv
146148 : # Dependencies needed to run the test suite
147- apt-get -y install parallel
149+ apt-get -y install fonts-dejavu graphviz graphviz-dev parallel poppler-utils
148150
149151 - name : Install PETSc
150152 run : |
@@ -205,7 +207,10 @@ jobs:
205207 pip install --verbose $EXTRA_PIP_FLAGS \
206208 --no-binary h5py \
207209 --extra-index-url https://download.pytorch.org/whl/cpu \
208- "$(echo ./firedrake-repo/dist/firedrake-*.tar.gz)[ci,docs]"
210+ "$(echo ./firedrake-repo/dist/firedrake-*.tar.gz)"
211+
212+ pip install -U pip
213+ pip install --group ./firedrake-repo/pyproject.toml:ci
209214
210215 firedrake-clean
211216 pip list
@@ -235,7 +240,7 @@ jobs:
235240 : # Use pytest-xdist here so we can have a single collated output (not possible
236241 : # for parallel tests)
237242 firedrake-run-split-tests 1 1 -n 8 "$EXTRA_PYTEST_ARGS" firedrake-repo/tests/tsfc
238- timeout-minutes : 60
243+ timeout-minutes : 10
239244
240245 - name : Run PyOP2 tests
241246 if : inputs.run_tests && (success() || steps.install.conclusion == 'success')
@@ -247,7 +252,7 @@ jobs:
247252 firedrake-run-split-tests 2 4 "$EXTRA_PYTEST_ARGS" firedrake-repo/tests/pyop2
248253 firedrake-run-split-tests 3 2 "$EXTRA_PYTEST_ARGS" firedrake-repo/tests/pyop2
249254 firedrake-run-split-tests 4 2 "$EXTRA_PYTEST_ARGS" firedrake-repo/tests/pyop2
250- timeout-minutes : 15
255+ timeout-minutes : 10
251256
252257
253258 - name : Run Firedrake tests (nprocs = 1)
@@ -257,14 +262,14 @@ jobs:
257262 : # Use pytest-xdist here so we can have a single collated output (not possible
258263 : # for parallel tests)
259264 firedrake-run-split-tests 1 1 -n 8 "$EXTRA_PYTEST_ARGS" firedrake-repo/tests/firedrake
260- timeout-minutes : 60
265+ timeout-minutes : 90
261266
262267 - name : Run tests (nprocs = 2)
263268 if : inputs.run_tests && (success() || steps.install.conclusion == 'success')
264269 run : |
265270 . venv/bin/activate
266271 firedrake-run-split-tests 2 4 "$EXTRA_PYTEST_ARGS" firedrake-repo/tests/firedrake
267- timeout-minutes : 30
272+ timeout-minutes : 60
268273
269274 - name : Run tests (nprocs = 3)
270275 if : inputs.run_tests && (success() || steps.install.conclusion == 'success')
@@ -423,6 +428,8 @@ jobs:
423428 echo Error: there are untracked files in the repository
424429 echo The output from 'git status' is:
425430 git status
431+ echo The output from 'git diff' is:
432+ git diff
426433 exit 1
427434 fi
428435
@@ -542,12 +549,12 @@ jobs:
542549 deploy_website :
543550 name : Deploy GitHub pages (optional)
544551 needs : test_linux
545- # Only deploy the website for master here, the release branch is managed
552+ # Only deploy the website for main here, the release branch is managed
546553 # by https://github.com/firedrakeproject/firedrakeproject.github.io
547554 if : |
548555 always() &&
549556 inputs.deploy_website &&
550- inputs.target_branch == 'master ' &&
557+ inputs.target_branch == 'main ' &&
551558 needs.test_linux.outputs.docs_conclusion == 'success'
552559 permissions :
553560 pages : write
@@ -571,15 +578,15 @@ jobs:
571578 runs-on : ubuntu-latest
572579 environment :
573580 name : pypi
574- permissions :
575- id-token : write
576581 steps :
577582 - uses : actions/download-artifact@v4
578583 with :
579584 name : dist
580585 path : dist
581586 - name : Push to PyPI
582587 uses : pypa/gh-action-pypi-publish@release/v1
588+ with :
589+ password : ${{ secrets.PYPI_API_TOKEN }}
583590
584591 upload_testpypi :
585592 name : Upload to TestPyPI (optional)
0 commit comments