수정: 교차 플랫폼 릴리스 게이트 복구 #2
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: 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 |