Skip to content

fix(bcs): check the five unchecked state-changing commands #30

fix(bcs): check the five unchecked state-changing commands

fix(bcs): check the five unchecked state-changing commands #30

Workflow file for this run

name: CI
on:
push:
branches: [main]
pull_request:
# `make test-fast` skips the LLM fixture suite (tests/test-check-fixtures.sh),
# which needs a reachable backend, so CI requires no API keys and incurs no
# cost. The env var also covers the standalone self-compliance step.
env:
BCS_SKIP_FIXTURES: '1'
jobs:
test:
name: shellcheck + tests
runs-on: ubuntu-24.04 # ships Bash 5.2 (BCS targets 5.2+)
steps:
- name: Checkout
uses: actions/checkout@v5
- name: Install shellcheck + jq
run: sudo apt-get update && sudo apt-get install -y shellcheck jq
- name: Tool versions
run: |
bash --version | head -1
shellcheck --version
jq --version
- name: ShellCheck (CLI + shims + tests + fixtures + accuracy)
# Gate on warning+ severity. info/style codes (SC2015 on intentional
# `cmd && {..} ||:`, SC2317 on mocked builtins in tests) are advisory
# and vary by shellcheck version; bcs + shims stay clean at all levels.
run: |
shellcheck -x --severity=warning \
bcs bcscheck bcscodes bcsdisplay bcsgenerate bcstemplate \
tests/*.sh \
tests/fixtures/*.sh \
tests/fixtures/probabilistic/*.sh \
tests/fixtures/clean/*.sh \
tests/accuracy/bcs-accuracy-score.sh \
tests/accuracy/bcs-check-accuracy.sh
- name: Self-compliance invariant
run: ./tests/test-self-compliance.sh
- name: Fast test suite (LLM fixtures skipped)
run: make test-fast