Skip to content

fix(ci): resolve two shellcheck/CI failures #9

fix(ci): resolve two shellcheck/CI failures

fix(ci): resolve two shellcheck/CI failures #9

Workflow file for this run

name: CI
on:
push:
branches: [main, develop]
pull_request:
branches: [main, develop]
jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Install deps
run: |
sudo apt-get update -qq
sudo apt-get install -y --no-install-recommends jq shellcheck
- name: Lint shell scripts
run: |
find cli scripts migrations profiles compliance templates/hooks tests -name '*.sh' \
-exec shellcheck -S error -e SC2164,SC2044,SC2034,SC2155 {} +
- name: Validate JSON
run: |
find templates .claude-plugin -name '*.json' \
-exec jq empty {} \;
- name: Run kit test suite
run: bash tests/run.sh
- name: Assert demo GIF committed
run: test -s .github/assets/demo.gif || { echo "demo.gif is missing or empty — run bash scripts/record-demo.sh to regenerate"; exit 1; }
- name: Audit script smoke
run: bash scripts/audit-setup.sh . || true
audit-on-fixture:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Scaffold fixture
run: |
mkdir -p /tmp/fixture && cd /tmp/fixture
git init -q
bash "$GITHUB_WORKSPACE/scripts/init-project.sh" new /tmp/fixture
- name: Audit fixture
run: |
# Fresh fixture has no CLAUDE.md yet (Claude writes it after init).
# Accept rc=0 (pass), 1 (warnings), 2 (CLAUDE.md missing on fresh fixture is expected).
bash "$GITHUB_WORKSPACE/scripts/audit-setup.sh" /tmp/fixture || true
# Verify the script ran without crashing — that's the real CI check.
bash "$GITHUB_WORKSPACE/scripts/audit-setup.sh" /tmp/fixture > /tmp/audit.log 2>&1 || true
grep -q "PASS:" /tmp/audit.log
windows-hook-wiring:
runs-on: windows-latest
steps:
- uses: actions/checkout@v4
- name: Scaffold fixture
shell: bash
run: |
mkdir -p "$RUNNER_TEMP/fixture"
CONJURE_HOME="$GITHUB_WORKSPACE" cli/conjure init "$RUNNER_TEMP/fixture"
- name: Assert node version
shell: bash
run: node --version
- name: Assert node hook wiring in settings.json
shell: bash
run: grep 'node' "$RUNNER_TEMP/fixture/.claude/settings.json"
- name: Assert no bash hook regression
shell: bash
run: |
if grep 'bash .claude/hooks' "$RUNNER_TEMP/fixture/.claude/settings.json"; then
echo "FAIL: bash hook commands found (SAFE-03 regression)" && exit 1
fi