gitlab-trigger v0.0.0
CI Trigger
Trigger GitLab pipelines from other repositories.
Usage
(This guide is using yet-to-be-released features.)
You will need to update your .gitlab-ci.yml
file for the base project that will trigger pipelines for dependent
repositories.
This can be done automagically with the setup
command:
cd base-project;
npm install --no-save gitlab-trigger
$(npm bin)/gitlab-trigger setup "my-group/dependent1"
setup-triggers
will use a personal access token to create a new pipeline trigger in the desired
repository through the GitLab API.
This trigger will be added to the local .gitlab-ci.yml
file as a trigger. By default, setup-triggers
will use a
YAML template under a hidden key to reduce repeated code.
After running setup-triggers
, .gitlab-ci.yml
will resemble:
# Stages are recommended, but not added by `setup-triggers`
stages:
- build
- test
- deploy
- trigger
# YAML template:
.trigger: &trigger
stage: trigger
image: codelenny/gitlab-trigger
script: [ gitlab-trigger trigger ]
# Added trigger:
"my-group/dependent1":
<<: *trigger
variables: { TOKEN: "<TOKEN>" }
When the trigger
stage is released, the trigger
script will queue each dependent pipeline.
To report the build status of the triggered pipeline back in the base project, the report
script can be added to the
.gitlab-ci.yml
configuration file for each dependent repository:
stages:
- build
- test
- deploy
- report
- trigger
report:
stage: report
image: codelenny/gitlab-trigger
script: [ gitlab-trigger eport ]
only: [ triggers ]
when: [ always ]
variables: { TOKEN: "<TOKEN>" }
This report
stage will find the triggering pipeline thanks to variables added by the trigger
script, and will send
the status of the current pipeline back to the pipeline in the base project.
7 years ago