Skip to content

Setup Lua module for exporting Rust functions to Lua #1500

Setup Lua module for exporting Rust functions to Lua

Setup Lua module for exporting Rust functions to Lua #1500

Workflow file for this run

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@v4
with:
fetch-depth: 0
- name: Cache test fonts
uses: actions/cache@v4
with:
path: |
.fonts
.sources
key: fonts-${{ hashFiles('Makefile-fonts') }}
- name: Cache lua_modules
uses: actions/cache@v4
with:
path: |
lua_modules
key: luarocks-luajit-${{ hashFiles('Makefile-luarocks', 'sile.rockspec.in') }}
- name: Setup ‘lua’
uses: hishamhm/gh-actions-lua@master
with:
luaVersion: luajit
luaCompileFlags: XCFLAGS=-fPIC
- name: Setup ‘luarocks’
uses: hishamhm/gh-actions-luarocks@master
- 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-mode LDOC=false LUACHECK=false NIX=false DELTA=cat STYLUA=false TYPOS=false \
--disable-font-variations \
--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 }}