Manual job ignore dependencies
When using a manual job, any job having a dependency on the manual job will start, even if the manual job wasn't executed. In another hand, a manual job can be executed even when his dependencies weren't built.
I use gitlab Ci in order to build, test, and deploy a project. We build for Linux (using Docker) and OSX. The runner for OSX is one of our team Macbook, and isn't always available. Thus, we made OSX build manually triggered, in order to build it only when our co-worker computer is available.
here is a CI script example:
## BUILDS
Linux client build:
stage: build
only:
- develop
tags:
- Docker
image: ubuntu:14.04
script:
# The compilation script, omitted for clarity
artifacts:
paths:
- Linux
OSX client build:
stage: build
only:
- develop
tags:
- OSX
script:
# The compilation script, omitted for clarity
artifacts:
paths:
- OSX
when: manual
## TEST
Linux client test:
stage: test
only:
- develop
tags:
- Docker
image: ubuntu:14.04
script:
# The test script, omitted for clarity
dependencies:
- Linux client build
OSX client test:
stage: test
only:
- develop
tags:
- OSX
script:
# The test script, omitted for clarity
dependencies:
- OSX client build
Expected result :
- Linux build start automatically
- Linux test start automatically after Linux build end
- OSX build is manually triggered
- OSX test start automatically after OSX build end
Actual result:
- Linux build start automatically
- Linux and OSX test start automatically after Linux build end, without OSX build being triggered.