-
Notifications
You must be signed in to change notification settings - Fork 2k
Design: Partial Pipeline execution #50
Copy link
Copy link
Open
Labels
area/apiIndicates an issue or PR that deals with the API.Indicates an issue or PR that deals with the API.area/roadmapIssues that are part of the project (or organization) roadmap (usually an epic)Issues that are part of the project (or organization) roadmap (usually an epic)designThis task is about creating and discussing a designThis task is about creating and discussing a designhelp wantedDenotes an issue that needs help from a contributor. Must meet "help wanted" guidelines.Denotes an issue that needs help from a contributor. Must meet "help wanted" guidelines.kind/featureCategorizes issue or PR as related to a new feature.Categorizes issue or PR as related to a new feature.lifecycle/frozenIndicates that an issue or PR should not be auto-closed due to staleness.Indicates that an issue or PR should not be auto-closed due to staleness.priority/important-longtermImportant over the long term, but may not be staffed and/or may need multiple releases to complete.Important over the long term, but may not be staffed and/or may need multiple releases to complete.
Description
Activity
Metadata
Metadata
Assignees
Labels
area/apiIndicates an issue or PR that deals with the API.Indicates an issue or PR that deals with the API.area/roadmapIssues that are part of the project (or organization) roadmap (usually an epic)Issues that are part of the project (or organization) roadmap (usually an epic)designThis task is about creating and discussing a designThis task is about creating and discussing a designhelp wantedDenotes an issue that needs help from a contributor. Must meet "help wanted" guidelines.Denotes an issue that needs help from a contributor. Must meet "help wanted" guidelines.kind/featureCategorizes issue or PR as related to a new feature.Categorizes issue or PR as related to a new feature.lifecycle/frozenIndicates that an issue or PR should not be auto-closed due to staleness.Indicates that an issue or PR should not be auto-closed due to staleness.priority/important-longtermImportant over the long term, but may not be staffed and/or may need multiple releases to complete.Important over the long term, but may not be staffed and/or may need multiple releases to complete.
Type
Projects
- StatusShow more project fieldsTodo
- StatusShow more project fieldsTodo
- StatusShow more project fieldsHold
- StatusShow more project fieldsTodo
The work for this task is to design this feature and present one or more proposals (before implementing).
Expected Behavior
If a pipeline has many tasks and takes a long time to run (e.g. tens of minutes, or even hours), and one Task fails, it might be desirable to be able to pick up execution where the Task failed, with different PipelineParams (e.g. from a different git commit), so you can resume the Pipeline without having to rerun the whole thing.
Some ideas for how to implement this:
It is also worth considering what this could be like via a UI: if one is viewing a Pipeline in a UI, and wants to re-run only a portion of the Pipeline, they probably want the user experience to be as if they were still running the same Pipeline, even if underneath a new Pipeline is created.
Actual Behavior
At the moment, if any Task in a Pipeline fails, your options to rerun the rest of the Pipeline would be:
Additional Info
This originally came up in discussion about #39, in the context of whether or not we'd want to always use the same git commit from a source for all Tasks in a Pipeline, or if we wanted sometimes for a Task to always use HEAD. This would allow a user to change a repo, by updating HEAD, between Task executions.
The feature of partial pipeline execution could be an alternative to this.