User defined after_script is executed after failed pre_build_script and bypasses post_build_script
## Summary
Situation: both `pre_build_script` and `post_build_script` is defined in `config.toml`, `after_script` is defined in `.gitlab-ci.yml`. When `pre_build_script` fails (i.e. I explicitly call `exit 1`), then user-defined `after_script` is executed and `post_build_script` is not executed at all. I consider it a bug.
I want to enforce some checks using `pre_build_script` and I expect that no user-defined script is run when `pre_build_script` exits with non-zero status.
## Steps to reproduce
See above.
## Actual behavior
Runner executes user-defined `after_script` when `pre_build_script` fails (e.g. exit 1).
## Expected behavior
`after_script` should not be executed after `pre_build_script` failure, or should be executed **after** `post_build_script`.
[GitLab Runner/Configuring GitLab Runner/Advanced configuration](https://docs.gitlab.com/runner/configuration/advanced-configuration.html#the-runners-section):
> post_build_script – commands to be executed on the runner just after executing the build, but **before executing after_script**.
## Relevant logs and/or screenshots
N/A
## Environment description
docker+machine executor
### Used GitLab Runner version
```
Version: 10.5.0
Git revision: 80b03db9893ab1668ac601909c1a1bf29d476035
Git branch: 10-5-stable
GO version: go1.9.2
Built: 2018-02-22T21:19:46
OS/Arch: linux/amd64
```
## Customers
https://gitlab.my.salesforce.com/0014M00001pQxLq
https://gitlab.my.salesforce.com/00161000004bZxf
issue