Skip to content

Merge pull request #41 from instructa/codex/disable-dependabot-versio… #191

Merge pull request #41 from instructa/codex/disable-dependabot-versio…

Merge pull request #41 from instructa/codex/disable-dependabot-versio… #191

Workflow file for this run

name: CI
on:
push:
branches: [main]
pull_request:
permissions:
contents: read
concurrency:
group: ci-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
docs:
name: Documentation
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
with:
persist-credentials: false
- name: Set up Node.js
uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0
with:
node-version: 22
- name: Enable pinned pnpm
run: corepack enable
- name: Install workspace dependencies
run: pnpm install --frozen-lockfile
- name: Validate documentation content
run: pnpm docs:content
- name: Typecheck documentation
run: pnpm docs:typecheck
- name: Lint documentation
run: pnpm docs:lint
- name: Build documentation
run: pnpm docs:build
- name: Build Cloudflare static deployment artifact
run: pnpm docs:verify-deployment
- name: Replay documented onboarding against this repository
run: pnpm docs:verify-onboarding
- name: Verify agent routes and prompt contracts
run: |
pnpm docs:verify-agent-journey
pnpm docs:verify-agent-landing
pnpm --filter @planr/docs verify:agent-markdown
- name: Verify browser interactions and accessibility
run: |
pnpm docs:start > /tmp/planr-docs-server.log 2>&1 &
docs_server_pid=$!
trap 'kill "$docs_server_pid"' EXIT
for attempt in $(seq 1 120); do
if curl --fail --silent http://127.0.0.1:3000/llms.txt >/dev/null; then
break
fi
if ! kill -0 "$docs_server_pid" 2>/dev/null; then
sed -n '1,200p' /tmp/planr-docs-server.log
exit 1
fi
sleep 0.25
done
curl --fail --silent http://127.0.0.1:3000/llms.txt >/dev/null
CHROME_PATH="$(command -v google-chrome)" PLANR_DOCS_URL=http://127.0.0.1:3000 pnpm docs:verify-shell
- name: Verify documented graph semantics against this repository
run: pnpm docs:verify-concepts
- name: Verify public reference coverage and drift
run: pnpm docs:verify-reference
- name: Verify contributor and operations contracts
run: pnpm docs:verify-maintenance
- name: Verify documentation release inventory and links
run: pnpm docs:verify-release
quality:
name: Quality Gates
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
with:
persist-credentials: false
- name: Install system tools
run: |
sudo apt-get update
sudo apt-get install -y shellcheck
- name: Install Rust components
run: |
rustup component add rustfmt clippy
- name: Rust format
run: cargo fmt --check
- name: Rust lint
run: cargo clippy --all-targets -- -D warnings
- name: Rust tests
run: cargo test
- name: Shell lint
run: shellcheck scripts/*.sh
- name: Release dry-run
run: |
cargo build --release
npm pack --dry-run
node npm/bin/planr.js --version
- name: Cargo audit
run: |
if ! command -v cargo-audit >/dev/null 2>&1; then
cargo install cargo-audit --locked
fi
cargo audit --deny warnings