52 lines
1.6 KiB
YAML
52 lines
1.6 KiB
YAML
name: ci
|
|
|
|
on:
|
|
push:
|
|
pull_request:
|
|
|
|
jobs:
|
|
build:
|
|
runs-on: ubuntu-latest
|
|
container:
|
|
image: git.rivercry.com/system/bar:latest
|
|
credentials:
|
|
username: docker
|
|
password: ${{ secrets.DOCKER_PASSWORD }}
|
|
steps:
|
|
- name: Checkout
|
|
run: |
|
|
git init
|
|
git remote add origin https://${{ github.actor }}:${{ secrets.GITHUB_TOKEN }}@git.rivercry.com/${{ github.repository }}.git
|
|
git fetch --depth 1 origin ${{ github.sha }}
|
|
git checkout FETCH_HEAD
|
|
- name: Toolchain Info
|
|
run: |
|
|
echo "CC=$CC"
|
|
echo "CXX=$CXX"
|
|
command -v gcc || true
|
|
command -v g++ || true
|
|
command -v gcov || true
|
|
gcc --version || true
|
|
g++ --version || true
|
|
gcov --version || true
|
|
- name: Configure
|
|
run: cmake -S . -B build -DCMAKE_BUILD_TYPE=Debug -DENABLE_COVERAGE=ON -DCMAKE_C_COMPILER=/usr/bin/gcc -DCMAKE_CXX_COMPILER=/usr/bin/g++
|
|
|
|
- name: Build
|
|
run: cmake --build build --config Debug -j "$(nproc)"
|
|
|
|
- name: Test
|
|
run: |
|
|
cd build
|
|
ctest --output-on-failure
|
|
|
|
- name: Coverage
|
|
run: |
|
|
GCOV_TOOL="$(/usr/bin/g++ -print-prog-name=gcov)"
|
|
echo "Using gcov: $GCOV_TOOL"
|
|
"$GCOV_TOOL" --version
|
|
lcov --gcov-tool "$GCOV_TOOL" --capture --directory build --output-file build/coverage.info
|
|
lcov --remove build/coverage.info "/usr/*" "*/build/*" "*/_deps/*" --output-file build/coverage.info
|
|
lcov --summary build/coverage.info
|
|
genhtml build/coverage.info --output-directory build/coverage-html
|