-
Notifications
You must be signed in to change notification settings - Fork 0
Commit a8511c0
committed
chore: Update
Managed by Terraform.
## Contents
```
---
name: Code Coverage
"on":
push:
branches:
- trunk
pull_request:
branches:
- trunk
jobs:
generate:
name: Generate
permissions:
id-token: write
contents: read
runs-on: ubuntu-latest
env:
RUST_BACKTRACE: 1
CARGO_NET_GIT_FETCH_WITH_CLI: true
steps:
- name: Checkout repository
uses: actions/checkout@v3
- name: Install nightly Rust toolchain
uses: artichoke/setup-rust/code-coverage@v1
- name: Setup grcov
run: |
release_url="$(curl \
--url https://api.github.com/repos/mozilla/grcov/releases \
--header 'authorization: Bearer ${{ secrets.GITHUB_TOKEN }}' \
--header 'content-type: application/json' \
--silent \
--fail \
--retry 5 \
| jq -r '.[0].assets
| map(select(.browser_download_url | test(".*x86_64-unknown-linux-musl.tar.bz2$")))
| .[0].browser_download_url'
)"
curl -sL "$release_url" | sudo tar xvj -C /usr/local/bin/
- name: Show grcov version
run: grcov --version
- name: Generate coverage
env:
LLVM_PROFILE_FILE: "posix-space-%m-%p.profraw"
RUSTFLAGS: "-C instrument-coverage"
# Unstable feature: rust-lang/rust#56925
RUSTDOCFLAGS: "-C instrument-coverage -Z unstable-options --persist-doctests target/debug/doctests"
run: cargo test
- name: Generate HTML report
run: grcov posix-space*.profraw --source-dir . --keep-only 'src/**/*.rs' --binary-path target/debug -t html --filter covered -o target/coverage
- name: Generate detailed JSON report
run: grcov posix-space*.profraw --source-dir . --keep-only 'src/**/*.rs' --binary-path target/debug -t covdir --filter covered -o target/coverage/coverage.json
- name: Configure AWS Credentials
uses: aws-actions/configure-aws-credentials@master
if: github.ref == 'refs/heads/trunk'
with:
aws-region: us-west-2
role-to-assume: arn:aws:iam::447522982029:role/gha-posix-space-s3-backup-20220820215201568100000009
role-session-name: GitHubActionsRustCodeCoverage@posix-space
- name: Show AWS caller identity
if: github.ref == 'refs/heads/trunk'
run: aws sts get-caller-identity
- name: Upload archives to S3
if: github.ref == 'refs/heads/trunk'
run: |
aws s3 sync target/coverage/ s3://artichoke-forge-code-coverage-us-west-2/posix-space/ --delete --sse AES256 --exclude '*' --include '*.svg' --content-type 'image/svg+xml'
aws s3 sync target/coverage/ s3://artichoke-forge-code-coverage-us-west-2/posix-space/ --delete --sse AES256 --exclude '*' --include '*.html' --content-type 'text/html'
aws s3 sync target/coverage/ s3://artichoke-forge-code-coverage-us-west-2/posix-space/ --delete --sse AES256 --exclude '*' --include '*.json' --content-type 'application/json'
aws s3 sync target/coverage/ s3://artichoke-forge-code-coverage-us-west-2/posix-space/ --delete --sse AES256 --include '*' --exclude '*.svg' --exclude '*.html' --exclude '*.json'
- name: Check missed lines
run: |
curl -s https://codecov.artichokeruby.org/posix-space/coverage.json | python -c '\
import sys, json; \
\
trunk_coverage = json.loads(sys.stdin.read()); \
print("On trunk: "); \
print("coveragePercent =", trunk_coverage["coveragePercent"]); \
print("linesCovered =", trunk_coverage["linesCovered"]); \
print("linesMissed =", trunk_coverage["linesMissed"]); \
print("linesTotal =", trunk_coverage["linesTotal"]); \
print(""); \
\
branch_coverage = json.load(open("target/coverage/coverage.json"))
print("On PR branch: "); \
print("coveragePercent =", branch_coverage["coveragePercent"]); \
print("linesCovered =", branch_coverage["linesCovered"]); \
print("linesMissed =", branch_coverage["linesMissed"]); \
print("linesTotal =", branch_coverage["linesTotal"]); \
print(""); \
\
is_ok = branch_coverage["linesMissed"] <= trunk_coverage["linesMissed"]; \
exit(0) if is_ok else exit(1) \
'
```.github/workflows/code-coverage.yaml
in artichoke/posix-space
1 parent b94e641 commit a8511c0Copy full SHA for a8511c0
1 file changed
+0
-102
lines changed.github/workflows/code-coverage.yaml
Copy file name to clipboardExpand all lines: .github/workflows/code-coverage.yaml-102Lines changed: 0 additions & 102 deletions
This file was deleted.
0 commit comments