Skip to content

Build workflow

Build workflow #3

Workflow file for this run

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:
name: Build NeoFOAM
strategy:
fail-fast: false
matrix:
compiler:
- CC: clang
CXX: clang++
- CC: gcc
CXX: g++
runs-on: ubuntu-latest
steps:
- name: Checkout to repository
uses: actions/checkout@v4
with:
submodules: true # Recursively clone submodules
- name: Add clang repo
run: |
sudo add-apt-repository 'deb http://apt.llvm.org/jammy/ llvm-toolchain-jammy-16 main'
wget -q -O - https://dl.openfoam.com/add-debian-repo.sh | sudo bash
wget https://apt.llvm.org/llvm-snapshot.gpg.key
sudo apt-key add llvm-snapshot.gpg.key
- 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 \
openfoam2406-dev
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}} \
./build.sh
# cmake --preset ninja-cpuonly-all \
# -DNEOFOAM_DEVEL_TOOLS=OFF \
# -DNEOFOAM_ENABLE_MPI_WITH_THREAD_SUPPORT=OFF
# cmake --build --preset ninja-cpuonly-all
- name: Execute unit tests NeoFOAM
run: |
ctest --preset ninja-cpuonly-all