Merge requests


Merge requests

Merge requests enable collaboration

Pipelines can automatically test merge requests

Commits to a branch with a merge request cause multiple events:

  1. Push event to branch
  2. Merge request event

Use rules to decide which jobs to run when

GitLab offers $CI_PIPELINE_SOURCE with event name


Hands-On 1/

  1. Enable jobs lint, audit, build and test for merge requests and pushes

     job_name:
       rules:
       - if: '$CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_REF_NAME == "main"'
       - if: '$CI_PIPELINE_SOURCE == "merge_request_event"'
       #...
    

  2. Prevent deploy in merge requests

     job_name:
       rules:
       - if: '$CI_COMMIT_REF_NAME == "dev" || $CI_COMMIT_REF_NAME == "live"'
       #...
    


Hands-On 2/2

  1. Prevent trigger in merge requests

     job_name:
       rules:
       - if: '$CI_PIPELINE_SOURCE == "push" && $CI_COMMIT_REF_NAME == "main"'
       #...
    

  2. Check pipeline
  3. Create new branch
  4. Make dummy change in new branch
  5. Create merge requests
  6. Check pipelines and merge requests

(See new .gitlab-ci.yml)