V47 Canonical Promotion: Commercial Website Testnet Launch Readiness #63
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: V28 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-v28: | |
| name: V28 Promotion Validation | |
| if: >- | |
| ${{ | |
| github.event_name == 'workflow_dispatch' || | |
| ( | |
| github.event.pull_request.base.ref == 'main' && | |
| github.event.pull_request.head.ref == 'version/v28' && | |
| github.event.pull_request.head.repo.full_name == github.repository | |
| ) | |
| }} | |
| runs-on: ubuntu-latest | |
| 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 V28 promotion readiness | |
| run: | | |
| POINTER="$(cat BITCODE_SPEC.txt)" | |
| if [ "$POINTER" = "V27" ]; then | |
| node scripts/check-bitcode-spec-family.mjs --version V28 --mode draft --current-target V27 | |
| node scripts/check-bitcode-canon-posture-drift.mjs --active-canon V27 --draft-target V28 | |
| node scripts/check-bitcode-canonical-inputs.mjs --current-target V27 | |
| node scripts/check-v28-metadevelopment-readiness.mjs --promotion-mode --skip-branch-check | |
| node scripts/check-v28-gate9-depository-evidence.mjs | |
| node scripts/check-v28-gate10-read-need-comprehension.mjs | |
| node scripts/check-v28-gate11-read-fits-finding-preview.mjs | |
| node scripts/check-v28-gate12-settlement-rights-delivery.mjs | |
| node scripts/check-v28-gate13-product-closure-promotion-readiness.mjs | |
| node scripts/promote-bitcode-canon.mjs --version V28 --commit HEAD --dry-run | |
| elif [ "$POINTER" = "V28" ]; then | |
| node scripts/check-bitcode-spec-family.mjs --version V28 --mode promoted --current-target V28 | |
| node scripts/check-bitcode-canonical-inputs.mjs --current-target V28 | |
| node scripts/check-v28-metadevelopment-readiness.mjs --promotion-mode --skip-branch-check | |
| node scripts/check-v28-gate9-depository-evidence.mjs | |
| node scripts/check-v28-gate10-read-need-comprehension.mjs | |
| node scripts/check-v28-gate11-read-fits-finding-preview.mjs | |
| node scripts/check-v28-gate12-settlement-rights-delivery.mjs | |
| node scripts/check-v28-gate13-product-closure-promotion-readiness.mjs | |
| else | |
| echo "Unexpected BITCODE_SPEC.txt pointer: $POINTER" >&2 | |
| exit 1 | |
| fi | |
| pnpm test:qa:v28:pipeline-readback | |
| pnpm --filter @bitcode/btd typecheck | |
| pnpm --filter @bitcode/btd test | |
| npm --prefix protocol-demonstration test | |
| npm --prefix protocol-demonstration run test:v28-mvp-qa | |
| pnpm --filter @bitcode/pipeline-asset-pack typecheck | |
| pnpm --filter @bitcode/pipeline-hosts typecheck | |
| pnpm --filter @bitcode/pipeline-asset-pack exec jest --config jest.config.cjs --passWithNoTests --forceExit | |
| pnpm --filter @bitcode/pipeline-hosts exec jest --config jest.config.cjs --passWithNoTests --forceExit | |
| pnpm --dir uapi exec jest --runTestsByPath \ | |
| tests/api/readReviewRoute.test.ts \ | |
| tests/api/pipelineHarnessRoute.test.ts \ | |
| tests/terminalPipelineHarnessClient.test.ts \ | |
| tests/terminalDepositReadWorkbench.test.ts \ | |
| tests/pipelineExecutionLogHeader.test.tsx \ | |
| --runInBand | |
| git diff --check | |
| - name: Promote V28 canon files | |
| if: >- | |
| ${{ | |
| github.event_name == 'pull_request' && | |
| github.event.pull_request.head.ref == 'version/v28' | |
| }} | |
| env: | |
| HEAD_BRANCH: ${{ github.event.pull_request.head.ref }} | |
| run: | | |
| if [ "$(cat BITCODE_SPEC.txt)" = "V28" ]; then | |
| echo "BITCODE_SPEC.txt already points to V28." | |
| exit 0 | |
| fi | |
| PROOF_SOURCE_COMMIT="$(git rev-parse HEAD)" | |
| npm run promote:canon -- --version V28 --commit "$PROOF_SOURCE_COMMIT" | |
| 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_V28.md \ | |
| BITCODE_SPEC_V28_DELTA.md \ | |
| BITCODE_SPEC_V28_NOTES.md \ | |
| BITCODE_SPEC_V28_PARITY_MATRIX.md \ | |
| BITCODE_SPEC_V28_PROVEN.md \ | |
| protocol-demonstration/src/canon-posture.js \ | |
| protocol-demonstration/README.md \ | |
| .bitcode | |
| git commit -m "Promote Bitcode canon to V28" | |
| git push origin "HEAD:$HEAD_BRANCH" |