generated from seqan/app-template
-
Notifications
You must be signed in to change notification settings - Fork 7
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
0 parents
commit 8474efa
Showing
36 changed files
with
1,743 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,17 @@ | ||
# See https://docs.codecov.io/docs/codecovyml-reference | ||
codecov: | ||
require_ci_to_pass: no # codecov reports its results independent of whether CI passed | ||
notify: | ||
wait_for_ci: no # codecov has not to wait until the CI is finished to post its results | ||
|
||
coverage: | ||
status: | ||
project: # project is the overall code coverage of the whole codebase | ||
default: | ||
if_ci_failed: success # per default, codecov would fail if any CI fails | ||
target: auto # the target coverage, usually the code coverage of the base-branch | ||
threshold: 0.01% # codecov/project fails if there is a drop of more than 0.01% | ||
patch: # patch is the code-coverage of the changed lines in the PR and often reports false positives | ||
default: | ||
if_ci_failed: success # per default, codecov would fail if any CI fails | ||
informational: true # the codecov/patch status is never "fail" |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,17 @@ | ||
name: Cancel workflows | ||
|
||
on: [push, pull_request_target] | ||
|
||
env: | ||
TZ: Europe/Berlin | ||
|
||
jobs: | ||
cancel: | ||
name: "Cancel previous runs" | ||
runs-on: ubuntu-20.04 | ||
steps: | ||
- uses: styfle/[email protected] | ||
with: | ||
workflow_id: ci_linux.yml, ci_macos.yml, ci_misc.yml, ci.yml | ||
all_but_latest: true | ||
access_token: ${{ github.token }} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,171 @@ | ||
name: CI on Linux | ||
|
||
on: | ||
push: | ||
branches: | ||
# Push events to branches matching refs/heads/master | ||
- 'master' | ||
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 gcc11" | ||
cxx: "g++-11" | ||
cc: "gcc-11" | ||
build: coverage | ||
build_type: Coverage | ||
|
||
- name: "gcc11" | ||
cxx: "g++-11" | ||
cc: "gcc-11" | ||
build_type: Release | ||
|
||
- name: "gcc10" | ||
cxx: "g++-10" | ||
cc: "gcc-10" | ||
build_type: Release | ||
|
||
- name: "gcc9 (c++2a)" | ||
cxx: "g++-9" | ||
cc: "gcc-9" | ||
build_type: Release | ||
cxx_flags: "-std=c++2a" | ||
|
||
- name: "gcc8" | ||
cxx: "g++-8" | ||
cc: "gcc-8" | ||
build_type: Release | ||
|
||
- name: "gcc7" | ||
cxx: "g++-7" | ||
cc: "gcc-7" | ||
build_type: Release | ||
|
||
steps: | ||
- name: Set repository name | ||
run: echo "REPOSITORY_NAME=$(echo '${{ github.repository }}' | awk -F '/' '{print $2}')" >> $GITHUB_ENV | ||
|
||
- name: Checkout | ||
uses: actions/checkout@v2 | ||
with: | ||
path: ${{ env.REPOSITORY_NAME }} | ||
fetch-depth: 2 | ||
submodules: recursive | ||
|
||
- name: Add package source | ||
run: bash ./${{ env.REPOSITORY_NAME }}/lib/seqan3/.github/workflows/scripts/configure_apt.sh | ||
|
||
- name: Install CMake | ||
run: bash ./${{ env.REPOSITORY_NAME }}/lib/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' | ||
env: | ||
CC: ${{ matrix.cc }} | ||
run: | | ||
sudo apt-get install --yes lcov | ||
sudo update-alternatives --install /usr/bin/gcov gcov /usr/bin/${CC/gcc/gcov} 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 build | ||
cd build | ||
cmake ../${{ env.REPOSITORY_NAME }} -DCMAKE_BUILD_TYPE=${{ matrix.build_type }} \ | ||
-DCMAKE_CXX_FLAGS="${{ matrix.cxx_flags }}" | ||
- name: Build application | ||
env: | ||
CCACHE_BASEDIR: ${{ github.workspace }} | ||
CCACHE_DIR: ${{ github.workspace }}/.ccache | ||
CCACHE_COMPRESS: true | ||
CCACHE_COMPRESSLEVEL: 6 | ||
CCACHE_MAXSIZE: 500M | ||
run: | | ||
ccache -p || true | ||
cd build | ||
make -k -j2 | ||
ccache -s || true | ||
- name: Build tests | ||
env: | ||
CCACHE_BASEDIR: ${{ github.workspace }} | ||
CCACHE_DIR: ${{ github.workspace }}/.ccache | ||
CCACHE_COMPRESS: true | ||
CCACHE_COMPRESSLEVEL: 6 | ||
CCACHE_MAXSIZE: 500M | ||
run: | | ||
ccache -p || true | ||
cd build | ||
make -k -j2 api_test cli_test | ||
ccache -s || true | ||
- name: Generate coverage baseline | ||
if: matrix.build == 'coverage' | ||
run: | | ||
lcov --directory ./build/ --zerocounters | ||
lcov --directory ./build/ --capture --initial --output-file ./build/coverage_report.baseline | ||
- name: Run tests | ||
run: | | ||
cd build | ||
ctest . -j2 --output-on-failure | ||
- name: Generate coverage report | ||
if: matrix.build == 'coverage' | ||
run: | | ||
lcov --directory ./build/ --capture --output-file ./build/coverage_report.captured | ||
lcov -a ./build/coverage_report.baseline -a ./build/coverage_report.captured --output-file ./build/coverage_report.total | ||
lcov --remove ./build/coverage_report.total \ | ||
'/usr/*' \ | ||
'${{ github.workspace }}/${{ env.REPOSITORY_NAME }}/lib/*' \ | ||
'${{ github.workspace }}/${{ env.REPOSITORY_NAME }}/test/*' \ | ||
'${{ github.workspace }}/build/vendor/*' \ | ||
--output-file ./build/coverage_report | ||
- name: Submit coverage report | ||
if: matrix.build == 'coverage' | ||
uses: codecov/codecov-action@v2 | ||
with: | ||
files: ${{ github.workspace }}/build/coverage_report | ||
root_dir: ${{ github.workspace }}/${{ env.REPOSITORY_NAME }} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,134 @@ | ||
name: CI on macOS | ||
|
||
on: | ||
push: | ||
branches: | ||
# Push events to branches matching refs/heads/master | ||
- 'master' | ||
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: macos-10.15 | ||
timeout-minutes: 120 | ||
strategy: | ||
fail-fast: true | ||
matrix: | ||
include: | ||
- name: "gcc11" | ||
cxx: "g++-11" | ||
cc: "gcc-11" | ||
build_type: Release | ||
|
||
- name: "gcc10" | ||
cxx: "g++-10" | ||
cc: "gcc-10" | ||
build_type: Release | ||
|
||
- name: "gcc9 (c++2a)" | ||
cxx: "g++-9" | ||
cc: "gcc-9" | ||
build_type: Release | ||
cxx_flags: "-std=c++2a" | ||
|
||
- name: "gcc8" | ||
cxx: "g++-8" | ||
cc: "gcc-8" | ||
build_type: Release | ||
|
||
- name: "gcc7" | ||
cxx: "g++-7" | ||
cc: "gcc-7" | ||
build_type: Release | ||
|
||
steps: | ||
- name: Set repository name | ||
run: echo "REPOSITORY_NAME=$(echo '${{ github.repository }}' | awk -F '/' '{print $2}')" >> $GITHUB_ENV | ||
|
||
- name: Checkout | ||
uses: actions/checkout@v2 | ||
with: | ||
path: ${{ env.REPOSITORY_NAME }} | ||
fetch-depth: 2 | ||
submodules: recursive | ||
|
||
- name: Configure Homebrew | ||
uses: Homebrew/actions/setup-homebrew@master | ||
|
||
- name: Install CMake | ||
run: bash ./${{ env.REPOSITORY_NAME }}/lib/seqan3/.github/workflows/scripts/install_cmake.sh | ||
|
||
- name: Install ccache | ||
run: bash ./${{ env.REPOSITORY_NAME }}/lib/seqan3/.github/workflows/scripts/install_via_brew.sh ccache | ||
|
||
- name: Install compiler ${{ matrix.cxx }} | ||
env: | ||
CXX: ${{ matrix.cxx }} | ||
run: bash ./${{ env.REPOSITORY_NAME }}/lib/seqan3/.github/workflows/scripts/install_via_brew.sh gcc ${CXX/g++-/} | ||
|
||
- 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 build | ||
cd build | ||
cmake ../${{ env.REPOSITORY_NAME }} -DCMAKE_BUILD_TYPE=${{ matrix.build_type }} \ | ||
-DCMAKE_CXX_FLAGS="${{ matrix.cxx_flags }}" | ||
- name: Build application | ||
env: | ||
CCACHE_BASEDIR: ${{ github.workspace }} | ||
CCACHE_DIR: ${{ github.workspace }}/.ccache | ||
CCACHE_COMPRESS: true | ||
CCACHE_COMPRESSLEVEL: 6 | ||
CCACHE_MAXSIZE: 500M | ||
run: | | ||
ccache -p || true | ||
cd build | ||
make -k -j3 | ||
ccache -s || true | ||
- name: Build tests | ||
env: | ||
CCACHE_BASEDIR: ${{ github.workspace }} | ||
CCACHE_DIR: ${{ github.workspace }}/.ccache | ||
CCACHE_COMPRESS: true | ||
CCACHE_COMPRESSLEVEL: 6 | ||
CCACHE_MAXSIZE: 500M | ||
run: | | ||
ccache -p || true | ||
cd build | ||
make -k -j3 api_test cli_test | ||
ccache -s || true | ||
- name: Run tests | ||
run: | | ||
cd build | ||
ctest . -j3 --output-on-failure |
Oops, something went wrong.