Skip to content

수정: 교차 플랫폼 릴리스 게이트 복구 #2

수정: 교차 플랫폼 릴리스 게이트 복구

수정: 교차 플랫폼 릴리스 게이트 복구 #2

Workflow file for this run

name: owned-cpython-wasi-engine
on:
workflow_dispatch:
push:
branches: [main]
paths:
- "scripts/engineBuilder/**"
- "tests/browser/ownedEngineCoreProduct.html"
- "tests/browser/ownedEngineDataProduct.html"
- "tests/browser/ownedEngineProfileProduct.js"
- ".github/workflows/owned-engine.yml"
permissions:
contents: read
jobs:
build:
name: build-${{ matrix.profile }}-${{ matrix.slot }}
runs-on: ubuntu-24.04
timeout-minutes: 120
strategy:
fail-fast: false
matrix:
profile: [core, data]
slot: [a, b]
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
- uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7
with:
node-version: 22
cache: npm
- run: npm ci
- name: Build pinned CPython static native profile
run: node scripts/engineBuilder/buildOwnedEngine.mjs --workspace "$RUNNER_TEMP/pyproc-owned-engine" --out "$RUNNER_TEMP/pyproc-owned-engine/dist" --profile "${{ matrix.profile }}"
- name: Verify declared build outputs
run: node scripts/engineBuilder/verifyOwnedEngine.mjs --artifact-dir "$RUNNER_TEMP/pyproc-owned-engine/dist" --require-production-flags --profile "${{ matrix.profile }}"
- uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7
with:
name: pyproc-owned-engine-${{ matrix.profile }}-${{ matrix.slot }}
path: ${{ runner.temp }}/pyproc-owned-engine/dist/
if-no-files-found: error
compression-level: 0
retention-days: 30
verify:
name: verify-${{ matrix.profile }}-byte-identical-and-browser-boot
needs: build
runs-on: ubuntu-24.04
timeout-minutes: 20
strategy:
fail-fast: false
matrix:
profile: [core, data]
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
- uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7
with:
node-version: 22
cache: npm
- run: npm ci
- uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8
with:
name: pyproc-owned-engine-${{ matrix.profile }}-a
path: .cache/owned-engine/${{ matrix.profile }}/a
- uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8
with:
name: pyproc-owned-engine-${{ matrix.profile }}-b
path: .cache/owned-engine/${{ matrix.profile }}/b
- uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8
if: matrix.profile == 'data'
with:
name: pyproc-owned-engine-core-a
path: .cache/owned-engine/core/a
- name: Verify byte-identical declared artifacts
run: node scripts/engineBuilder/verifyOwnedEngine.mjs --artifact-dir ".cache/owned-engine/${{ matrix.profile }}/a" --compare ".cache/owned-engine/${{ matrix.profile }}/b" --require-production-flags --profile "${{ matrix.profile }}" --receipt ".cache/owned-engine/${{ matrix.profile }}/a/reproducibility-manifest.json"
- name: Run core browser boot probe
if: matrix.profile == 'core'
run: node tests/browser/run.mjs tests/browser/ownedEngineCoreProduct.html
- name: Run data static profile browser probe
if: matrix.profile == 'data'
run: node tests/browser/run.mjs tests/browser/ownedEngineDataProduct.html
- uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7
with:
name: pyproc-owned-engine-${{ matrix.profile }}-verified
path: .cache/owned-engine/${{ matrix.profile }}/a/
if-no-files-found: error
compression-level: 0
retention-days: 90