name: Skyweave CI Rituals on: push: branches: [ master ] pull_request: branches: [ master ] jobs: lint-lua-code: name: Luacheck static analysis runs-on: ubuntu-latest container: image: node:lts-alpine steps: - name: 1. Install Dependencies (luacheck) run: | echo "Sanctifying container with luacheck..." apk add --no-cache luacheck - name: 2. Checkout Repository Code # This standard action checks out your repository's code into the container. uses: actions/checkout@v4 - name: 3. Run Luacheck Scrutiny run: | echo "Scanning Lua scripture for syntactical heresy..." luacheck --std lua51 . unit-test-lua: name: Rite of Unit Inquisition (Busted) # This job will only start if the 'lint-lua-code' job is successful. needs: lint-lua-code runs-on: ubuntu-latest # Use a container that has Lua and the 'luarocks' package manager. container: image: luajit/luajit:v2.1-alpine steps: - name: 1. Checkout Repository Code uses: actions/checkout@v4 - name: 2. Install Busted Framework run: | echo "Sanctifying container with the Busted testing framework..." # Luarocks is the package manager for Lua modules. apk add --no-cache git luarocks install busted - name: 3. Perform Unit Inquisition run: | echo "Initiating unit inquisition..." # Busted will automatically find and run files in the 'spec/' directory. busted --lua=lua5.1 --verbose spec/