-
-
Notifications
You must be signed in to change notification settings - Fork 98
83 lines (78 loc) · 2.56 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
name: Coverage
on: [ push, pull_request ]
concurrency:
group: ${{ github.workflow}}-${{ github.ref }}
cancel-in-progress: true
# Coverage slows down tests *a lot*.
# Also most of our regression tests use a dummy back end.
# Here we use LuaJIT for speed and use the real backend.
jobs:
coverage:
runs-on: ubuntu-22.04
steps:
- name: Checkout
uses: actions/checkout@v3
with:
fetch-depth: 0
- name: Cache test fonts
uses: actions/cache@v3
with:
path: |
.fonts
.sources
key: fonts-${{ hashFiles('Makefile-fonts') }}
- name: Cache lua_modules
uses: actions/cache@v3
with:
path: |
lua_modules
key: luarocks-luajit-${{ hashFiles('Makefile-luarocks', 'sile.rockspec.in') }}
- name: Fetch tags
run: |
git fetch --prune --tags ||:
- name: Setup ‘lua’
uses: leafo/gh-actions-lua@v10
with:
luaVersion: luajit
luaCompileFlags: XCFLAGS=-fPIC
- name: Setup ‘luarocks’
uses: leafo/gh-actions-luarocks@v4
- name: Prep system Lua for use
run: |
luarocks install busted
luarocks install luacov-coveralls
function deepest () { find $1 -type d | awk 'length>m{m=length;r=$0}END{print r}'; }
cat << EOF >> $GITHUB_ENV
LD_LIBRARY_PATH=$PWD/.lua/lib:$LD_LIBRARY_PATH
LIBRARY_PATH=$PWD/.lua/lib:$LIBRARY_PATH
LD_RUN_PATH=$PWD/.lua/lib:$LD_RUN_PATH
PKG_CONFIG_PATH=$PWD/.lua/lib/pkgconfig:$PKG_CONFIG_PATH
LUA_INCLUDE=-I$(deepest $PWD/.lua/include)
MAKEFLAGS=-j$(nproc) -Otarget
EOF
- name: Install system dependencies
run: |
sudo apt-get update
sudo apt-get install fonts-sil-gentiumplus libarchive-tools libfontconfig1-dev libharfbuzz-dev libicu-dev libpng-dev poppler-utils
- name: Configure
run: |
./bootstrap.sh
./configure \
--enable-developer LUACHECK=false NIX=false \
--disable-font-variations \
--without-system-luarocks \
--with-luajit \
--without-manual
- name: Make
run: |
make
- name: Run all testing with coverage
timeout-minutes: ${{ runner.debug && 200 || 20 }}
run: |
make coverage
- name: Report test coverage
if: success()
continue-on-error: true
run: luacov-coveralls
env:
COVERALLS_REPO_TOKEN: ${{ github.token }}