mirror of
https://github.com/stablyai/orca.git
synced 2026-10-09 08:02:35 +00:00
perf(ci): compile release JavaScript once for all packaging hosts (#25828)
* perf(ci): share release JavaScript across packaging hosts * fix(ci): verify the projected web entry in release archives * fix(ci): use the Windows system archive tool for release bundles * test(ci): retain stylesheet evidence in release build comparisons * test(ci): verify release parity across native color rounding * test(ci): normalize manifest asset references without changing import order * test(ci): compare portable outputs across Windows text and color formatting * test(ci): preserve module identity across dependent asset hashes * fix(ci): keep SVG build inputs identical across release hosts * fix(ci): stabilize compiler inputs and projected web bindings * fix(ci): retain vendor minification in projected web output * test(ci): normalize platform-specific pnpm manifest source paths * fix(packaging): exclude shared build staging from application files * test: align thinking-state fixtures with the current source shape * test(mobile): reuse message fixtures within the line limit
This commit is contained in:
@@ -0,0 +1,79 @@
|
||||
name: Release JavaScript bundle
|
||||
|
||||
on:
|
||||
workflow_call:
|
||||
inputs:
|
||||
ref:
|
||||
required: true
|
||||
type: string
|
||||
outputs:
|
||||
supported:
|
||||
value: ${{ jobs.bundle.outputs.supported }}
|
||||
source_sha:
|
||||
value: ${{ jobs.bundle.outputs.source_sha }}
|
||||
secrets:
|
||||
ORCA_POSTHOG_WRITE_KEY:
|
||||
required: true
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
env:
|
||||
ORCA_BACKGROUND_LAUNCH: '1'
|
||||
|
||||
jobs:
|
||||
bundle:
|
||||
runs-on: ubuntu-latest
|
||||
timeout-minutes: 20
|
||||
outputs:
|
||||
supported: ${{ steps.source.outputs.supported }}
|
||||
source_sha: ${{ steps.source.outputs.sha }}
|
||||
steps:
|
||||
- uses: actions/checkout@v6
|
||||
with:
|
||||
ref: ${{ inputs.ref }}
|
||||
persist-credentials: false
|
||||
|
||||
# Older release refs retain their original per-platform build commands.
|
||||
- name: Resolve bundle source and support
|
||||
id: source
|
||||
shell: bash
|
||||
run: |
|
||||
echo "sha=$(git rev-parse HEAD)" >> "$GITHUB_OUTPUT"
|
||||
node -e 'const p = require("./package.json"); console.log("supported=" + Boolean(p.scripts["build:release:javascript"] && p.scripts["build:release:host"]))' >> "$GITHUB_OUTPUT"
|
||||
|
||||
- uses: ./.github/actions/install-node-dependencies
|
||||
if: steps.source.outputs.supported == 'true'
|
||||
with:
|
||||
native-runtime: node
|
||||
|
||||
- uses: ./.github/actions/install-mobile-dependencies
|
||||
if: steps.source.outputs.supported == 'true'
|
||||
|
||||
- name: Resolve release build identity
|
||||
id: identity
|
||||
if: steps.source.outputs.supported == 'true'
|
||||
run: |
|
||||
RELEASE_TAG="v$(node -p 'require("./package.json").version')"
|
||||
export RELEASE_TAG
|
||||
echo "value=$(node config/scripts/release-javascript-artifact.mjs identity)" >> "$GITHUB_OUTPUT"
|
||||
|
||||
- name: Build and archive release JavaScript
|
||||
if: steps.source.outputs.supported == 'true'
|
||||
env:
|
||||
NODE_OPTIONS: --max-old-space-size=4096
|
||||
ORCA_BUILD_IDENTITY: ${{ steps.identity.outputs.value }}
|
||||
ORCA_DIAGNOSTICS_TOKEN_URL: https://www.onorca.dev/diagnostics/token
|
||||
ORCA_POSTHOG_WRITE_KEY: ${{ secrets.ORCA_POSTHOG_WRITE_KEY }}
|
||||
run: |
|
||||
pnpm run build:release:javascript
|
||||
node config/scripts/release-javascript-artifact.mjs pack
|
||||
|
||||
- uses: actions/upload-artifact@v7
|
||||
if: steps.source.outputs.supported == 'true'
|
||||
with:
|
||||
name: release-javascript
|
||||
path: .build/release-javascript/
|
||||
compression-level: 0
|
||||
retention-days: 7
|
||||
if-no-files-found: error
|
||||
Reference in New Issue
Block a user