V47 Canonical Promotion: Commercial Website Testnet Launch Readiness #21
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: V43 Canon Promotion | |
| on: | |
| pull_request: | |
| branches: | |
| - main | |
| types: | |
| - opened | |
| - synchronize | |
| - reopened | |
| - ready_for_review | |
| workflow_dispatch: | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }} | |
| cancel-in-progress: true | |
| permissions: | |
| contents: write | |
| pull-requests: read | |
| jobs: | |
| promote-v43: | |
| name: V43 Promotion Validation | |
| if: >- | |
| ${{ | |
| github.event_name == 'workflow_dispatch' || | |
| ( | |
| github.event.pull_request.base.ref == 'main' && | |
| github.event.pull_request.head.ref == 'version/v43' && | |
| github.event.pull_request.head.repo.full_name == github.repository | |
| ) | |
| }} | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 30 | |
| steps: | |
| - name: Checkout version branch | |
| uses: actions/checkout@v4 | |
| with: | |
| ref: ${{ github.event.pull_request.head.ref || github.ref_name }} | |
| token: ${{ github.token }} | |
| fetch-depth: 0 | |
| - name: Setup pnpm | |
| uses: pnpm/action-setup@v4 | |
| - name: Setup Node | |
| uses: actions/setup-node@v4 | |
| with: | |
| node-version: "24" | |
| cache: pnpm | |
| - name: Install dependencies | |
| run: pnpm install --frozen-lockfile | |
| - name: Validate V43 promotion readiness | |
| run: | | |
| set -euo pipefail | |
| run_checked() { | |
| echo "::group::$*" | |
| "$@" | |
| echo "::endgroup::" | |
| } | |
| run_bounded() { | |
| local limit="$1" | |
| shift | |
| echo "::group::$*" | |
| timeout --kill-after=30s "$limit" "$@" | |
| echo "::endgroup::" | |
| } | |
| POINTER="$(cat BITCODE_SPEC.txt)" | |
| if [ "$POINTER" = "V42" ]; then | |
| run_checked node scripts/check-bitcode-spec-family.mjs --version V43 --mode draft --current-target V42 | |
| run_checked node scripts/check-bitcode-canon-posture-drift.mjs --active-canon V42 --draft-target V43 | |
| run_checked node scripts/check-bitcode-canonical-inputs.mjs --current-target V42 | |
| run_checked node scripts/check-v43-gate1-packs-read-deposit-roadmap.mjs --skip-branch-check | |
| run_checked node scripts/check-v43-gate2-route-vocabulary-inventory.mjs --skip-branch-check | |
| run_checked node scripts/check-v43-gate3-packs-activity-master-detail.mjs --skip-branch-check --skip-uapi-tests | |
| run_checked node scripts/check-v43-gate4-read-route-five-step-ux.mjs --skip-branch-check --skip-uapi-tests | |
| run_checked node scripts/check-v43-gate5-deposit-route-options.mjs --skip-branch-check --skip-uapi-tests --skip-package-tests | |
| run_checked node scripts/check-v43-gate6-deposit-policy-compensation.mjs --skip-branch-check --skip-uapi-tests --skip-package-tests | |
| run_checked node scripts/check-v43-gate7-deposit-option-admission.mjs --skip-branch-check --skip-uapi-tests --skip-package-tests | |
| run_checked node scripts/check-v43-gate8-route-ux-product-excellence.mjs --skip-branch-check --skip-uapi-tests | |
| run_checked node scripts/check-v43-gate9-cross-route-rehearsal-telemetry-repair.mjs --skip-branch-check --skip-uapi-tests --skip-package-tests | |
| run_checked node scripts/check-v43-gate10-promotion-readiness.mjs --promotion-mode --skip-branch-check --skip-package-tests | |
| run_checked node scripts/promote-bitcode-canon.mjs --version V43 --commit HEAD --dry-run | |
| elif [ "$POINTER" = "V43" ]; then | |
| run_checked node scripts/check-bitcode-spec-family.mjs --version V43 --mode promoted --current-target V43 | |
| run_checked node scripts/check-bitcode-canonical-inputs.mjs --current-target V43 | |
| run_checked node scripts/check-bitcode-canon-posture-drift.mjs --active-canon V43 --draft-target V44 | |
| run_checked node scripts/check-v43-gate10-promotion-readiness.mjs --promotion-mode --skip-branch-check --skip-package-tests | |
| else | |
| echo "Unexpected BITCODE_SPEC.txt pointer: $POINTER" >&2 | |
| exit 1 | |
| fi | |
| run_bounded 5m pnpm --filter @bitcode/protocol typecheck | |
| run_bounded 5m pnpm --filter @bitcode/protocol test | |
| run_bounded 5m pnpm --filter @bitcode/btd typecheck | |
| run_bounded 5m pnpm --filter @bitcode/btd exec jest --config jest.config.cjs --runInBand --forceExit | |
| run_bounded 15m npm --prefix protocol-demonstration test | |
| run_bounded 5m npm --prefix protocol-demonstration run test:v28-mvp-qa | |
| run_bounded 5m pnpm --filter @bitcode/pipeline-asset-pack typecheck | |
| run_bounded 5m pnpm --filter @bitcode/pipeline-hosts typecheck | |
| run_bounded 5m pnpm --filter @bitcode/pipeline-asset-pack exec jest --config jest.config.cjs --passWithNoTests --forceExit | |
| run_bounded 5m pnpm --filter @bitcode/pipeline-hosts exec jest --config jest.config.cjs --passWithNoTests --forceExit | |
| run_checked git diff --check | |
| - name: Promote V43 canon files | |
| if: >- | |
| ${{ | |
| github.event_name == 'pull_request' && | |
| github.event.pull_request.head.ref == 'version/v43' | |
| }} | |
| env: | |
| HEAD_BRANCH: ${{ github.event.pull_request.head.ref }} | |
| run: | | |
| if [ "$(cat BITCODE_SPEC.txt)" = "V43" ]; then | |
| echo "BITCODE_SPEC.txt already points to V43." | |
| exit 0 | |
| fi | |
| PROOF_SOURCE_COMMIT="$(git rev-parse HEAD)" | |
| node scripts/prepare-bitcode-spec-family-promotion.mjs --version V43 --commit "$PROOF_SOURCE_COMMIT" | |
| node scripts/prepare-bitcode-runtime-canon-promotion.mjs --version V43 --next-draft V44 | |
| printf "V43\n" > BITCODE_SPEC.txt | |
| node scripts/generate-bitcode-proven.mjs --version V43 --commit "$PROOF_SOURCE_COMMIT" --worktree-state clean --output BITCODE_SPEC_V43_PROVEN.md --allow-dirty | |
| node scripts/generate-bitcode-proven.mjs --version V43 --commit "$PROOF_SOURCE_COMMIT" --worktree-state clean --output BITCODE_SPEC_V43_PROVEN.md --check --allow-dirty | |
| node scripts/check-bitcode-canonical-inputs.mjs --current-target V43 | |
| node scripts/check-bitcode-spec-family.mjs --version V43 --mode promoted --current-target V43 | |
| node scripts/check-bitcode-canon-posture-drift.mjs --active-canon V43 --draft-target V44 | |
| git diff --check | |
| git config user.name "github-actions[bot]" | |
| git config user.email "41898282+github-actions[bot]@users.noreply.github.com" | |
| git add \ | |
| BITCODE_SPEC.txt \ | |
| BITCODE_SPEC_V43.md \ | |
| BITCODE_SPEC_V43_DELTA.md \ | |
| BITCODE_SPEC_V43_NOTES.md \ | |
| BITCODE_SPEC_V43_PARITY_MATRIX.md \ | |
| BITCODE_SPEC_V43_PROVEN.md \ | |
| protocol-demonstration/src/canon-posture.js \ | |
| protocol-demonstration/README.md \ | |
| packages/protocol/src/canon-posture.js \ | |
| packages/protocol/data/state.json \ | |
| packages/protocol/README.md \ | |
| .bitcode | |
| git commit -m "Promote Bitcode canon to V43" | |
| git push origin "HEAD:$HEAD_BRANCH" |