Skip to content

Bump actions/checkout from 3 to 4 #361

Bump actions/checkout from 3 to 4

Bump actions/checkout from 3 to 4 #361

Workflow file for this run

name: CI
on:
push:
pull_request:
release:
types: [published]
jobs:
ci:
name: ${{ matrix.name }}
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
name:
[ubuntu-gcc-11, ubuntu-clang-13, macos-apple-clang, windows-msvc-19]
include:
- name: ubuntu-gcc-11
os: ubuntu-22.04
compiler: g++
compiler-version: 11
compiler-name-conan: gcc
- name: ubuntu-clang-13
os: ubuntu-22.04
compiler: clang++
compiler-version: "13"
compiler-name-conan: clang
- name: macos-apple-clang
os: macos-latest
compiler-cppstd: "gnu17"
- name: windows-msvc-19
os: windows-2019
configure-preset: "ci-windows-msvc2019"
build-preset: "ci-msvc2019-debug"
steps:
- uses: actions/checkout@v4
- name: dependencies (Linux)
if: runner.os == 'Linux'
run: |
sudo apt install shunit2 ninja-build python3-setuptools python3-pip -y
sudo pip3 install conan
- name: dependencies (macos)
if: runner.os == 'macOS'
run: |
brew install shunit2 ninja conan coreutils
- name: dependencies (windows)
if: runner.os == 'Windows'
run: |
pip install conan
curl -L0 https://github.com/kward/shunit2/archive/v2.1.7.zip --output shunit2.zip
unzip -j -n shunit2.zip
- name: set-compiler-env
run: |
if [ "${{ matrix.compiler }}" != "" ]; then
echo "CXX=${{ matrix.compiler }}-${{ matrix.compiler-version }}" >> $GITHUB_ENV
fi
shell: bash
- name: conan-profile
run: |
conan --version
conan profile detect --force
if [ "${{ matrix.compiler-name-conan }}" != "" ]; then
sed -i.bak -e 's/compiler=.*/compiler=${{ matrix.compiler-name-conan }}/g' ~/.conan2/profiles/default
fi
if [ "${{ matrix.compiler-version }}" != "" ]; then
sed -i.bak -e 's/compiler.version=[0-9]\+/compiler.version=${{ matrix.compiler-version }}/g' ~/.conan2/profiles/default
fi
if [ "${{ matrix.compiler-cppstd }}" != "" ]; then
sed -i.bak -e 's/compiler.cppstd=gnu[0-9]\+/compiler.cppstd=${{ matrix.compiler-cppstd }}/g' ~/.conan2/profiles/default
fi
cat ~/.conan2/profiles/default
shell: bash
- name: cmake-configure-debug
run: |
conan install . --output-folder=build --build=missing --settings=build_type=Debug
if [ "${{ matrix.configure-preset }}" != "" ]; then
cmake --preset=${{ matrix.configure-preset }}
else
cmake --preset=ci-ninja-debug
fi
shell: bash
- name: build-debug
run: |
if [ "${{ matrix.build-preset }}" != "" ]; then
cmake --build ./build --preset=${{ matrix.build-preset }}
else
cmake --build ./build
fi
shell: bash
- name: ctest
run: ctest -C Debug
working-directory: ./build
- name: installation-tests
if: runner.os == 'Linux' || runner.os == 'macOs'
run: |
./test/installation-tests.sh
shell: bash
- name: program-termination-tests
if: runner.os == 'Linux' || runner.os == 'macOs'
run: |
./test/compilation-tests.sh
version-consistency-check:
if: github.event.action == 'published' || github.ref != 'refs/heads/main'
needs: ci
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: dependencies (Linux)
if: runner.os == 'Linux'
run: |
sudo apt install shunit2 python3-setuptools python3-pip -y
sudo pip3 install conan
- name: version-consistency
run: |
git fetch --tags --force
./test/version-consistency.sh