Select steps by exact ids, prefixes, infixes and suffixes, drop the regex - #237
Merged
Merged
Conversation
praneethy91
reviewed
Aug 21, 2026
…chable empty-selection paths
praneethy91
approved these changes
Aug 24, 2026
praneethy91
left a comment
Collaborator
There was a problem hiding this comment.
LGTM, thanks for the simplification and removing regexes
harph
approved these changes
Aug 24, 2026
5 tasks
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.
Pull Request type
./gradlew build --write-locksto refresh dependencies)Changes in this PR
Follow up to #236.
includeandexcludeeach take four criteria now:step_idsmatches the whole step id.step_id_prefixes,step_id_infixesandstep_id_suffixesmatch the start, the middle and the end. A step matches when any one criterion hits.excludestill beatsinclude.This drops regex support, because a user regex can hang the engine thread that evaluates it.
Excluding a foreach step skips the whole loop and starts no iterations. Excluding a step inside the loop skips it in every iteration, because the inline workflow keeps the same step ids.
includeandexcludeare optional, but each one that is set needs at least one value, and no value can be blank. These return 400:A restart that sends no
step_selectionkeeps the selection of the run it restarts. A restart that sends one replaces it.The instance timeline names the selection once, and each skipped step names the criterion that skipped it:
Foreach inline workflows and subworkflows get the same lines.
step_idsis not checked against the workflow definition, because a subworkflow resolves its definition at runtime from thesubworkflow_idparam.Verified on a local server across 59 cases, checking step statuses and exact timeline text on the parent workflow, both foreach iterations and the child workflow, plus a restart instance with three runs.