Fix disk usage of the coverage workflow #843
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
name: Test coverage | |
on: | |
push: | |
branches: 'master' | |
paths-ignore: 'docs/**' | |
env: | |
RUST_BACKTRACE: 1 | |
PRUSTI_ASSERT_TIMEOUT: 60000 | |
# Disable incremental builds to reduce disk usage | |
CARGO_INCREMENTAL: 0 | |
# The /mnt disk has 66 GB of free space; more than the working directory | |
COVERAGE_PATH: /mnt/prusti-coverage | |
jobs: | |
test: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Check out the repo | |
uses: actions/checkout@v3 | |
- name: Set up Java | |
uses: actions/setup-java@v3 | |
with: | |
java-version: '15' | |
distribution: 'zulu' | |
- name: Set up the environment | |
run: python x.py setup | |
- name: Enable collection of source-based coverage | |
run: | | |
# The following are necessary for profiling (see https://github.com/mozilla/grcov) | |
echo "RUSTFLAGS=-Cinstrument-coverage" >> $GITHUB_ENV | |
echo "LLVM_PROFILE_FILE=${COVERAGE_PATH}/gcov-%p-%m.profraw" >> $GITHUB_ENV | |
- name: Report disk usage | |
run: df -h | |
- name: Build with cargo | |
run: python x.py build --all | |
- name: Report disk usage | |
run: df -h | |
- name: Report disk usage | |
run: df -h | |
- name: Run quick cargo tests | |
run: python x.py test --all quick | |
- name: Report disk usage | |
run: df -h | |
- name: Rerun quick cargo tests, enabling debug dumps to cover more code | |
run: python x.py test quick | |
env: | |
PRUSTI_DUMP_DEBUG_INFO: true | |
PRUSTI_DUMP_VIPER_PROGRAM: true | |
PRUSTI_IGNORE_REGIONS: true | |
- name: Report disk usage | |
run: df -h | |
- name: Check prusti-contracts | |
run: | | |
cd prusti-contracts/prusti-contracts-test/ | |
cargo build | |
- name: Report disk usage | |
run: df -h | |
- name: Run cargo tests | |
run: python x.py test --all | |
- name: Report disk usage | |
run: df -h | |
- name: Collect coverage | |
run: | | |
curl -sL https://github.com/mozilla/grcov/releases/latest/download/grcov-x86_64-unknown-linux-gnu.tar.bz2 | tar jxf - | |
./grcov "$COVERAGE_PATH" --llvm --binary-path ./target/debug/ -s . -t lcov --branch --ignore-not-existing --ignore "/*" -o lcov.info | |
- name: Upload coverage to Codecov | |
uses: codecov/codecov-action@v1 | |
with: | |
token: ${{ secrets.CODECOV_TOKEN }} | |
file: ./lcov.info |