-
Notifications
You must be signed in to change notification settings - Fork 24
Ability to add a "cleaner" step that runs no-matter the build status #133
Comments
Thanks for looking at this! This comes up a lot and if you have 100 test runs in parallel and 25 failures, it's quite tedious to look at each one individually to find the test files that contain failures. Right now you have to click each test run, scroll down, find the stacktrace, parse with your eyes to find the filename and test name and then scroll back up, click the next red test run and so on. The optimal workflow would be to have some sort of table that displays each failure (and optionally amounts of failures) right at the top. |
Reading back my feature request, I think OsftFail it's not quite what I'd want. I'd like for some kind of alternative |
Just thinking this through, I wonder if actually silencing them (capturing the exit status yourself, storing it along with your other stuff, and then |
Yes it's what I was doing initially, but I stopped when I realized it had a bunch of bad downsides. I mean it's not impossible to do it that way, but it way more fragile that if we had the equivalent of a |
I've been thinking of a new step type over the last few months. It's a type of |
That would be perfect |
+1 for |
this is essentially a 'finally' block isn't it? It could be used for more than just cleanup so i'd maybe suggest is is called |
👋 We shipped an option on the Usually you define a steps:
- command: "test.sh"
- wait
- command: "another.sh" In the above example, if We added a steps:
- command: "test.sh"
- wait: ~
continue_on_failure: true
- command: "another.sh" Now if |
@keithpitt The wait step changes don't actually solve the issue in this ticket. If you have something like this...
The cleanup step won't happen, because the step it is supposed to continue from never ran because of the first wait. To appropriately address cleanup scenarios, the cleanup step needs to run regardless of which steps ran. |
I recently got hit by the same issue that @KJTsanaktsidis is describing. I was having something similar to:
For more complex projects, where you can't really upload artifacts from one step to the other (e.g. multi docker images building), such a final "clean" step, that would run regardless of the previous commands results, would be a good addition. For my own project, I had to modify a bit my CI workflows and managed to perform clean-up in a |
I ended up having our clean-up step also clean up any failed builds that came before it. Not elegant, but worked for our purposes (destroying Cloudformation stacks used as part of integration tests; the cleanup is just there to stop setting money on fire). |
Context: Since we use intensive parallelism (up to ~200), getting the full list of errors is quite annoying. You have to navigate between many job outputs etc.
I'm prototyping something were we store the failure reports in a datastore and print them out as a final step.
Unfortunately this final step isn't run if any of the previous ones failed. I could silence failures but then i'd be afraid things could break and nobody would notice.
Idea:
What would be great, would be to define jobs with
soft_fail: true
, which would mean that they don't impact the job state if they fail.@keithpitt @toolmantim thoughts?
The text was updated successfully, but these errors were encountered: