Setting Up GitLab CI/CD for Different Branches

Introduction

Elevate your development workflow by automating code testing and deployment with GitLab CI/CD. In this comprehensive guide, we’ll walk you through creating a GitLab CI/CD configuration file (gitlab-ci.yml). This configuration file executes different jobs based on whether the code is pushed to the main branch or a feature branch.

YAML Configuration File

Dive into a complete example of a GitLab CI/CD configuration file:

stages:
  - build

variables:
  MY_VARIABLE: "Hello, World!"

before_script:
  - echo "Setting up the environment..."

job_main_branch:
  stage: build
  script:
    - echo "Running this job on the main branch"
    - echo "Accessing the variable MY_VARIABLE: $MY_VARIABLE"
  rules:
    - if: '$CI_COMMIT_BRANCH == "main"'
      when: always

job_feature_branch:
  stage: build
  script:
    - echo "Running this job on a feature branch"
    - echo "Accessing the variable MY_VARIABLE: $MY_VARIABLE"
  rules:
    - if: '$CI_COMMIT_BRANCH != "main"'
      when: always

Explanation:

  • stages: Defines different stages in the pipeline. In this example, we’ve focused on a single stage named “build.”
  • variables: Establishes global variables accessible by all jobs. Here, MY_VARIABLE carries the value “Hello, World!”
  • before_script: Incorporates commands executed before each job. Here, we emphasize the importance of setting up the environment.
  • job_main_branch: Specifies a job that runs exclusively on the main branch. The rules section guarantees the job runs only if the commit branch is “main.”
  • job_feature_branch: Outlines a job that operates on feature branches. The rules section ensures the job runs if the commit branch is not “main.”
  • script: Contains the commands executed by the job. In this instance, it delivers messages indicating the branch being processed and accesses the global variable.

Using Variables

Leverage variables in GitLab CI/CD to define values reused across jobs. Here, the variable MY_VARIABLE serves as an example. To access this variable within a job, utilize the syntax $VARIABLE_NAME.

Secrets

GitLab CI/CD enables the secure storage of sensitive information using secrets. To access secrets within a job, utilize the syntax $CI_JOB_TOKEN for predefined variables or $CI_JOB_TOKEN for custom variables.

Explore an example of using a secret in your job:

job_using_secret:
  stage: build
  script:
    - echo "Using secret API_KEY: $CI_JOB_TOKEN"
  rules:
    - if: '$CI_COMMIT_BRANCH == "main"'
      when: always

In this example, $CI_JOB_TOKEN is used to access a secret named API_KEY. Ensure the definition of secrets in the GitLab project settings.