FEniCSx integration #1
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
# This workflow will install Basix, FFCx, DOLFINx and run the DOLFINx and FFCx unit tests. | |
name: FEniCSx integration | |
on: | |
pull_request: | |
branches: | |
- main | |
# Weekly build on Mondays at 8 am | |
schedule: | |
- cron: "0 8 * * 1" | |
jobs: | |
ffcx-tests: | |
name: Run FFCx tests | |
runs-on: ubuntu-24.04 | |
env: | |
CC: gcc-12 | |
CXX: g++-12 | |
PETSC_ARCH: linux-gnu-real-64 | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Set up Python | |
uses: actions/setup-python@v5 | |
with: | |
python-version: 3.12 | |
- name: Install test dependencies | |
run: | | |
sudo apt-get install -y graphviz libgraphviz-dev ninja-build pkg-config libblas-dev liblapack-dev | |
- name: Install UFL | |
run: | | |
pip3 install --break-system-packages . | |
- name: Install Basix | |
run: | | |
python3 -m pip install git+https://github.com/FEniCS/basix.git | |
- name: Clone FFCx | |
uses: actions/checkout@v4 | |
with: | |
path: ./ffcx | |
repository: FEniCS/ffcx | |
ref: main | |
- name: Install FFCx | |
run: | | |
cd ffcx | |
pip install .[ci] | |
- name: Run FFCx unit tests | |
run: python3 -m pytest -n auto ffcx/test | |
dolfinx-tests: | |
name: Run DOLFINx tests | |
runs-on: ubuntu-latest | |
container: ghcr.io/fenics/test-env:current-openmpi | |
env: | |
PETSC_ARCH: linux-gnu-complex128-32 | |
OMPI_ALLOW_RUN_AS_ROOT: 1 | |
OMPI_ALLOW_RUN_AS_ROOT_CONFIRM: 1 | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Install UFL | |
run: | | |
pip3 install --break-system-packages . | |
- name: Install Basix and FFCx | |
run: | | |
python3 -m pip install --break-system-packages git+https://github.com/FEniCS/basix.git | |
python3 -m pip install --break-system-packages git+https://github.com/FEniCS/ffcx.git | |
- name: Clone DOLFINx | |
uses: actions/checkout@v4 | |
with: | |
path: ./dolfinx | |
repository: FEniCS/dolfinx | |
ref: main | |
- name: Install DOLFINx | |
run: | | |
cmake -G Ninja -DCMAKE_BUILD_TYPE=Developer -B build -S dolfinx/cpp/ | |
cmake --build build | |
cmake --install build | |
python3 -m pip install --break-system-packages -r dolfinx/python/build-requirements.txt | |
python3 -m pip -v install --break-system-packages --no-build-isolation --check-build-dependencies --config-settings=cmake.build-type="Developer" dolfinx/python/[ci] | |
- name: Run DOLFINx unit tests | |
run: python3 -m pytest -n auto dolfinx/python/test/unit |