Skip to content

Commit

Permalink
chore: add codecov github action (#573)
Browse files Browse the repository at this point in the history
Co-authored-by: qing <qing@imideMacBook-Air.local>
  • Loading branch information
Dunqing and qing committed Mar 14, 2024
1 parent a4f50dd commit 8ea80ff
Showing 1 changed file with 72 additions and 0 deletions.
72 changes: 72 additions & 0 deletions .github/workflows/codecov.yml
@@ -0,0 +1,72 @@
# Run cargo-llvm-cov and upload to codecov.io

name: Code Coverage

on:
workflow_dispatch:
push:
# branches:
# - main
paths:
- '**.rs'
- '.github/workflows/codecov.yml'

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: ${{ github.ref_name != 'main' }}

jobs:
coverage:
name: Code Coverage
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4

- name: Install Rust
uses: moonrepo/setup-rust@v1
with:
bins: just, taplo-cli
cache-base: main
components: clippy,rustfmt,llvm-tools-preview

- name: Install cargo-llvm-cov
uses: taiki-e/install-action@v2
with:
tool: cargo-llvm-cov

- name: Run
run: cargo llvm-cov --lcov --output-path lcov.info

- name: Upload Artifact
uses: actions/upload-artifact@v4
with:
name: codecov
path: lcov.info

# codecov often fails, use another workflow for retry
upload-codecov:
name: Upload coverage file
runs-on: ubuntu-latest
needs: coverage
# Check if the event is not triggered by a fork by checking whether CODECOV_TOKEN is set
env:
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
steps:
- name: Checkout
if: env.CODECOV_TOKEN
uses: actions/checkout@v4

- name: Download coverage file
if: env.CODECOV_TOKEN
uses: actions/download-artifact@v4
with:
name: codecov

- name: Upload to codecov.io
if: env.CODECOV_TOKEN
uses: codecov/codecov-action@v4
with:
token: ${{ secrets.CODECOV_TOKEN }}
fail_ci_if_error: true
files: lcov.info

0 comments on commit 8ea80ff

Please sign in to comment.