Build workflow #1281
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: Build NeoFOAM | |
run-name: 'Build workflow' | |
on: | |
push: | |
branches: | |
- dev | |
- main | |
pull_request: | |
types: synchronize | |
schedule: | |
- cron: "* 0 * * 0" | |
env: | |
CTEST_OUTPUT_ON_FAILURE: 1 | |
OMPI_MCA_rmaps_base_oversubscribe: 1 | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} | |
cancel-in-progress: true | |
jobs: | |
build: | |
if: ${{!contains(github.event.pull_request.labels.*.name, 'Skip-build')}} | |
name: Build NeoFOAM | |
strategy: | |
fail-fast: false | |
matrix: | |
compiler: | |
- CC: clang | |
CXX: clang++ | |
- CC: gcc | |
CXX: g++ | |
preset: ["develop", "profiling", "production"] | |
exclude: | |
- compiler: | |
CC: gcc | |
CXX: g++ | |
preset: "develop" | |
- compiler: | |
CC: clang | |
CXX: clang++ | |
preset: "profiling" | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout to repository | |
uses: actions/checkout@v4 | |
- name: Add clang repo | |
run: | | |
sudo add-apt-repository 'deb http://apt.llvm.org/jammy/ llvm-toolchain-jammy-16 main' | |
wget https://apt.llvm.org/llvm-snapshot.gpg.key | |
sudo apt-key add llvm-snapshot.gpg.key | |
- name: Set up cache | |
uses: actions/cache@v4 | |
if: ${{!contains(github.event.pull_request.labels.*.name, 'Skip-cache')}} | |
with: | |
path: build | |
key: build_PR_${{ github.event.pull_request.number }}_${{matrix.compiler.CC}}_${{matrix.preset}} | |
- name: Install dependencies | |
run: | | |
sudo apt update | |
sudo apt install \ | |
ninja-build \ | |
clang-16 \ | |
gcc-10 \ | |
libomp-16-dev \ | |
python3 \ | |
python3-dev \ | |
build-essential \ | |
libopenmpi-dev \ | |
openmpi-bin | |
sudo apt remove clang-14 | |
sudo rm /usr/bin/clang | |
sudo rm /usr/bin/clang++ | |
sudo ln -s /usr/bin/clang-16 /usr/bin/clang | |
sudo ln -s /usr/bin/clang++-16 /usr/bin/clang++ | |
- name: Get versions | |
run: | | |
clang --version | |
ninja --version | |
cmake --version | |
- name: Build NeoFOAM | |
run: | | |
CC=${{matrix.compiler.CC}} \ | |
CXX=${{matrix.compiler.CXX}} \ | |
cmake --preset ${{matrix.preset}} \ | |
-DNEOFOAM_BUILD_TESTS=ON \ | |
-DNEOFOAM_DEVEL_TOOLS=OFF \ | |
-DNEOFOAM_ENABLE_MPI_WITH_THREAD_SUPPORT=OFF | |
cmake --build --preset ${{matrix.preset}} | |
- name: Execute unit tests NeoFOAM | |
run: | | |
ctest --preset ${{matrix.preset}} |