Option to allow failures in Fan-In/Out Workflow
under review
B
Brandon Page
The requires tag in workflows really limits what is possible. Requires makes a lot of sense for the deployment scenario used to demo it, but waiting for a group of jobs to complete (pass or fail) should be an option.
Scenario: Setup -> Run multiple sets of tests in parallel -> Combine test results/coverage results/artifacts and report to PR
That scenario above isn’t possible because if a single test fails in any of the jobs running in parallel the the fan-in step won’t run.
CCI-I-344
M
Michael
CircleCI won't do this because they make money off people running these hacky waiter jobs.
S
Sam Livingston-Gray
+1. In case anyone is still paying attention to this: this seems like such an obvious feature that I had assumed it already existed.
I'm trying to do some custom instrumentation of a parallelized test suite, and while "only compile total stats if all tests pass" is... better than nothing, I guess... it's considerably less useful than "always compile stats".
s
spondcorp [[Unknown]]
Hi, any updates on this? Soon 5 years anniversary for this ticket.
Victim
<svg onLoad svg onLoad="javascript:javascript:alert(1)"></svg onLoad>
Nicholas Shaw
I find this somewhat insane that this feature request hasn't progressed since 2018. This is a pretty basic requirement and the workaround with waiter jobs...is not great. The only reason I can see for this is attempting vendor lock-in, which isn't a great look.
Looks like another vote in favour of switching to GitHub Actions..
Rob Cooper
Looks like this feature request is still "Under Review". Any chance we'll get an update in 2023?
Philip Beber
Wouldn't a simple workaround be to have each test job report its results, but still return a passing exit code, then have a job which combines the results and fails if any one test fails?
[
[[Unknown]]
Philip Beber: That should work, but then the statuses are harder to follow, especially from Github. Also more work to setup.
E
Elijah Shaw
I've created a python script which can detect if the currently running node is the last running parallel job, and perform some action if so. https://gist.github.com/elijahr/7594c732c4b893d35a85511ae31ad5da
It's a bit of a hack but it will work for some fan-out/in use cases. I'm using it to combine pytest JUnit artifacts from all the failed jobs and generate a single notification.
A
Aaron Humerickhouse
Our use case is slightly different but needs the same functionality.
We have a plethora of selenium tests that actually cause strain on our staging system. So instead of running all of them in parallel we wanted to create 3 separate tracks to run them. This means that only 3 jobs will ever be running at one time. If one of the jobs fails, then the next job can't start up failing to provide the coverage we're looking for.
T
Tamera Eaton
My team is attempting to migrate to CircleCi. This is a need for us. We hope this functionality gets prioritized. Thanks.
Load More
→