CI manual jobs ignore dependencies
### Summary When there are several jobs that depend on each other specified as `when: manual`, the `dependencies` do not trigger dependent jobs upon starting the top-level job. ### Steps to reproduce #### .gitlab-ci.yml ``` stages: - stage1 - stage2 cache: key: none untracked: false paths: [] build-stage1: stage: stage1 when: manual script: - bash stage1.sh artifacts: expire_in: 1 day paths: - stage1/* build-stage2: stage: stage2 when: manual script: - bash stage2.sh dependencies: - build-stage1 artifacts: expire_in: 1 day paths: - stage2/* ``` #### stage1.sh ``` #!/bin/bash mkdir -p stage1 echo "stage1 @ $(date)" > stage1/out.txt ``` #### stage2.sh ``` #!/bin/bash mkdir -p stage2 echo "stage2 @ $(date)" > stage2/out.txt echo "stage1 output:" >> stage2/out.txt cat stage1/out.txt >> stage2/out.txt ``` Run `build-stage2` manually from the web UI. ### What is the current *bug* behavior? `build-stage2` is started and fails because it cannot find artifacts from stage1. ``` Running with gitlab-ci-multi-runner 1.9.4 (8ce22bd) Using Shell executor... Running on WINCI... Fetching changes... Removing stage1/ Removing stage2/ HEAD is now at c3b17ee fix ci file From https://.../support/ci-playground c3b17ee..0a925d0 master -> origin/master Checking out 0a925d0e as master... $ bash stage2.sh cat: stage1/out.txt: No such file or directory ERROR: Build failed: exit status 1 ``` ### What is the expected *correct* behavior? `build-stage1` should be started, because it is a dependency of `build-stage2`. `build-stage1`artifacts should produced and passed to `build-stage2`. #### Results of GitLab environment info ``` I, [2017-02-19T13:24:46.500576 #13856] INFO -- sentry: ** [Raven] Raven 2.0.2 ready to catch errors System information System: Ubuntu 16.04 Current User: git Using RVM: no Ruby Version: 2.3.3p222 Gem Version: 2.6.6 Bundler Version:1.13.7 Rake Version: 10.5.0 Sidekiq Version:4.2.7 GitLab information Version: 8.16.6 Revision: 65cdbdd Directory: /opt/gitlab/embedded/service/gitlab-rails DB Adapter: postgresql URL: https://....com HTTP Clone URL: https://....com/some-group/some-project.git SSH Clone URL: git@....com:some-group/some-project.git Using LDAP: no Using Omniauth: no GitLab Shell Version: 4.1.1 Repository storage paths: - default: /srv/gitlab-data/repositories Hooks: /opt/gitlab/embedded/service/gitlab-shell/hooks/ Git: /opt/gitlab/embedded/bin/git ``` #### Results of GitLab application Check ``` Check GitLab API access: OK Access to /var/opt/gitlab/.ssh/authorized_keys: OK Send ping to redis server: OK gitlab-shell self-check successful Checking GitLab Shell ... Finished Checking Sidekiq ... Running? ... yes Number of Sidekiq processes ... 1 Checking Sidekiq ... Finished Checking Reply by email ... IMAP server credentials are correct? ... yes Init.d configured correctly? ... skipped (omnibus-gitlab has no init script) MailRoom running? ... can't check because of previous errors Checking Reply by email ... Finished Checking LDAP ... LDAP is disabled in config/gitlab.yml Checking LDAP ... Finished Checking GitLab ... Git configured with autocrlf=input? ... yes Database config exists? ... yes All migrations up? ... yes Database contains orphaned GroupMembers? ... no GitLab config exists? ... yes GitLab config outdated? ... no Log directory writable? ... yes Tmp directory writable? ... yes Uploads directory setup correctly? ... yes Init script exists? ... skipped (omnibus-gitlab has no init script) Init script up-to-date? ... skipped (omnibus-gitlab has no init script) projects have namespace: ... 9/1 ... yes 9/2 ... yes 1/3 ... yes 1/4 ... yes 8/5 ... yes 1/6 ... yes 1/7 ... yes 1/8 ... yes 1/9 ... yes 1/10 ... yes 9/11 ... yes 1/12 ... yes 1/13 ... yes 1/14 ... yes 1/15 ... yes 1/16 ... yes 1/17 ... yes 1/18 ... yes 1/19 ... yes 1/20 ... yes 13/21 ... yes 1/22 ... yes 1/23 ... yes 8/24 ... yes 1/25 ... yes 1/26 ... yes 1/27 ... yes 1/28 ... yes 1/29 ... yes 1/30 ... yes 1/31 ... yes 1/32 ... yes 1/33 ... yes 1/34 ... yes 1/35 ... yes 1/36 ... yes 11/37 ... yes 1/38 ... yes 1/39 ... yes 9/40 ... yes 1/41 ... yes 9/42 ... yes 1/43 ... yes 1/44 ... yes 1/45 ... yes 1/46 ... yes 9/47 ... yes 9/48 ... yes 1/49 ... yes 11/50 ... yes 10/51 ... yes 1/52 ... yes 1/53 ... yes 1/54 ... yes 9/55 ... yes 9/56 ... yes 9/57 ... yes 9/58 ... yes 22/59 ... yes 22/60 ... yes 7/62 ... yes 7/64 ... yes 7/65 ... yes 7/66 ... yes 9/67 ... yes 13/68 ... yes 13/69 ... yes 13/70 ... yes 13/71 ... yes 9/72 ... yes 13/73 ... yes 7/76 ... yes 13/77 ... yes 27/78 ... yes 13/79 ... yes Redis version >= 2.8.0? ... yes Ruby version >= 2.1.0 ? ... yes (2.3.3) Your git bin path is "/opt/gitlab/embedded/bin/git" Git version >= 2.7.3 ? ... yes (2.10.2) Active users: 19 Checking GitLab ... Finished ```
issue