test(release): validate Linux candidate and packages on isolated runner

This commit is contained in:
Forge
2026-09-23 20:34:08 +00:00
parent 61e668e613
commit 36726ada75
4 changed files with 183 additions and 0 deletions
@@ -0,0 +1,72 @@
name: Linux release candidate validation
on:
push:
branches: [candidate/extensions-release-20260923]
paths:
- '.github/workflows/release-linux-candidate.yml'
- 'docs/validation/release-package-proof.cjs'
- 'docs/validation/release-command.py'
- 'docs/validation/release-linux-shards.py'
permissions:
contents: read
jobs:
linux:
if: github.repository == 'colbymchenry/codegraph'
runs-on: ubuntu-24.04
timeout-minutes: 40
env:
CODEGRAPH_TELEMETRY: '0'
npm_config_cache: ${{ github.workspace }}/.qa/npm-cache
steps:
- uses: actions/checkout@v4
with:
persist-credentials: false
- uses: actions/setup-node@v4
with:
node-version: '22.23.2'
- run: npm ci --no-audit --no-fund
- name: Build coherent archive
run: python3 docs/validation/release-command.py release-linux-bundle bash scripts/build-bundle.sh linux-x64 v24.16.0
- name: Assemble npm packages
run: python3 docs/validation/release-command.py release-linux-pack bash scripts/pack-npm.sh
- name: Actual archive and npm CLI, SDK, extension lifecycle and companion
run: python3 docs/validation/release-command.py release-linux-package node docs/validation/release-package-proof.cjs
- name: Full Linux regression with exactly-once coverage
if: success() || failure()
run: python3 docs/validation/release-linux-shards.py "$GITHUB_SHA"
- name: Compiled workers and native paths
if: success() || failure()
run: |
python3 docs/validation/release-command.py release-linux-workers node --test scripts/validation/extensions-runtime.test.cjs
python3 docs/validation/release-command.py release-linux-paths node scripts/validation/native-paths.cjs
- name: Semantic update recovery
if: success() || failure()
env:
SEMANTIC_RECOVERY_OUTPUT: .qa/release-semantic-recovery
run: python3 docs/validation/release-command.py release-linux-semantic node scripts/validation/semantic-update-recovery.cjs
- name: Managed extension recovery
if: success() || failure()
env:
RECOVERY_OUTPUT: .qa/release-managed-recovery
run: python3 docs/validation/release-command.py release-linux-managed node scripts/validation/extensions-recovery.cjs
- name: Managed recovery with custom directory
if: success() || failure()
env:
CODEGRAPH_DIR: .codegraph-release
RECOVERY_OUTPUT: .qa/release-managed-custom
run: python3 docs/validation/release-command.py release-linux-managed-custom node scripts/validation/extensions-recovery.cjs
- name: Retain exact candidate evidence and artifacts
if: always()
uses: actions/upload-artifact@v4
with:
name: release-linux-${{ github.sha }}-${{ github.run_attempt }}
include-hidden-files: true
retention-days: 7
path: |
.qa/recovery/
.qa/release-package/
.qa/release-full/
.qa/release-semantic-recovery/
.qa/release-managed-recovery/
.qa/release-managed-custom/
release/codegraph-linux-x64.tar.gz