Skip to content

save

save #66

Workflow file for this run

name: SQUINT CI
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
jobs:
build-and-test-linux:
name: Build and Test (Linux)
runs-on: ubuntu-latest
strategy:
matrix:
compiler: [g++-12, clang++-17]
steps:
- uses: actions/checkout@v4
- name: Install compiler and libraries
run: |
sudo apt-get update
sudo apt-get install -y ninja-build
if [[ "${{ matrix.compiler }}" == clang++* ]]; then
wget https://apt.llvm.org/llvm.sh
chmod +x llvm.sh
CLANG_VERSION=$(echo "${{ matrix.compiler }}" | sed 's/clang++-//')
sudo ./llvm.sh $CLANG_VERSION
sudo apt-get install -y clang-$CLANG_VERSION libc++-$CLANG_VERSION-dev libc++abi-$CLANG_VERSION-dev lld-$CLANG_VERSION gfortran gcc
else
sudo apt-get install -y ${{ matrix.compiler }} gfortran gcc
fi
- name: Configure CMake
env:
CXX: ${{ matrix.compiler }}
run: |
if [[ "${{ matrix.compiler }}" == clang++* ]]; then
CLANG_VERSION=$(echo "${{ matrix.compiler }}" | sed 's/clang++-//')
export CXXFLAGS="-stdlib=libc++"
cmake -B ${{github.workspace}}/build -G Ninja -DSQUINT_BUILD_TESTS=ON -DCMAKE_CXX_FLAGS="$CXXFLAGS"
else
cmake -B ${{github.workspace}}/build -G Ninja -DSQUINT_BUILD_TESTS=ON
fi
- name: Build
run: cmake --build ${{github.workspace}}/build
- name: Test
working-directory: ${{github.workspace}}/build
run: ctest -L SQUINT --output-on-failure
build-and-test-windows:
name: Build and Test (Windows)
runs-on: windows-latest
defaults:
run:
shell: pwsh
steps:
- uses: actions/checkout@v4
- name: Install Ninja
run: choco install ninja
- name: Install LLVM and Clang
uses: KyleMayes/install-llvm-action@v2
with:
version: "17.0"
- name: Setup Miniconda
uses: conda-incubator/setup-miniconda@v3
with:
auto-update-conda: true
python-version: "3.11"
channels: conda-forge
- name: Install MKL
run: |
conda install -c https://software.repos.intel.com/python/conda/ -c conda-forge mkl mkl-devel
- name: Configure CMake
run: |
$env:PATH = "$env:CONDA\Scripts;$env:PATH"
cmake -B ${{github.workspace}}/build -G Ninja -DSQUINT_BUILD_TESTS=ON -DBLAS_BACKEND=MKL -DCMAKE_CXX_COMPILER=clang++
- name: Build
run: |
$env:PATH = "$env:CONDA\Scripts;$env:PATH"
cmake --build ${{github.workspace}}/build
- name: Test
working-directory: ${{github.workspace}}/build
run: |
$env:PATH = "$env:CONDA\Scripts;$env:PATH"
ctest -L SQUINT --output-on-failure
clang-tidy:
name: Clang-Tidy
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install Clang 17 and Clang-Tidy
run: |
wget https://apt.llvm.org/llvm.sh
chmod +x llvm.sh
sudo ./llvm.sh 17
sudo apt-get install -y clang-17 libc++-17-dev libc++abi-17-dev lld-17 clang-tidy-17 ninja-build
- name: Configure CMake
env:
CXX: clang++-17
run: |
export CXXFLAGS="-stdlib=libc++"
cmake -B ${{github.workspace}}/build -G Ninja -DSQUINT_BUILD_TESTS=ON -DCMAKE_CXX_FLAGS="$CXXFLAGS" -DCMAKE_EXPORT_COMPILE_COMMANDS=ON
- name: Build
run: cmake --build ${{github.workspace}}/build
- name: Run Clang-Tidy
run: |
find include -name '*.cpp' -or -name '*.hpp' | \
xargs -P $(nproc) clang-tidy-17 -p build \
--config-file=.clang-tidy
- name: Check Clang-Tidy result
run: |
if [ $? -ne 0 ]; then
echo "Clang-Tidy found issues. Please fix them before merging."
exit 1
fi