Subsequent jobs are executed although dependency failed
### Summary
When creating a pipeline "A -> B -> C" where relationship is established by `needs:`, job `C` is executed although `A` failed.
E.g.
```yml
stages:
- prepare
- build
- deploy
A:
stage: prepare
script: "false"
B:
stage: build
needs: [ A ]
artifacts:
paths: [ stamp ]
script: touch stamp
C:
stage: deploy
needs: [ B ]
script: test -e stamp
```
### Steps to reproduce
Run CI script above
### Example Project
https://gitlab.com/ensc/test-ci-67128/pipelines
### What is the current *bug* behavior?
`C` is executed and fails

### What is the expected *correct* behavior?
`C` should be skipped (like `B`)
### Output of checks
This bug happens on GitLab.com
issue