Skip to content

Merge pull request #40 from hypro/antallaszlo011-patch-1 #205

Merge pull request #40 from hypro/antallaszlo011-patch-1

Merge pull request #40 from hypro/antallaszlo011-patch-1 #205

Workflow file for this run

name: CMake
on:
push:
branches:
- '**'
env:
# Customize the CMake build type here (Release, Debug, RelWithDebInfo, etc.)
BUILD_TYPE: Release
jobs:
build:
# The CMake configure and build commands are platform agnostic and should work equally
# well on Windows or Mac. You can convert this to a matrix build if you need
# cross-platform coverage.
# See: https://docs.github.com/en/free-pro-team@latest/actions/learn-github-actions/managing-complex-workflows#using-a-build-matrix
runs-on: ubuntu-22.04
steps:
- uses: actions/checkout@v2
- name: Create Dependencies Environment
shell: bash
working-directory: ${{runner.workspace}}
run: cmake -E make_directory ${{runner.workspace}}/dependencies
- name: Add apt-repositories
shell: bash
working-directory: ${{runner.workspace}}
run: sudo add-apt-repository -y ppa:ubuntu-toolchain-r/test
- name: Download Dependencies
shell: bash
working-directory: ${{runner.workspace}}/dependencies
run: git clone --branch 22.12 https://github.com/ths-rwth/carl carl && cd carl && sudo apt install libeigen3-dev uuid-dev libboost-system-dev libboost-program-options-dev libboost-test-dev libboost-timer-dev libboost-chrono-dev libboost-serialization-dev libbliss-dev gcovr
- name: Cache Dependencies
id: cache-dependencies
uses: actions/cache@v2
with:
path: ${{runner.workspace}}/dependencies
key: ${{ runner.os }}-deps-${{ hashFiles('**/*.h', '**/*.cpp', '**/*.tpp') }}
- name: Create Build Environment for Dependencies
shell: bash
working-directory: ${{runner.workspace}}/dependencies
run: cmake -E make_directory ${{runner.workspace}}/dependencies/carl/build
- name: Configure Dependencies
shell: bash
working-directory: ${{runner.workspace}}/dependencies/carl/build
run: cmake -DCMAKE_BUILD_TYPE=$BUILD_TYPE ..
- name: Build Dependencies
shell: bash
working-directory: ${{runner.workspace}}/dependencies/carl/build
run: cmake --build . --config $BUILD_TYPE -j 3 --target carl-arith carl-common carl-formula
- name: Create Build Environment
# Some projects don't allow in-source building, so create a separate build directory
# We'll use this as our working directory for all subsequent commands
run: cmake -E make_directory ${{runner.workspace}}/build
- name: Configure CMake
# Use a bash shell so we can use the same syntax for environment variable
# access regardless of the host operating system
shell: bash
working-directory: ${{runner.workspace}}/build
# Note the current convention is to use the -S and -B options here to specify source
# and build directories, but this is only available with CMake 3.13 and higher.
# The CMake binaries on the Github Actions machines are (as of this writing) 3.12
run: cmake $GITHUB_WORKSPACE -DCMAKE_BUILD_TYPE=$BUILD_TYPE -DHYPRO_CICD=ON -DHYPRO_COVERAGE=ON
- name: Build
working-directory: ${{runner.workspace}}/build
shell: bash
# Execute the build. You can specify a specific target with "--target <NAME>"
run: cmake --build . --config $BUILD_TYPE
- name: Test
working-directory: ${{runner.workspace}}/build
shell: bash
# Execute tests defined by the CMake configuration.
# See https://cmake.org/cmake/help/latest/manual/ctest.1.html for more detail
run: make test
- name: Produce coverage reports
working-directory: ${{runner.workspace}}/build
run: make hypro_coverage
- name: Upload coverage
working-directory: ${{runner.workspace}}/build
run: curl -Os https://uploader.codecov.io/latest/linux/codecov && chmod +x codecov && ./codecov