1
- name : Upload coverage on merge
1
+ name : Coverage check on main push
2
2
3
3
on :
4
4
push :
@@ -16,55 +16,57 @@ jobs:
16
16
uses : foundry-rs/foundry-toolchain@v1
17
17
with :
18
18
version : nightly
19
+
19
20
- name : Use Node.js
20
21
uses : actions/setup-node@v3
21
22
with :
22
23
node-version : 18.x
23
24
cache : ' yarn'
25
+
24
26
- name : Install dependencies
25
27
run : yarn --frozen-lockfile --network-concurrency 1
26
- - name : Precompile using 0.8.14 and via-ir=false
27
- run : yarn build
28
+
28
29
- name : Run coverage
29
30
shell : bash
30
31
run : forge coverage --report summary --report lcov
32
+
31
33
- name : Setup LCOV
32
34
uses : hrishikesh-kadam/setup-lcov@v1
35
+
33
36
- 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
35
44
36
45
- name : Retrieve previous coverage
37
46
uses : actions/download-artifact@v2
38
47
with :
39
48
name : coverage
40
- path : lcov.info
49
+ path : coverage.info
50
+ continue-on-error : true
41
51
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
46
58
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
53
60
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 )
56
63
if [ "$new" -lt "$old" ]; then
57
64
echo "Coverage decreased from $old to $new"
58
65
exit 1
59
66
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
67
69
uses : actions/upload-artifact@v2
68
70
with :
69
71
name : coverage
70
- path : lcovNew .info
72
+ path : coverage .info
0 commit comments