Skip to content

docs: Remove Completed Backlog Items #114

docs: Remove Completed Backlog Items

docs: Remove Completed Backlog Items #114

Workflow file for this run

name: CI
# Build verification + tests. This workflow runs in two contexts:
# - on pull requests targeting main, to GATE merges (the aggregating
# `ci-gate` job below is the stable required status check enforced by a
# branch ruleset on main — see scripts/ci-gate-ruleset.sh and README), and
# - on pushes to main, to verify the merge commit (including the
# release-merge path) after it lands.
# This is intentionally separate from release.yml: it does NOT publish anything
# (GitHub Release, Homebrew tap) — those external side effects live in
# release.yml (whose release job runs on a v* tag push, on workflow_dispatch,
# and on a release-labeled merge to main); this workflow only verifies the
# build and runs the test suite.
on:
pull_request:
branches: [main]
push:
branches: [main]
permissions:
contents: read
jobs:
build-and-test:
runs-on: ubuntu-latest
steps:
# SHAs pinned to match release.yml exactly.
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
- uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4
with:
node-version: 20
- name: Install dependencies
run: npm ci
- name: Build bundle
run: npm run build
- name: Run tests
run: npm test
# Single, stable status-check name for the branch ruleset on main to require.
# `if: always()` so the gate reports a definitive pass/fail even when
# build-and-test fails or is cancelled (a skipped required check would
# otherwise block/hang the PR).
ci-gate:
needs: [build-and-test]
if: always()
runs-on: ubuntu-latest
steps:
- name: Verify required jobs passed
run: |
if [ "${{ needs.build-and-test.result }}" != "success" ]; then
echo "build-and-test did not succeed (result: ${{ needs.build-and-test.result }})"
exit 1
fi
echo "All required CI jobs passed."