I use such Gitlab CI Pipeline:
Build -> Deploy -> Test ---> Rollback if Build fails
|--> Rollback if Deploy or Test fails
I realized Rollback if Build fails in this way and it works perfectly: runs only if Build fails. Skips if Deploy or Tests fail.
rollback-on-build:
when: on_failure
needs: [ "Build" ]
And tried Rollback if Deploy or Test fails:
rollback-on-finish:
when: on_failure
needs: [ "Deploy", "Test" ]
And it works only if Tests fails! It skipped if Deploy fails!
How to create job running only if fails one job from array?