0.0.0 • Published 7 years ago

gitlab-trigger v0.0.0

Weekly downloads
-
License
MIT
Repository
gitlab
Last release
7 years ago

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.