name: Skyweave Test & Lint Ritual on: push: branches: [ master ] pull_request: branches: [ master ] jobs: test-and-lint: name: Test and Lint Code runs-on: ubuntu-latest # This key was missing from your linting job # We use a single, public image that has Node.js for the checkout action container: image: node:lts-alpine steps: - name: 1. Checkout Repository Code uses: actions/checkout@v4 - name: 2. Install Lua Dependencies run: | echo "Sanctifying container with Lua tools..." # Installs luacheck for linting, and Lua + Luarocks for Busted apk add --no-cache luacheck lua5.1-dev build-base git luarocks luarocks-5.1 install busted - name: 3. Run Luacheck Scrutiny run: | echo "Scanning Lua scripture..." # With your perfected .luacheckrc, this single command handles all files luacheck --std lua51 . - name: 4. Perform Unit Inquisition (Busted) run: | echo "Initiating unit tests..." # Busted will automatically find and run files in the 'spec/' directory busted --lua=lua5.1 --verbose spec/