Skip to content

Zero-to-Receipt showcase, planning-state hygiene, and Windows fork fixes (#268) #268

Zero-to-Receipt showcase, planning-state hygiene, and Windows fork fixes (#268)

Zero-to-Receipt showcase, planning-state hygiene, and Windows fork fixes (#268) #268

Workflow file for this run

name: Tests
on:
push:
branches: [main]
pull_request:
branches: [main]
permissions:
contents: read
jobs:
optimizer-proof:
name: optimizer proof and public beacon
runs-on: ubuntu-latest
permissions:
contents: read
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
with:
node-version: 22
- name: Verify optimizer contracts and frozen request
run: node scripts/test-optimizer.js
- name: Install pinned official drand verifier
if: ${{ hashFiles('benchmarks/optimizer-proof/external-selection.json') != '' }}
run: npm install --no-save --package-lock=false --ignore-scripts drand-client@1.4.2
- name: Verify committed beacon BLS signature
if: ${{ hashFiles('benchmarks/optimizer-proof/external-selection.json') != '' }}
run: node scripts/optimizer-drand-verify.js
- name: Verify committed optimizer proof bundle
if: ${{ hashFiles('benchmarks/optimizer-proof/proof-bundle/manifest.json') != '' }}
run: node scripts/optimizer-proof-bundle.js verify benchmarks/optimizer-proof/proof-bundle
citadel-action-consumer:
name: reusable Citadel verification action
runs-on: ubuntu-latest
permissions:
contents: read
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
fetch-depth: 0
persist-credentials: false
- uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
with:
node-version: 22
- name: Consume Citadel verification action
id: citadel
uses: ./
with:
workflow: verify-change
evidence-path: .planning/action-evidence
strict: "true"
working-directory: "."
repository-memory:
name: repository memory on ${{ matrix.os }}
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
with:
node-version: 22
- name: Verify cross-clone identity, SQLite persistence, and safe restore
run: node scripts/test-repository-memory.js
test:
name: node ${{ matrix.node }} on ${{ matrix.os }}
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, macos-latest, windows-latest]
# Keep 18/20 until branch protection migrates to the supported 22/24
# check names. The public and release contract is Node 22+.
node: [22, 24]
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
fetch-depth: 0
- uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
with:
node-version: ${{ matrix.node }}
- name: Run strict verification suite
run: node scripts/test-all.js --strict
golden-path-evidence:
name: golden path on ${{ matrix.slug }}
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
include:
- os: ubuntu-latest
slug: linux
- os: macos-latest
slug: macos
- os: windows-latest
slug: windows
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
with:
node-version: 22
- name: Collect five Claude and five Codex fixture journeys
run: node scripts/golden-path-matrix.js --fixture scripts/fixtures/golden-path/minimal-node.json --runtime both --repeat 5 --output artifacts/golden-path-matrix-${{ matrix.slug }}.json
- name: Upload platform evidence
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
with:
name: golden-path-${{ matrix.slug }}
path: artifacts/golden-path-matrix-${{ matrix.slug }}.json
if-no-files-found: error
retention-days: 30
golden-path-matrix:
name: complete golden-path matrix
needs: golden-path-evidence
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7.0.0
with:
node-version: 22
- name: Download platform evidence
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
with:
pattern: golden-path-*
path: artifacts
merge-multiple: true
- name: Enforce the complete 30-run grid
run: node scripts/golden-path-matrix.js --merge artifacts/golden-path-matrix-windows.json,artifacts/golden-path-matrix-linux.json,artifacts/golden-path-matrix-macos.json --output artifacts/golden-path-matrix-complete.json --require-complete
- name: Upload complete matrix
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
with:
name: golden-path-complete
path: artifacts/golden-path-matrix-complete.json
if-no-files-found: error
retention-days: 30