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
|
# ATTENTION
#
# This is *not* a typical busted workflow! Do not copy this to other projects!
# Instead of installing busted from somewhere and using it on a code base,
# we're actually building and running the current HEAD version on ourselves:
# basically this is a combination bootstrap test and dogfooding. The upshot is
# that we check both that everything works (and end-to-end test) and that the
# current codebase checks against itself. This ensures we can fix a bug or make
# a breaking change in busted without being blocked by our own CI using a
# different busted version.
#
# See the README.md file for examples suitable for use in other projects.
name: Busted
on: [ push, pull_request ]
jobs:
busted:
strategy:
fail-fast: false
matrix:
luaVersion: [ "5.5", "5.4", "5.3", "5.2", "5.1", "luajit" ] #, "luajit-openresty" ]
penlightVersion: [ "1.15.0" ]
runs-on: ubuntu-22.04
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup ‘lua’
uses: hishamhm/gh-actions-lua@master
with:
luaVersion: ${{ matrix.luaVersion }}
- name: Setup ‘luarocks’
uses: hishamhm/gh-actions-luarocks@master
with:
luaRocksVersion: "3.13.0"
- name: Setup dependencies
run: |
luarocks install penlight ${{ matrix.penlightVersion }}
luarocks install moonscript
luarocks install luacov
luarocks install --deps-only busted-scm-1.rockspec
- name: Build ‘busted’ (bootstrap)
run: |
luarocks make
- name: Run ‘busted’ (dogfood)
# disable project-local path prefixes to force use of system installation
run: busted --coverage --lpath="" --cpath="" --output=gtest -Xoutput --color
- name: Report test coverage
if: ${{ success() && github.repository == 'lunarmodules/busted' }}
continue-on-error: true
run: luacov-coveralls -i src -e .luarocks
env:
COVERALLS_REPO_TOKEN: ${{ github.token }}
|