From 5a6bcef6efc2d5fe062c36a0c73f1ff1844ed91a Mon Sep 17 00:00:00 2001 From: Pierre Kancir Date: Thu, 6 May 2021 15:32:05 +0200 Subject: [PATCH] CI: run and upload Coverage on Coveralls every sunday at midnight --- .github/workflows/test_coverage.yml | 68 +++++++++++++++++++++++++++++ 1 file changed, 68 insertions(+) create mode 100644 .github/workflows/test_coverage.yml diff --git a/.github/workflows/test_coverage.yml b/.github/workflows/test_coverage.yml new file mode 100644 index 0000000000..b2ef4c28b9 --- /dev/null +++ b/.github/workflows/test_coverage.yml @@ -0,0 +1,68 @@ +name: test coverage + +on: + workflow_dispatch: + schedule: + - cron: '0 0 * * 0' # every sunday at midnight +# paths: +# - "*" +# - "!README.md" <-- don't rebuild on doc change + +jobs: + build: + runs-on: ubuntu-20.04 + container: + image: ardupilot/ardupilot-dev-coverage:latest + options: --user 1001 + strategy: + fail-fast: false # don't cancel if a job from the matrix fails + matrix: + toolchain: [ + base, # GCC + ] + config: [ + coverage, + ] + steps: + # git checkout the PR + - uses: actions/checkout@v2 + with: + submodules: 'recursive' + # Put ccache into github cache for faster build + - name: Prepare ccache timestamp + id: ccache_cache_timestamp + run: | + NOW=$(date -u +"%F-%T") + echo "::set-output name=timestamp::${NOW}" + - name: ccache cache files + uses: actions/cache@v2 + with: + path: ~/.ccache + key: ${{github.workflow}}-ccache-${{ matrix.toolchain }}-${{steps.ccache_cache_timestamp.outputs.timestamp}} + restore-keys: ${{github.workflow}}-ccache-${{ matrix.toolchain }}- # restore ccache from either previous build on this branch or on master + - name: setup ccache + run: | + mkdir -p ~/.ccache + echo "base_dir = ${GITHUB_WORKSPACE}" > ~/.ccache/ccache.conf + echo "compression = true" >> ~/.ccache/ccache.conf + echo "compression_level = 6" >> ~/.ccache/ccache.conf + echo "max_size = 400M" >> ~/.ccache/ccache.conf + ccache -s + ccache -z + - name: test ${{matrix.config}} ${{ matrix.toolchain }} + env: + CI_BUILD_TARGET: ${{matrix.config}} + shell: 'script -q -e -c "bash {0}"' + run: | + PATH="/github/home/.local/bin:$PATH" + python -m pip install --user mavproxy + python -m pip uninstall -y pymavlink + git submodule update --init --recursive + (cd modules/mavlink/pymavlink && DISABLE_MAVNATIVE=True MDEF="$PWD/../message_definitions" python -m pip install --user .) + Tools/scripts/run_coverage.py -f + + - name: Coveralls + uses: coverallsapp/github-action@master + with: + github-token: ${{ secrets.GITHUB_TOKEN }} + path-to-lcov: ./reports/lcov-report/lcov.info