28 Jun 2015
I was stuck at this problem for almost 5 hours. It's difficult to debug because of a long test cycle.
I've found that, when a command in the
script block fails, the
after_script block is not run at all.
After trials and errors for 5 hours, I've found that it is because I change the working directory (e.g. using
cd). When an error occurs in the working directory that is not root, any sub-sequential task will not be run. I'm pretty it's a bug.
Anyway, the way to solve it is to switch to the new folder ephemerally, though it's not straightforward.
Here's a combination that works:
script: - (cd test_test/ && exec some_program)
some_program fails, the
after_script will still be run.
Here's a combination that does NOT work:
script: - (cd test_test/ && some_program)
I've filed an issue for shippable.com here: https://github.com/Shippable/support/issues/1618
I hope it gets fixed soon.