Test release branch against DOLFINx nightly build #639
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Test release branch against DOLFINx nightly build | |
# Controls when the action will run. | |
on: | |
pull_request: | |
branches: | |
- main | |
# Allows you to run this workflow manually from the Actions tab | |
workflow_dispatch: | |
workflow_call: | |
schedule: | |
- cron: "0 9 * * *" | |
# A workflow run is made up of one or more jobs that can run sequentially or in parallel | |
jobs: | |
test-nightly: | |
# The type of runner that the job will run on | |
runs-on: ubuntu-latest | |
container: ghcr.io/fenics/dolfinx/lab:nightly | |
env: | |
HDF5_MPI: "ON" | |
PYVISTA_OFF_SCREEN: true | |
DISPLAY: ":99.0" | |
PYVISTA_JUPYTER_BACKEND: html | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Special handling of some installation | |
uses: ./.github/actions/install-dependencies | |
- name: Install requirements | |
run: | | |
python3 -m pip install --break-system-packages -U pip setuptools pkgconfig | |
python3 -m pip install --no-build-isolation --break-system-packages --no-cache-dir --no-binary=h5py . --upgrade | |
- name: Test building the book | |
run: PYVISTA_OFF_SCREEN=false jupyter-book build -W . | |
- name: Test complex notebooks in parallel | |
working-directory: chapter1 | |
run: | | |
export PKG_CONFIG_PATH=/usr/local/dolfinx-complex/lib/pkgconfig:$PKG_CONFIG_PATH | |
export PETSC_ARCH=linux-gnu-complex128-32 | |
export PYTHONPATH=/usr/local/dolfinx-complex/lib/python3.12/dist-packages:$PYTHONPATH | |
export LD_LIBRARY_PATH=/usr/local/dolfinx-complex/lib:$LD_LIBRARY_PATH | |
python3 complex_mode.py | |
mpirun -n 2 python3 complex_mode.py | |
- name: Test chapter 1 | |
working-directory: chapter1 | |
run: | | |
python3 -c "from pyvista import start_xvfb; start_xvfb(0.1)" | |
mpirun -n 2 python3 fundamentals_code.py | |
mpirun -n 2 python3 nitsche.py | |
mpirun -n 2 python3 membrane_code.py | |
- name: Test chapter 2 | |
working-directory: chapter2 | |
run: | | |
mpirun -n 2 python3 diffusion_code.py | |
mpirun -n 2 python3 heat_code.py | |
mpirun -n 2 python3 linearelasticity_code.py | |
mpirun -n 2 python3 hyperelasticity.py | |
mpirun -n 2 python3 nonlinpoisson_code.py | |
mpirun -n 2 python3 ns_code1.py | |
mpirun -n 2 python3 ns_code2.py | |
- name: Test chapter 3 | |
working-directory: chapter3 | |
run: | | |
mpirun -n 2 python3 neumann_dirichlet_code.py | |
mpirun -n 2 python3 multiple_dirichlet.py | |
mpirun -n 2 python3 subdomains.py | |
mpirun -n 2 python3 robin_neumann_dirichlet.py | |
mpirun -n 2 python3 component_bc.py | |
mpirun -n 2 python3 em.py | |
- name: Test chapter 4 | |
working-directory: chapter4 | |
run: | | |
mpirun -n 2 python3 solvers.py | |
mpirun -n 2 python3 convergence.py | |
mpirun -n 2 python3 compiler_parameters.py | |
mpirun -n 2 python3 newton-solver.py | |
- uses: actions/upload-artifact@v4 | |
if: always() | |
with: | |
name: webpage | |
path: ./_build/html | |
retention-days: 2 | |
if-no-files-found: error |