Skip to content

feat(ci): add skip_local input to skip local E2E jobs on workflow_dispatch - #744

Closed
piotr-iohk wants to merge 1 commit into
masterfrom
cursor/skip-local-e2e-input-b5ec
Closed

feat(ci): add skip_local input to skip local E2E jobs on workflow_dispatch#744
piotr-iohk wants to merge 1 commit into
masterfrom
cursor/skip-local-e2e-input-b5ec

Conversation

@piotr-iohk

Copy link
Copy Markdown
Collaborator

Description

Add an optional skip_local boolean input to the e2e-tests workflow. When set to true via workflow_dispatch, this skips the build-local and e2e-tests-local jobs to avoid blocking busy self-hosted runners during staging-only validation (e.g. multi_address_2_regtest).

Changes:

  • Add skip_local input to workflow_dispatch with descriptive help text
  • Update build-local and e2e-tests-local job conditions to skip when skip_local=true
  • Update e2e-status to accept skipped local jobs when skip_local was requested

Behavior:

  • Default (skip_local=false): No change — local jobs run as before
  • PRs: No change — github.event.inputs.skip_local is undefined, so local jobs run
  • skip_local=true: Local jobs are skipped, staging jobs run, e2e-status passes if staging succeeds

Usage:

gh workflow run e2e-tests -f e2e_branch=main -f skip_local=true

Linked Issues/Tasks

N/A

Design

N/A — no UI changes.

Screenshot / Video

N/A — CI workflow change only.

Open in Web Open in Cursor 

…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>
@piotr-iohk
piotr-iohk enabled auto-merge (squash) September 11, 2026 08:51
@greptile-apps

greptile-apps Bot commented Sep 11, 2026

Copy link
Copy Markdown

RetriggerConfidence Score: 5/5

The PR appears safe to merge; explicitly skipping local tests leaves staging validation and default test requirements intact.

Summary

  • Skips both local build and local E2E jobs when requested, without changing staging dependencies.
  • Updates the aggregate status check to permit explicitly skipped local tests while still requiring staging success.
  • Preserves local-test requirements for default dispatches and pull requests. No actionable issues were identified.

Reviews (1) · Last reviewed commit: "feat(ci): add skip_local input to skip l..."

@jvsena42 jvsena42 left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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_local appears only in its definition (:10-14), the if: conditions on build-local (:51) and e2e-tests-local (:237), and env: SKIP_LOCAL (:529), which the script reads as "$SKIP_LOCAL" (:542). Never interpolated into run:. And the ${{ needs.*.result }} values that used to be pasted straight into the run: script now go through env: too (:527-528) — that closes a pre-existing injection shape.
  • Default path is right. On workflow_dispatch the value is the string 'true'/'false', so != 'true' works; on pull_request github.event.inputs is 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) skipped build-local and e2e-tests-local, while the pull_request run on the same commit (34581072266) ran e2e-tests-local - e2e as normal. So local E2E isn't silently skipped on PRs.
  • Dependency graph holds. build-staging/e2e-tests-staging don't depend on build-local, the two local jobs share one skip condition, and e2e-status runs with always() and accepts a skipped local result only when SKIP_LOCAL == "true". A failed build-local on a PR still fails e2e-status, as before.
  • No permissions: change; secrets stay confined to build-local and build-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.

@piotr-iohk

Copy link
Copy Markdown
Collaborator Author

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.

@piotr-iohk piotr-iohk closed this Sep 11, 2026
auto-merge was automatically disabled September 11, 2026 15:34

Pull request was closed

@piotr-iohk
piotr-iohk deleted the cursor/skip-local-e2e-input-b5ec branch September 11, 2026 15:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants