feat(ci): add skip_local input to skip local E2E jobs on workflow_dispatch - #744
feat(ci): add skip_local input to skip local E2E jobs on workflow_dispatch#744piotr-iohk wants to merge 1 commit into
Conversation
…patch Add optional `skip_local` boolean input (default: false) to the e2e-tests workflow. When set to true via workflow_dispatch, skips build-local and e2e-tests-local jobs to avoid blocking self-hosted runners during staging-only validation (e.g. multi_address_2_regtest). Changes: - Add skip_local input to workflow_dispatch with description - Update build-local and e2e-tests-local job conditions to skip when true - Update e2e-status to accept skipped local when skip_local is requested Usage: gh workflow run e2e-tests -f e2e_branch=... -f skip_local=true Co-authored-by: piotr-iohk <piotr-iohk@users.noreply.github.com>
|
jvsena42
left a comment
There was a problem hiding this comment.
Checked this against the usual ways a new workflow_dispatch input goes wrong — clean, and it leaves the workflow safer than it found it.
- No script injection.
skip_localappears only in its definition (:10-14), theif:conditions onbuild-local(:51) ande2e-tests-local(:237), andenv: SKIP_LOCAL(:529), which the script reads as"$SKIP_LOCAL"(:542). Never interpolated intorun:. And the${{ needs.*.result }}values that used to be pasted straight into therun:script now go throughenv:too (:527-528) — that closes a pre-existing injection shape. - Default path is right. On
workflow_dispatchthe value is the string'true'/'false', so!= 'true'works; onpull_requestgithub.event.inputsis null,null != 'true'is true, and the local jobs run. Confirmed against live runs rather than just reading it: the manual run on this branch (34581269705,skip_local=true) skippedbuild-localande2e-tests-local, while thepull_requestrun on the same commit (34581072266) rane2e-tests-local - e2eas normal. So local E2E isn't silently skipped on PRs. - Dependency graph holds.
build-staging/e2e-tests-stagingdon't depend onbuild-local, the two local jobs share one skip condition, ande2e-statusruns withalways()and accepts askippedlocal result only whenSKIP_LOCAL == "true". A failedbuild-localon a PR still failse2e-status, as before. - No
permissions:change; secrets stay confined tobuild-localandbuild-staging.
One thing I inferred rather than proved: e2e-status is required on master, and the manual skip_local=true run left a passing e2e-status check (103220026959) on the head commit — but the PR's GraphQL check rollup only counts the pull_request run (still PENDING), so a staging-only manual run doesn't appear to satisfy the required check. Worth a glance at the merge box while a manual run is green and the PR run is pending, if you want certainty.
|
Closing for now — skip_local was a one-shot validation workaround, not something we want as a permanent workflow_dispatch input. May revisit as part of a broader local-on-PR / staging-nightly CI split later. |
Description
Add an optional
skip_localboolean input to thee2e-testsworkflow. When set totruevia workflow_dispatch, this skips thebuild-localande2e-tests-localjobs to avoid blocking busy self-hosted runners during staging-only validation (e.g.multi_address_2_regtest).Changes:
skip_localinput toworkflow_dispatchwith descriptive help textbuild-localande2e-tests-localjob conditions to skip whenskip_local=truee2e-statusto accept skipped local jobs whenskip_localwas requestedBehavior:
skip_local=false): No change — local jobs run as beforegithub.event.inputs.skip_localis undefined, so local jobs runskip_local=true: Local jobs are skipped, staging jobs run,e2e-statuspasses if staging succeedsUsage:
Linked Issues/Tasks
N/A
Design
N/A — no UI changes.
Screenshot / Video
N/A — CI workflow change only.