简体   繁体   中英

Gitlab CI/CD: Setup variables relating to environment

I am working with gitlab version 14.10.5.

In the left panel, there is a "Deployments" icone that allow me to create environments. In a gitlab repository I want to set up pipeline for dev, stage and main branches relating to 3 environments.

In these environments, I want to setup specific variables that will chaneg over environments.

For example, I want the variable NINJA to be setup with the value:

  • "1" for the branch dev
  • "2" for the branch stage
  • "3" for the branch main

So, in my.gitlab-ci.yml I have:

build-testing:
  stage: build
  script:
    - echo "Hello team"
    - echo "$NINJA"
  environment:
    name: testing
  only:
    refs:
      - dev


build-staging:
  stage: build
  script:
    - echo "Hello team"
    - echo "$NINJA"
  environment:
    name: staging
  only:
    refs:
      - stage


build-production:
  stage: build
  script:
    - echo "Hello team"
    - echo "$NINJA"
  environment:
    name: production
  only:
    refs:
      - main

How to setup the variable NINJA in an environment, in gitlab?

You can set variable scope, so a variable with same name will return different values in in different envs.

  1. Navigate to Settings -> CI/CD
  2. In Variables section press "Add Variable"
  3. Set key as NINJA
  4. Set "Environment scope" with proper env, ie testing
  5. Repeat 2,3 and 4 with other envs (staging, production)

See also: https://docs.gitlab.com/ee/ci/environments/#scope-environments-with-specs

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM