Cross-project `trigger` ability
We currently support triggers via the API, but to use it in a .gitlab-ci.yml requires ugly CURLing and passing secure tokens.
As a developer, I want to be able to trigger CI build for one component after completing another component. e.g. make a change to the API, then trigger a pipeline for a downstream dependency to pick up the changes.
We simplify that process by providing a higher-level construct and replace/supplement https://docs.gitlab.com/ee/ci/triggers/#ci-job-token (EE feature)
Note: We do not replace/supplement https://docs.gitlab.com/ce/ci/triggers/README.html#trigger-token (CE and EE feature)
job: trigger: my/project
- The variables included in the vars: section are passed automatically to the triggered pipeline.
- The job which represents the trigger will not be clickable (similar to a deploy job to GitLab pages) and thus will have no job detail page
- Jobs that are not clickable will have their cursor change to
not-allowed(trigger jobs + GitLab pages jobs)
- A trigger job cannot have a script of its own
- A trigger job should not represent a downstream project pipeline as we already have dedicated nodes for that inside of the pipeline graph + this would have made things complicated for #39640.
- #39640 will essentially be an iteration on trigger jobs and adds wait/depend to the mix so the status waits/depends on the downstream pipeline as well.
- For this issue the trigger job will just succeed after triggering the downstream pipeline.
- Trigger jobs will have the tag/badge
triggered by api jobs will have its tag changed to
triggered by api
- triggered by api jobs will have its tag changed to
Links / references
- Originally from gitlab-ee#933 (closed) (Multi-project pipeline).
- Proposal came from #3743 (closed) (GitLab Pipeline).
- First-class triggers: #16556 (closed).
- Link between project pipeline views: #22550 (closed)
- Consolidated view of entire pipeline across projects: #22558 (closed)
- Cross-project build artifacts dependencies: #14728
The page on how to trigger pipelines (https://docs.gitlab.com/ee/ci/triggers/) should be refactored to describe that there is now an additional way to trigger pipelines using the .gitlab-ci.yml, in addition to using the API.