mirror of
https://github.com/openclaw/openclaw.git
synced 2026-07-17 09:01:46 +00:00
fix(ci): calibrate hosted startup memory
This commit is contained in:
4
.github/workflows/ci.yml
vendored
4
.github/workflows/ci.yml
vendored
@@ -723,6 +723,10 @@ jobs:
|
||||
|
||||
- name: Check CLI startup memory
|
||||
shell: bash
|
||||
env:
|
||||
# GitHub-hosted Linux reports a higher RSS baseline than Blacksmith for
|
||||
# the same built CLI. Keep the tighter Blacksmith regression ceiling.
|
||||
OPENCLAW_STARTUP_MEMORY_PLUGINS_LIST_MB: ${{ runner.environment == 'github-hosted' && '425' || '350' }}
|
||||
run: |
|
||||
set +e
|
||||
pnpm test:startup:memory
|
||||
|
||||
@@ -60,7 +60,7 @@ dispatch.
|
||||
4. `build-artifacts` overlaps with the fast Linux lanes so downstream consumers can start as soon as the shared build is ready.
|
||||
5. Heavier platform and runtime lanes fan out after that: `checks-fast-core`, `checks-fast-contracts-plugins-*`, `checks-fast-contracts-channels-*`, `checks-node-*`, `checks-windows`, `macos-node`, `macos-swift`, `ios-build`, and `android`.
|
||||
|
||||
GitHub may mark superseded jobs as `cancelled` when a newer push lands on the same PR or `main` ref. Treat that as CI noise unless the newest run for the same ref is also failing. Matrix jobs use `fail-fast: false`, and `build-artifacts` reports embedded channel, core-support-boundary, and gateway-watch failures directly instead of queuing tiny verifier jobs. The automatic CI concurrency key is versioned (`CI-v7-*`) so a GitHub-side zombie in an old queue group cannot indefinitely block newer main runs. Manual full-suite runs use `CI-manual-v1-*` and do not cancel in-progress runs.
|
||||
GitHub may mark superseded jobs as `cancelled` when a newer push lands on the same PR or `main` ref. Treat that as CI noise unless the newest run for the same ref is also failing. Matrix jobs use `fail-fast: false`, and `build-artifacts` reports embedded channel, core-support-boundary, and gateway-watch failures directly instead of queuing tiny verifier jobs. The automatic CI concurrency key is versioned (`CI-v7-*`) so a GitHub-side zombie in an old queue group cannot indefinitely block newer main runs. Manual full-suite runs use `CI-manual-v1-*` and do not cancel in-progress runs. The plugin-list startup-memory guard keeps a 350 MiB ceiling on self-hosted Blacksmith Linux and allows 425 MiB on GitHub-hosted Linux, whose RSS baseline is higher for the same built CLI.
|
||||
|
||||
Use `pnpm ci:timings`, `pnpm ci:timings:recent`, or `node scripts/ci-run-timings.mjs <run-id>` to summarize wall time, queue time, slowest jobs, failures, and the `pnpm-store-warmup` fanout barrier from GitHub Actions. The in-workflow `ci-timings-summary` job exists in `ci.yml` but is currently disabled (`if: false`); run the timing helper locally instead. For build timing, check the `build-artifacts` job's `Build dist` step: `pnpm build:ci-artifacts` prints `[build-all] phase timings:` and includes `ui:build`; the job also uploads the `startup-memory` artifact.
|
||||
|
||||
|
||||
@@ -718,6 +718,17 @@ describe("ci workflow guards", () => {
|
||||
expect(buildArtifactSteps.some((step) => step.run === "pnpm ui:build")).toBe(false);
|
||||
});
|
||||
|
||||
it("keeps the hosted plugin-list memory allowance scoped to GitHub-hosted runners", () => {
|
||||
const workflow = readCiWorkflow();
|
||||
const startupMemoryStep = workflow.jobs["build-artifacts"].steps.find(
|
||||
(step) => step.name === "Check CLI startup memory",
|
||||
);
|
||||
|
||||
expect(startupMemoryStep.env.OPENCLAW_STARTUP_MEMORY_PLUGINS_LIST_MB).toBe(
|
||||
"${{ runner.environment == 'github-hosted' && '425' || '350' }}",
|
||||
);
|
||||
});
|
||||
|
||||
it("restores the dist build cache before building and saves only cache misses", () => {
|
||||
const workflow = readCiWorkflow();
|
||||
const buildArtifactSteps = workflow.jobs["build-artifacts"].steps;
|
||||
|
||||
Reference in New Issue
Block a user