Action Cable integration test should soft fail on exit 3#119
Action Cable integration test should soft fail on exit 3#119zzak wants to merge 1 commit intorails:mainfrom
Conversation
| [retry_on].flatten.compact.each do |retry_args| | ||
| automatic_retry_on(**retry_args) |
There was a problem hiding this comment.
This is sugar to support passing a hash or array of hashes, as supported by the automatic retry attributes.
| [retry_on].flatten.compact.each do |retry_args| | ||
| automatic_retry_on(**retry_args) | ||
| end | ||
| automatic_retry_on(**build_context.automatic_retry_on) |
There was a problem hiding this comment.
Before we would either set the given policy OR the default, now we always set both. There is some duplication in the rails-ci pipeline where we can remove the old retry policy commands now.
| if soft_fail.is_a?(TrueClass) || build_context.ruby.soft_fail? | ||
| soft_fail true | ||
| else | ||
| soft_fail([soft_fail].flatten.compact) if soft_fail |
There was a problem hiding this comment.
Since soft_fail can be either a boolean, or an array of hashes. I still want the sugar to support both arrays or hashes, AND we have to consider if the Ruby version is soft failed.
I haven't tested what the result is if you for example, pass an empty array, and wanted to limit the amount of change here -- but there is probably a nicer way to write this.
This is to support rails/rails#51990.
Inside the
actioncable test:integrationjob, we capture the output and look forThe environment you requested was unavailablewhich happens far too often: https://buildkite.com/rails/rails/builds/111313#0191e945-faef-4d92-8f8a-74dbd1d397dbIf we capture that output, the job will
exit 3.In this PR, we've added a retry policy for 1 extra retry (2 total attempts) and to mark the job as soft_fail if the exit status 3 persists.
This should cut down on flaky builds due to
actioncable:integrationstep failing.I've tested the behavior locally in various scenarios.