-
Notifications
You must be signed in to change notification settings - Fork 44
101 lines (88 loc) · 3 KB
/
coverage.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
name: Coverage Report
on:
push:
branches:
- 'main'
- '!gh-pages'
pull_request:
branches:
- 'main'
- '!gh-pages'
jobs:
build:
name: Coverage
runs-on: ubuntu-latest
if: "!contains(github.event.head_commit.message, '[skip ci]')"
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Init submodules
run: git submodule update --init --recursive
- name: Build Gwion
run: make USE_COVERAGE=1
env:
USE_COVERAGE: 1
- name: Test Gwion
run: make test
env:
USE_COVERAGE: 1
- uses: actions/setup-python@v1
with:
python-version: '3.x'
- name: Install gcovr
run: |
pip install git+https://github.com/gcovr/gcovr.git
# pip install gcovr
- name: Clone report repo
run: |
git clone https://github.com/Gwion/gwion-coverage-report
cd gwion-coverage-report
git worktree add html origin/gh-pages
- name: Generate Report
run: |
printf '# Gwion coverage\n```\n' > gwion-coverage-report/README.md
gcovr -s --filter '.*\.c$' src >> gwion-coverage-report/README.md
printf '```\n' >> gwion-coverage-report/README.md
COV_TXT=$(gcovr -s --html-details index.html --html-title "Gwion coverage report" --filter '.*\.c$' src | grep lines | cut -d" " -f2)
COV_NUM=${COV_TXT: : -1}
echo $COV_NUM > gwion-coverage-report/coverage_num.txt
#sed -i 's/<html>/<script type="text\/javascript" src="..\/focus.js"><\/script><html>/' index.src_*.html
if [ "${{ github.event_name }}" == "push" ]
then
ref="${{ github.ref }}"
else
ref="${{ github.event.head.ref }}"
fi
branch=$(basename ref)
cd gwion-coverage-report/
bash old.sh $branch
bash summary.sh
cd ..
gcovr --filter '.*\.c$' src > gwion-coverage-report/html/$branch/lines.txt
gcovr --filter '.*\.c$' --branches src > gwion-coverage-report/html/$branch/branches.txt
mv *.html gwion-coverage-report/html/$branch
cd gwion-coverage-report/
bash diff.sh $branch
cat diff.md
- name: Make badge
if: github.event_name == 'push' && github.event.ref == 'refs/heads/master'
run: |
cd gwion-coverage-report
bash badge.sh
- name: Push Report
if: github.event_name == 'push'
run: |
branch=$(basename ${{ github.event.ref }})
cd gwion-coverage-report
cp diff.md html/$branch
git config --local user.email "action@github.com"
git config --local user.name "GitHub Action"
git remote set-url origin https://${{ secrets.COVERAGE_TOKEN }}@github.com/Gwion/gwion-coverage-report.git
git add README.md coverage_num.txt badge.svg
git commit -m "Update coverage" || true
git push || true
cp focus.js html
cd html
git add .
git commit -m "Update html report"
git push origin HEAD:gh-pages