Skip to content

V29 Gate 10: Local And Staging Promotion Readiness #234

V29 Gate 10: Local And Staging Promotion Readiness

V29 Gate 10: Local And Staging Promotion Readiness #234

name: Bitcode Canon Quality
on:
push:
pull_request:
workflow_dispatch:
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
bitcode-spec-basics:
name: Bitcode Spec Basics
runs-on: ubuntu-latest
container:
image: node:22-bookworm
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Validate active canon and V29 posture
run: |
POINTER="$(cat BITCODE_SPEC.txt)"
if [ "$POINTER" = "V28" ]; then
node scripts/check-bitcode-canonical-inputs.mjs --current-target V28
node scripts/check-bitcode-canon-posture-drift.mjs --active-canon V28 --draft-target V29
node scripts/check-bitcode-spec-family.mjs --version V28 --mode promoted --current-target V28
node scripts/check-bitcode-spec-family.mjs --version V29 --mode draft --current-target V28
elif [ "$POINTER" = "V29" ]; then
node scripts/check-bitcode-canonical-inputs.mjs --current-target V29
node scripts/check-bitcode-canon-posture-drift.mjs --active-canon V29 --draft-target V30
node scripts/check-bitcode-spec-family.mjs --version V29 --mode promoted --current-target V29
else
echo "Unexpected BITCODE_SPEC.txt pointer: $POINTER" >&2
exit 1
fi
bitcode-demonstration-mvp:
name: Bitcode Demonstration MVP
runs-on: ubuntu-latest
needs: bitcode-spec-basics
container:
image: node:22-bookworm
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Run V28 protocol-demonstration MVP QA
run: npm --prefix protocol-demonstration run test:v28-mvp-qa
bitcode-spec-commit-conformance:
name: Bitcode Spec Commit Conformance
runs-on: ubuntu-latest
needs: bitcode-spec-basics
container:
image: node:22-bookworm
env:
SPEC_TITLE: ${{ github.event_name == 'pull_request' && github.event.pull_request.title || github.event.head_commit.message }}
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Run V29 strict conformance for spec-title changes
run: |
case "$SPEC_TITLE" in
spec:\ V29*|spec:\ v29*)
POINTER="$(cat BITCODE_SPEC.txt)"
if [ "$POINTER" = "V29" ]; then
node scripts/check-bitcode-spec-family.mjs --version V29 --mode promoted --current-target V29
else
node scripts/check-bitcode-spec-family.mjs --version V29 --mode draft --current-target V28
fi
;;
*)
echo "Skipping strict spec-title conformance; title is not a V29 spec change."
;;
esac