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 : |
@@ -191,7 +193,7 @@ jobs:
191193 : # because they rely on non-PyPI versions of petsc4py.
192194 pip install --no-build-isolation --no-deps \
193195 "$PETSC_DIR"/"$PETSC_ARCH"/externalpackages/git.slepc/src/binding/slepc4py
194- pip install --no-deps ngsPETSc netgen-mesher netgen-occt
196+ pip install --no-deps git+https://github.com/NGSolve/ ngsPETSc.git netgen-mesher netgen-occt
195197
196198 : # We have to pass '--no-build-isolation' to use a custom petsc4py
197199 EXTRA_BUILD_ARGS='--no-isolation'
@@ -205,9 +207,13 @@ 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
214+
209215 : # TODO: Remove before merge
210- pip install --verbose --editable git+https://github.com/dolfin-adjoint/pyadjoint.git@JHopeCollins/tlm #egg=pyadjoint-ad
216+ pip install --verbose --editable git+https://github.com/dolfin-adjoint/pyadjoint.git@dham/abstract_reduced_functional #egg=pyadjoint-ad
211217
212218 firedrake-clean
213219 pip list
@@ -237,7 +243,7 @@ jobs:
237243 : # Use pytest-xdist here so we can have a single collated output (not possible
238244 : # for parallel tests)
239245 firedrake-run-split-tests 1 1 -n 8 "$EXTRA_PYTEST_ARGS" firedrake-repo/tests/tsfc
240- timeout-minutes : 60
246+ timeout-minutes : 10
241247
242248 - name : Run PyOP2 tests
243249 if : inputs.run_tests && (success() || steps.install.conclusion == 'success')
@@ -249,7 +255,7 @@ jobs:
249255 firedrake-run-split-tests 2 4 "$EXTRA_PYTEST_ARGS" firedrake-repo/tests/pyop2
250256 firedrake-run-split-tests 3 2 "$EXTRA_PYTEST_ARGS" firedrake-repo/tests/pyop2
251257 firedrake-run-split-tests 4 2 "$EXTRA_PYTEST_ARGS" firedrake-repo/tests/pyop2
252- timeout-minutes : 15
258+ timeout-minutes : 10
253259
254260
255261 - name : Run Firedrake tests (nprocs = 1)
@@ -259,14 +265,14 @@ jobs:
259265 : # Use pytest-xdist here so we can have a single collated output (not possible
260266 : # for parallel tests)
261267 firedrake-run-split-tests 1 1 -n 8 "$EXTRA_PYTEST_ARGS" firedrake-repo/tests/firedrake
262- timeout-minutes : 60
268+ timeout-minutes : 90
263269
264270 - name : Run tests (nprocs = 2)
265271 if : inputs.run_tests && (success() || steps.install.conclusion == 'success')
266272 run : |
267273 . venv/bin/activate
268274 firedrake-run-split-tests 2 4 "$EXTRA_PYTEST_ARGS" firedrake-repo/tests/firedrake
269- timeout-minutes : 30
275+ timeout-minutes : 60
270276
271277 - name : Run tests (nprocs = 3)
272278 if : inputs.run_tests && (success() || steps.install.conclusion == 'success')
@@ -425,6 +431,8 @@ jobs:
425431 echo Error: there are untracked files in the repository
426432 echo The output from 'git status' is:
427433 git status
434+ echo The output from 'git diff' is:
435+ git diff
428436 exit 1
429437 fi
430438
@@ -544,12 +552,12 @@ jobs:
544552 deploy_website :
545553 name : Deploy GitHub pages (optional)
546554 needs : test_linux
547- # Only deploy the website for master here, the release branch is managed
555+ # Only deploy the website for main here, the release branch is managed
548556 # by https://github.com/firedrakeproject/firedrakeproject.github.io
549557 if : |
550558 always() &&
551559 inputs.deploy_website &&
552- inputs.target_branch == 'master ' &&
560+ inputs.target_branch == 'main ' &&
553561 needs.test_linux.outputs.docs_conclusion == 'success'
554562 permissions :
555563 pages : write
@@ -573,15 +581,15 @@ jobs:
573581 runs-on : ubuntu-latest
574582 environment :
575583 name : pypi
576- permissions :
577- id-token : write
578584 steps :
579585 - uses : actions/download-artifact@v4
580586 with :
581587 name : dist
582588 path : dist
583589 - name : Push to PyPI
584590 uses : pypa/gh-action-pypi-publish@release/v1
591+ with :
592+ password : ${{ secrets.PYPI_API_TOKEN }}
585593
586594 upload_testpypi :
587595 name : Upload to TestPyPI (optional)
0 commit comments