48 lines
1.4 KiB
YAML
48 lines
1.4 KiB
YAML
name: CI
|
|
|
|
# K-114 (nexus-hub): Mini-CI für proxmox-scripts — Syntax, build.func-Source-
|
|
# Pflicht und Validierungs-Unit-Tests. Läuft auf dem instanzweiten Runner
|
|
# (Label homelab, ohne Deploy-Rechte — PR #6 / ct/runner.sh).
|
|
|
|
on:
|
|
push:
|
|
branches: [main]
|
|
pull_request:
|
|
|
|
jobs:
|
|
lint:
|
|
name: Shell-Lint (bash -n, source-check, Validierungs-Tests)
|
|
runs-on: homelab
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v4
|
|
|
|
- name: bash -n über alle Scripts
|
|
run: |
|
|
status=0
|
|
for f in ct/*.sh install/*.sh lib/*.func tests/*.sh; do
|
|
if bash -n "$f"; then
|
|
echo "ok $f"
|
|
else
|
|
echo "SYNTAX $f" >&2
|
|
status=1
|
|
fi
|
|
done
|
|
exit "$status"
|
|
|
|
- name: build.func-Source-Check (jedes ct/*.sh)
|
|
run: bash tests/check_ct_source.sh
|
|
|
|
- name: Validierungs-Unit-Tests (lib/build.func)
|
|
run: bash tests/test_validation.sh
|
|
|
|
- name: shellcheck (falls auf dem Runner installiert)
|
|
run: |
|
|
if command -v shellcheck >/dev/null 2>&1; then
|
|
# -S warning: Style-Hinweise nicht blockierend; externe Sources
|
|
# (curl|source) kann shellcheck nicht folgen.
|
|
shellcheck -S warning -e SC1090,SC1091 ct/*.sh install/*.sh tests/*.sh
|
|
else
|
|
echo "shellcheck nicht installiert — übersprungen (dokumentiert, K-114)"
|
|
fi
|