Triggers


Trigger other pipelines

Ability to split automation across multiple pipeline

Trigger tokens

Trigger pipelines using trigger tokens

Fire and forget

Multi-project pipelines

Launch pipeline in separate project

Use the trigger keyword

Parent-child pipelines

Load stages and jobs from a file using include


Comparison of triggers

XXX

What Trigger Tokens Multi-project Parent-child  
Traceability        
External access        

XXX


Hands-On: Trigger tokens

  1. Create a new project (anywhere!)
  2. Add trigger/.gitlab-ci.yml to root of new project
  3. Optionally, jump to next slide
  4. Go to Settings > CI/CD and unfold Pipeline triggers
  5. Create a trigger and copy curl snippet
  6. Go back to previous project
  7. Switch to branch main
  8. Add new stage and job called trigger
  9. Add curl snippet in script block
  10. Store TOKEN as unprotected but masked CI variable
  11. Fill in REF_NAME with branch name (probably main)
  12. Check pipeline

(See new .gitlab-ci.yml)


Hands-On: Multi-project pipelines

  1. Replace script with trigger keyword
  2. Specify project and branch:

     job_name:
       trigger:
         project: foo/bar
         branch: main
    
  3. Check pipeline

Hands-On: Parent-child pipelines

  1. Add parent-child/child.yml to root of first project
  2. Replace project and branch under trigger with include

     job_name:
       trigger:
         include: child.yml
    

Child pipeline can be made from multiple files

include supports local for files in the same repository

Use project/ref/file for files in other repositories

Included file can also be generated before job start