name: Bash syntax on: push: branches: ['**'] pull_request: permissions: contents: read jobs: syntax: runs-on: ubuntu-latest steps: - name: Checkout # v4.2.2 uses Node 20, supported by the current Forgejo runner. uses: https://code.forgejo.org/actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 - name: Check every installer run: | set -e while IFS= read -r -d '' script; do echo "Checking ${script}" bash -n "${script}" done < <(find . -type f -name '*.sh' -print0) - name: Test step 1 selections run: bash tests/test-step1-selection.sh - name: Test step 2 IPv4 firewall mode run: bash tests/test-step2-ipv4-firewall.sh - name: Test security invariants run: bash tests/test-security-invariants.sh - name: Test master language selection run: bash tests/test-master-language.sh - name: Test README languages and monitoring links run: bash tests/test-readme-languages.sh - name: Test step 3 SSH configuration parsing run: bash tests/test-step3-sshd-parsing.sh - name: Test step 5 repeated-run actions run: bash tests/test-step5-actions.sh - name: Test step 8 AI agent catalog run: bash tests/test-step8-agent-catalog.sh - name: Test firewall and panel security run: bash tests/test-firewall-panel-security.sh - name: Test pinned downloads run: bash tests/test-download-security.sh - name: Test notifications and backup security run: bash tests/test-notification-backup-security.sh - name: Test initial backup policy and upload retry run: bash tests/test-backup-initial-retry.sh - name: Test step 3 socket activation runtime directory run: bash tests/test-step3-runtime-directory.sh - name: Test step 2 UFW boot readiness run: bash tests/test-step2-ufw-boot.sh