Prepare for release of numpy 2.0 by using ruff ruleset #4611
Workflow file for this run
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: oneAPI compilers | |
on: | |
pull_request: | |
branches: | |
- main | |
push: | |
branches: | |
- "main" | |
tags: | |
- "v*" | |
merge_group: | |
branches: | |
- main | |
workflow_dispatch: | |
jobs: | |
build: | |
runs-on: ubuntu-latest | |
container: fenicsproject/test-env:current-oneapi | |
env: | |
PETSC_ARCH: ${{ matrix.petsc_arch }} | |
strategy: | |
matrix: | |
petsc_arch: [linux-gnu-real32-32, linux-gnu-real64-32, linux-gnu-complex128-32] | |
name: oneAPI build and test (${{ matrix.petsc_arch }}) | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Install Python dependencies | |
run: | | |
. /opt/intel/oneapi/setvars.sh | |
python3 -m pip install mpi4py nanobind scikit-build-core[pyproject] --upgrade | |
- name: Install Basix | |
run: | | |
. /opt/intel/oneapi/setvars.sh | |
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 C interface | |
run: | | |
. /opt/intel/oneapi/setvars.sh | |
cmake -B ufcx-build-dir -S ffcx/cmake/ | |
cmake --build ufcx-build-dir | |
cmake --install ufcx-build-dir | |
- name: Configure DOLFINx C++ | |
run: | | |
. /opt/intel/oneapi/setvars.sh | |
cmake -G Ninja -DCMAKE_BUILD_TYPE=Developer -DDOLFINX_ENABLE_SCOTCH=on -DDOLFINX_ENABLE_KAHIP=on -DDOLFINX_UFCX_PYTHON=off -B build -S cpp/ | |
- name: Build and install DOLFINx C++ library | |
run: | | |
. /opt/intel/oneapi/setvars.sh | |
cmake --build build | |
cmake --install build | |
- name: Install UFL and FFCx modules | |
run: | | |
. /opt/intel/oneapi/setvars.sh | |
pip install git+https://github.com/FEniCS/ufl.git | |
pip install ffcx/ | |
- name: Build and run DOLFINx C++ unit tests (serial and MPI) | |
run: | | |
. /opt/intel/oneapi/setvars.sh | |
cmake -G Ninja -DCMAKE_BUILD_TYPE=Developer -B build/test/ -S cpp/test/ | |
cmake --build build/test | |
cd build/test | |
ctest --output-on-failure -R unittests | |
mpiexec -n 2 ctest --output-on-failure -R unittests | |
- name: Build and run DOLFINx C++ regression tests (serial and MPI (np=2)) | |
run: | | |
. /opt/intel/oneapi/setvars.sh | |
cmake -G Ninja -DCMAKE_BUILD_TYPE=Developer -B build/demo/ -S cpp/demo/ | |
cmake --build build/demo | |
cd build/demo | |
ctest -R demo -R serial | |
ctest -R demo -R mpi_2 | |
- name: Build DOLFINx Python interface | |
run: | | |
. /opt/intel/oneapi/setvars.sh | |
pip -v install --check-build-dependencies --no-build-isolation --config-settings=cmake.build-type="Developer" python/ | |
- name: Install Python test dependencies | |
run: | | |
. /opt/intel/oneapi/setvars.sh | |
pip install matplotlib pytest pytest-xdist | |
- name: Run DOLFINx demos (Python, serial) | |
run: | | |
. /opt/intel/oneapi/setvars.sh | |
pytest -v -n=2 -m serial --durations=10 python/demo/test.py | |
- name: Run DOLFINx demos (Python, MPI (np=2)) | |
run: | | |
. /opt/intel/oneapi/setvars.sh | |
pytest -m mpi --num-proc=2 python/demo/test.py | |
- name: Run DOLFINx Python unit tests (serial) | |
run: | | |
. /opt/intel/oneapi/setvars.sh | |
pytest -n=auto --durations=50 python/test/unit | |
- name: Run DOLFINx Python unit tests (MPI, np=2) | |
run: | | |
. /opt/intel/oneapi/setvars.sh | |
mpiexec -n 2 pytest python/test/unit |