Skip to content

`needs` does not work for parent-child pipelines when one project is private

Update

This issue is not resolved yet, if you encounter this issue please check the workaround example and/or try with public projects.


Problem

needs:project: does not work to fetch artifacts when the child pipeline is private

Previous Issue writeup

I wanted to test https://docs.gitlab.com/ee/ci/yaml/#artifact-downloads-between-pipelines-in-the-same-project which I was not sure it should be in free/core giving the lack of premium tag. I went to gitlab.com and tested on the linter, and it passed. I created the following repo to test: https://gitlab.com/arcnor/testgitlabdependency and on my other branch (the one with needs on .gitlab-ci.yml) got the following error:

This job depends on other jobs with expired/erased artifacts:
Please refer to https://docs.gitlab.com/ce/ci/yaml/README.html#dependencies

...which is either incorrect or misleading (my artifacts haven't expired or have been erased). I also got #223686 (closed) in case it's important, you can also see the previous job failure about that.

I went to test the same on a free self hosted instance (GitLab CE 13.1.0) and the .gitlab-ci.yml doesn't even pass linting.

So at this point I'm just confused:

  1. Should the feature work given my example .gitlab-ci.yml?
    • The example .gitlab-ci.yml will lint correctly because the linter does not do a license check but may not work if your license does not support the feature.
  2. Should the feature work at all on GitLab.com?
    • Yes it should work.
  3. Should the feature work at all on a self hosted CE instance?
    • Yes
  4. Should there be any differences between self-hosted CE and GitLab.com? (I guess the answer is no, but at this point after a few similar bugs I'm not so sure, and I feel I should have gone with a self-hosted free EE instead...)
    • No.

Thanks for your time.

Edited by James Heimbuck