Skip to content

create coverage.yaml #1

create coverage.yaml

create coverage.yaml #1

Workflow file for this run

on: [pull_request]
name: Code Coverage
jobs:
coverage:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v2
- name: Install Rust toolchain
uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: stable
override: true
components: llvm-tools-preview
- name: Install grcov
uses: actions-rs/cargo@v1
with:
command: install
args: grcov
- name: Build project
- uses: actions-rs/cargo@v1
with:
command: build
env:
RUSTFLAGS: "-C instrument-coverage"
- name: Run tests for coverage
uses: actions-rs/cargo@v1
with:
command: test
env:
LLVM_PROFILE_FILE: profile-%p-%m.profraw
- name: Generate coverage html report
run: grcov . -s . --binary-path ./target/debug -t html --branch --ignore-not-existing -o ./coverage/
- name: Upload coverage html report
uses: actions/upload-artifact@v2
with:

Check failure on line 46 in .github/workflows/coverage.yaml

View workflow run for this annotation

GitHub Actions / .github/workflows/coverage.yaml

Invalid workflow file

You have an error in your yaml syntax on line 46
name: coverage-html-report
path: coverage/
- name: Generate coverage lcov report
run: grcov . -s . --binary-path ./target/debug -t md --branch --ignore-not-existing -o coverage.md
- name: Check coverage percentage
run: |
COVERAGE_PERCENTAGE=$(tail -n 1 coverage.md | grep -oP '(\d+(\.\d+)?)(?=%)')
echo "Coverage percentage is $COVERAGE_PERCENTAGE%"
if (( $(echo "$COVERAGE_PERCENTAGE < $COVERAGE_THRESHOLD" | bc -l) )); then
echo "Code coverage is below $COVERAGE_THRESHOLD%. Failing the workflow."
exit 1
fi
env:
COVERAGE_THRESHOLD: 90