Skip to content

Commit 9a51d1f

Browse files
feat: coverage check CI
1 parent fdc7473 commit 9a51d1f

File tree

2 files changed

+27
-64
lines changed

2 files changed

+27
-64
lines changed
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
name: Upload coverage on merge
1+
name: Coverage check on main push
22

33
on:
44
push:
@@ -16,55 +16,57 @@ jobs:
1616
uses: foundry-rs/foundry-toolchain@v1
1717
with:
1818
version: nightly
19+
1920
- name: Use Node.js
2021
uses: actions/setup-node@v3
2122
with:
2223
node-version: 18.x
2324
cache: 'yarn'
25+
2426
- name: Install dependencies
2527
run: yarn --frozen-lockfile --network-concurrency 1
26-
- name: Precompile using 0.8.14 and via-ir=false
27-
run: yarn build
28+
2829
- name: Run coverage
2930
shell: bash
3031
run: forge coverage --report summary --report lcov
32+
3133
- name: Setup LCOV
3234
uses: hrishikesh-kadam/setup-lcov@v1
35+
3336
- name: Filter directories
34-
run: lcov --remove lcov.info 'test/*' 'script/*' --output-file lcovNew.info --rc lcov_branch_coverage=1
37+
run: lcov --remove lcov.info 'test/*' 'script/*' --output-file lcov.info --rc branch_coverage=1 --rc derive_function_end_line=0
38+
39+
- name: Capture coverage output
40+
id: capture-coverage
41+
run: |
42+
COVERAGE_OUTPUT=$(zgosalvez/github-actions-report-lcov@v3 --coverage-files lcov.info)
43+
echo "new_coverage=$COVERAGE_OUTPUT" >> $GITHUB_ENV
3544
3645
- name: Retrieve previous coverage
3746
uses: actions/download-artifact@v2
3847
with:
3948
name: coverage
40-
path: lcov.info
49+
path: coverage.info
50+
continue-on-error: true
4151

42-
- name: Verify previous coverage
43-
uses: zgosalvez/github-actions-report-lcov@v4
44-
with:
45-
coverage-files: ./lcov.info
52+
- name: Check if a previous coverage exists
53+
run: |
54+
if [ ! -f lcov.info ]; then
55+
echo "Artifact not found. Initializing at 0"
56+
echo "0" >> coverage.info
57+
fi
4658
47-
- name: Verify new coverage
48-
uses: zgosalvez/github-actions-report-lcov@v4
49-
with:
50-
coverage-files: ./lcovNew.info
51-
52-
- name: Check if new >= old
59+
- name: Compare previous coverage
5360
run: |
54-
old=$(awk -F" " '/lines/ {print $3}' lcov.info)
55-
new=$(awk -F" " '/lines/ {print $3}' lcovNew.info)
61+
old=$(cat coverage.info)
62+
new=$(echo $COVERAGE_OUTPUT)
5663
if [ "$new" -lt "$old" ]; then
5764
echo "Coverage decreased from $old to $new"
5865
exit 1
5966
fi
60-
61-
- name: Cleanup
62-
run: |
63-
rm lcov.info
64-
mv lcovNew.info lcov.info
65-
66-
- name: Upload new coverage
67+
68+
- name: Upload the new coverage
6769
uses: actions/upload-artifact@v2
6870
with:
6971
name: coverage
70-
path: lcovNew.info
72+
path: coverage.info

.github/workflows/upload_coverage_ci.yml

-39
This file was deleted.

0 commit comments

Comments
 (0)