There I uses the newer features like Stages and having many jobs inside of stages quite a lot.
It works quite well when doing a complete production build. If something fails in between I can try to fix things and hit the "Rerun Failed Jobs".
But I would need the functionality to run individual jobs on demand, not only the complete build or the "failed" jobs.
Why would this be important:
1) for testing purposes. When setting up/maintaining such a build it takes too long to restart the complete build for just seeing whether one special job is working well. In theory it would be possible to disable all jobs not needed for that testrun, but with that many jobs this is not a really practical solution.
2) sometimes we only need special parts of the complete build.
Doing a complete build takes lots of time (up to 24h in this example) and wastes lots of resources. Here it would be possible to duplicate those jobs that might be used alone, but this also is not very practical as one would have to maintain to many builds in parallel.
So it would be very helpful to get the possibility to have a possibility to start individual jobs of a complex build.
Form Name |
---|
Why not give flexibility to re-run any stage or any job? It is implemented for failed stages already - just need to give users the flexibility to do the same thing for passed stages. It could be configurable if some users want to lock out re-running of a successful stage. I have run into this need MANY MANY times and end up at
BAM-9611which only leaves me more frustrated.Point 1 - for testing purposes is valid. We often have the script for reporting jobs "exit 1" at the end so that we have the opportunity to rerun if the results don't look right - this is a pretty terrible work around though. In the best case, it means the results look right, we remove the "exit 1" and then have to re-run again.
Point 2 - special optional jobs is also valid. In a complicated build, there may be a lot of optional stages - optional stages is a lot cleaner than child plans - and I think would be a lot more popular except for this limitations. Ex: for a mobile app: optional build release apk, optionally run fastlane screengrab, optionally run extra acceptance tests, optionally run reporting stage. Just this week, I have incorrect test reports because they run when one of the parallelized acceptance tests had failed. The acceptance test job passed on re-run, but I'm unable to rerun the reports.
In order to give proper flexibility to optional stages, they also need to be allowed to run out of order.
It feels terrible to spend many extra hours downloading artifacts and manually running jobs locally just because bamboo has disabled the re-run option when I need it!