--- stages: - test variables: GIT_SUBMODULE_STRATEGY: recursive fennel_ver: 0.10.0 fenneldoc_ver: v0.1.6 .install_fennel: &fennel |- cd "$HOME" git clone -q --depth=1 --branch="$fennel_ver" https://git.sr.ht/~technomancy/fennel cd fennel || exit -1 make install cd "$CI_PROJECT_DIR" .install_fenneldoc: &fenneldoc |- cd "$HOME" git clone -q --depth=1 --branch="$fenneldoc_ver" \ --recursive https://gitlab.com/andreyorst/fenneldoc.git cd fenneldoc || exit -1 make install cd "$CI_PROJECT_DIR" Lua: image: alpine:edge stage: test before_script: - > apk add -q lua5.2 lua5.3 lua5.3-dev lua5.4 luarocks5.3 git make gcc musl-dev - luarocks-5.3 install luafilesystem - export LUA=lua5.3 - luarocks-5.3 install fennel "$fennel_ver" - luarocks-5.3 install luacov - luarocks-5.3 install luacov-cobertura - luarocks-5.3 install luacov-console - *fenneldoc script: - LUAEXECUTABLES="lua5.2 lua5.3 lua5.4" make testall >/dev/null - make luacov-console # doesn't use --correlate, more accurate - make luacov # produces Cobertura XML artifacts: reports: cobertura: coverage/cobertura-coverage.xml coverage: '/Total.*\s(\d+.\d+%)$/' # Luajit actually is an impostor in Alpine, as the package actually # uses Moonjit implementation, which is different from what I'm # working with, so Fedora 33 image is used, which as of this moment # has latest Luajit available Luajit: image: fedora:33 stage: test before_script: - dnf install -y -q lua luajit git make - *fennel script: - LUA=luajit make test