Files
skyweave/.gitea/workflows/ci.yaml
T
wes 77b9311fb9
Skyweave Test & Lint Ritual / Test and Lint Code (push) Failing after 22s
Skyweave Test & Lint Ritual / Deploy to Roof Unit (push) Has been skipped
Addying deployment step to pipeline; also added imei and iccid to /network_info
2025-06-16 16:40:12 -04:00

75 lines
2.7 KiB
YAML
Executable File

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
cp lib/json.lua skyweave/
- 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/
deploy-to-device:
name: Deploy to Roof Unit
needs: test-and-lint
runs-on: ubuntu-latest
if: github.event_name == 'push' && github.ref == 'refs/heads/master'
steps:
- name: 1. Checkout Repository Code
uses: actions/checkout@v4
- name: 2. Prepare SSH Environment
run: |
echo "Preparing the sacred keys and crypto-litany for SSH communion..."
mkdir -p ~/.ssh/
echo "${{ secrets.ROOF_UNIT_SSH_KEY }}" > ~/.ssh/id_rsa
chmod 600 ~/.ssh/id_rsa
ssh-keyscan -H "${{ secrets.ROOF_UNIT_HOSTNAME }}" >> ~/.ssh/known_hosts
# Recreate the SSH alias, now including the required legacy crypto options
echo "Host roof-unit" > ~/.ssh/config
echo " HostName ${{ secrets.ROOF_UNIT_HOSTNAME }}" >> ~/.ssh/config
echo " User ${{ secrets.ROOF_UNIT_USER }}" >> ~/.ssh/config
echo " IdentityFile ~/.ssh/id_rsa" >> ~/.ssh/config
echo " KexAlgorithms +diffie-hellman-group1-sha1" >> ~/.ssh/config
echo " HostKeyAlgorithms +ssh-rsa" >> ~/.ssh/config
echo " MACs +hmac-sha1" >> ~/.ssh/config
echo " PubkeyAcceptedAlgorithms +ssh-rsa" >> ~/.ssh/config
- name: 3. Execute Deployment Ritual
run: |
echo "Initiating deployment sequence..."
chmod +x ./skyweave_deploy.sh
./skyweave_deploy.sh