Non-Blocking / Multi-Stage-ily Parrallel Jobs
Description
I have two jobs categoriezed as code quality, rubocop, and codeclimate (cli).
I want the rubocop to be required before running tests, the next job.
but since codeclimate allows failures, and can sometimes take a while, I don't want it holding up the tests job.
I do want codeclimate to block my pages / artifacts deploy job (as specified by dependencies
)
Here would be an example flow of stages
codeclimate / rubocop
v
tests (depends on rubocop) -- code climate maybe still running
v
deploy (depends on tests)
v
pages / artifacts / move to public (depends on tests and codeclimate)
Proposal
in .gitlab-ci.yml
I think being able to specify non_blocking: true
would sufficient
codeclimate:
only:
- develop
stage: quality
allow_failure: true
non_blocking: true
script: ./scripts/ci/codeclimate.sh
artifacts:
paths:
- codeclimate.html
# ... tests, deploy, etc
pages:
stage: artifacts
dependencies:
- tests
- codeclimate
script:
- mv coverage/ public/
- mv codeclimate.html public/
artifacts:
paths:
- public
expire_in: 30 days
only:
- develop
Is this something that can be done / other people would be interested in?
Edited by Jason Yavorska