Can not retry job in non interactive mode
Summary
CI jobs do not attempt to rebuild after failure, ether from a local artifact or after pulling a failed artifact.
if this was run locally you could ask for a rebuild interactively but if bst is running in non interactive mode this is not possible.
Suggestion
Add
bst --no-interactive build --retry-cached-failures ELEMENT.bst
also/or as a userconfig option
From IRC
<WSalmon> bst will cache failure, this can be good as if this happens in CI i can then pull down the artifact and look at the log. but some times things fail for intermittent reasons, if i have a runner with a "semi" persistent cache and i try to rerun the job bst will not try to rebuild, i have to go and manually clear the runner's cache. is there a way to keep the creation and pushing of artifacts but have bst rerun when it finds cached failure? and if it
<WSalmon> dose rerun push the successful artifact over the failed on?
<WSalmon> i basiclly want to do `bst --no-interactive build --always-retry ELEMENT.bst`
<WSalmon> juergbi, benschubert ^
<juergbi> WSalmon: yes, we should add such an option. always-retry might not be the best name as it might also mean retry failures in the new session
<juergbi> and we should make sure push replaces the artifact proto on the server
<juergbi> I'm wondering whether it would make sense to implicitly expire failed artifacts
<juergbi> at least in terms of considering an element cached
<juergbi> i.e., always retry builds if the only cached artifact is an old failed build. the question would be how do we define 'old'
<juergbi> maybe even have a userconfig for this. and if you specify 0s as expiry, it will never use cached failures
<WSalmon> sounds good to me, just wanted to check we didnt have this already, ill make a issue
<WSalmon> i presume this is addional cli so dosent need to block bst2?
<juergbi> yes, I don't think this needs to block bst2
<juergbi> (but would still make sense to get done before)
<WSalmon> +1
Extension
As noted in the IRC logs dealing with the cache failure after a success full build has commenced needs to be handled gracefully.
Edited by William Salmon