Skip to content

Merge pull request #2681 from eseiler/misc/3.0.3 #5

Merge pull request #2681 from eseiler/misc/3.0.3

Merge pull request #2681 from eseiler/misc/3.0.3 #5

Workflow file for this run

name: SeqAn3 CI on Linux
on:
push:
branches:
# Push events to branches matching refs/heads/master
- 'master'
# Push events to branches matching refs/heads/release*
- 'release*'
pull_request:
env:
CMAKE_VERSION: 3.8.2
SEQAN3_NO_VERSION_CHECK: 1
TZ: Europe/Berlin
defaults:
run:
shell: bash -ex {0}
jobs:
build:
name: ${{ matrix.name }}
runs-on: ubuntu-20.04
timeout-minutes: 120
strategy:
fail-fast: true
matrix:
include:
- name: "Coverage gcc7"
cxx: "g++-7"
cc: "gcc-7"
build: coverage
build_type: Debug
build_threads: 2
test_threads: 2
- name: "Unit gcc11"
cxx: "g++-11"
cc: "gcc-11"
build: unit
build_type: Release
build_threads: 2
test_threads: 2
- name: "Unit gcc10"
cxx: "g++-10"
cc: "gcc-10"
build: unit
build_type: Release
build_threads: 2
test_threads: 2
- name: "Unit gcc9 (c++2a)"
cxx: "g++-9"
cc: "gcc-9"
build: unit
build_type: Release
build_threads: 2
test_threads: 2
cxx_flags: "-std=c++2a"
- name: "Unit gcc8"
cxx: "g++-8"
cc: "gcc-8"
build: unit
build_type: Release
build_threads: 2
test_threads: 2
- name: "Unit gcc7"
cxx: "g++-7"
cc: "gcc-7"
build: unit
build_type: Release
build_threads: 2
test_threads: 2
steps:
- name: Checkout SeqAn3
uses: actions/checkout@v2
with:
path: seqan3
fetch-depth: 2
submodules: true
- name: Checkout SeqAn2
uses: actions/checkout@v2
with:
repository: seqan/seqan
ref: develop
path: seqan3/submodules/seqan
- name: Configure APT
continue-on-error: true
run: bash ./seqan3/.github/workflows/scripts/configure_apt.sh
- name: Install CMake
run: bash ./seqan3/.github/workflows/scripts/install_cmake.sh
- name: Install ccache
run: sudo apt-get install --yes ccache
- name: Install compiler ${{ matrix.cxx }}
run: sudo apt-get install --yes ${{ matrix.cxx }}
- name: Install lcov
if: matrix.build == 'coverage'
run: |
sudo apt-get install --yes lcov
sudo update-alternatives --install /usr/bin/gcov gcov /usr/bin/gcov-7 100
- name: Load ccache
uses: actions/cache@v2
with:
path: .ccache
key: ${{ runner.os }}-${{ matrix.name }}-ccache-${{ github.ref }}-${{ github.run_number }}
# Restoring: From current branch, otherwise from base branch, otherwise from any branch.
restore-keys: |
${{ runner.os }}-${{ matrix.name }}-ccache-${{ github.ref }}
${{ runner.os }}-${{ matrix.name }}-ccache-${{ github.base_ref }}
${{ runner.os }}-${{ matrix.name }}-ccache-
- name: Tool versions
run: |
env cmake --version
env ${{ matrix.cxx }} --version
- name: Configure tests
env:
CXX: ${{ matrix.cxx }}
CC: ${{ matrix.cc }}
run: |
mkdir seqan3-build
cd seqan3-build
cmake ../seqan3/test/${{ matrix.build }} -DCMAKE_BUILD_TYPE=${{ matrix.build_type }} -DCMAKE_CXX_FLAGS="${{ matrix.cxx_flags }}" -DSEQAN3_VERBOSE_TESTS=OFF -DSEQAN3_BENCHMARK_MIN_TIME=0.01
make gtest_build
- name: Build tests
env:
CCACHE_BASEDIR: ${{ github.workspace }}
CCACHE_DIR: ${{ github.workspace }}/.ccache
CCACHE_COMPRESS: true
CCACHE_COMPRESSLEVEL: 6
CCACHE_MAXSIZE: 1G
run: |
ccache -p || true
cd seqan3-build
make -k -j${{ matrix.build_threads }}
ccache -s || true
- name: Run tests
if: matrix.build != 'coverage'
run: |
cd seqan3-build
ctest . -j${{ matrix.test_threads }} --output-on-failure
- name: Submit coverage build
if: matrix.build == 'coverage'
uses: codecov/codecov-action@v1
with:
files: ${{ github.workspace }}/seqan3-build/seqan3_coverage
root_dir: ${{ github.workspace }}/seqan3