[STG-2464] ci: gate v3 SEA binary build on server changes#2308
Draft
shrey150 wants to merge 1 commit into
Draft
Conversation
build-server-sea only depended on run-build with no path-filter gate, so it compiled the stagehand-server-v3 single-executable across all 6 platforms (+ sourcemap) on every PR — including release/metadata-only PRs that touch no server code (e.g. the browse version-bump PRs). Add the same `determine-changes.outputs.server == 'true'` gate its sibling jobs (core/cli/server-integration/evals) already use. The only downstream consumer, server-integration-tests, already runs solely when server == true (via discover-server-tests), so gating is safe: when server is unchanged both are skipped together. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What & why
build-server-sea(Build SEA binary (tests, v3)) was the only package-scoped job inci.ymlwithout a path-filter gate. It only declaredneeds: [run-build], so it compiled thestagehand-server-v3single-executable (SEA) across all 6 platforms + a sourcemap build on every PR — including metadata-only release PRs that touch zero server code (e.g. the browse version-bump PR #2287, where core / server-integration / e2e / evals all correctly skipped but the SEA build still ran).This adds the same gate its siblings already use:
The
serverfilter matchespackages/server-v3/**,packages/server-v4/**,packages/core/**, rootpackage.json, the lockfile,pnpm-workspace.yaml, andci.yml— so genuine server changes still build. The only downstream consumer,server-integration-tests, already runs solely whenserver == true(viadiscover-server-tests), so gating is safe: when server is unchanged, both skip together; a skipped job passes branch protection.Linear: STG-2464
E2E Test Matrix
ruby -ryaml -e "YAML.load_file('.github/workflows/ci.yml')"YAML OKgit diff --stat origin/main..HEAD.github/workflows/ci.yml | 3 ++-(1 file, +2/-1)build-server-searuns (not skipped)ci.ymlis itself in theserverfilter, soserver == truehere and the SEA build correctly fires.determine-changes.server == false— evidenced by core / server-integration / e2e / evals all showing skipped while SEA still builtbuild-server-seatoo. Not directly runnable pre-merge (would need the merged workflow on a metadata-only PR).🤖 Generated with Claude Code
Summary by cubic
Gated the
build-server-seajob to run only whenserverchanges are detected. This stops unnecessary multi-platform SEA builds on metadata-only PRs and stays aligned with sibling jobs;server-integration-testsremains in lockstep. Linear: STG-2464..github/workflows/ci.yml, updatedbuild-server-seatoneeds: [run-build, determine-changes]and addedif: needs.determine-changes.outputs.server == 'true'.Written for commit 8cda7c3. Summary will update on new commits.