Gitlab CI/CD - Make Stage by Branch Name

Gitlab을 현재 SOA와 연결해서 사용 중인데 Branch 이름으로 Stage를 분개해야 할 상황이 생겼다 (아래 링크는 Gitlab 과 EAI관련 Posting 임)

링크 : EAI with Gitlab


이번 포스팅은 Branch 생성 시 Branch Name에 특정 문구가 있을 시 별도 Stage가 생성되는것을 공유 드리고자 한다


Gitlab의 CI/CD를 사용하려면 gitlab-ci.yml 을 이용해야하며, Pipeline에 Stage 별로 Job이 생성 된다

예를 들어보자

1. gitlab-ci.yml 파일 생성

stages:

  - deploy

  - approve

  - deploy_prd


deploy_imsi:

  stage: deploy

  tags:

   - Integration

  script:

   - echo "Deploy"

  when : manual


deploy_pi_test:

  stage: deploy

  tags:

   - Integration

  script:

   - echo "Deploy"

  when : manual


deploy_qas:

  stage: deploy

  tags:

   - Integration

  script:

   - echo "Deploy"

  when : manual

   

deploy_test:

  stage: deploy

  tags:

   - Integration

  script:

   - echo "Deploy"

  when : manual

 

approve:

  stage: approve

  tags:

   - Integration

  script:

   - echo "Approve"

  when : manual

   

deploy_big:

  stage: deploy_prd

  tags:

   - Integration

  script:

   - echo "Deploy PRD"

  when : manual

   

deploy_prd:

  stage: deploy_prd

  tags:

   - Integration

  script:

   - echo "Deploy PRD"

  when : manual


2. 위 gitlab-ci.yml 파일 기준으로 아래 그림과 같이 3개의 Stage(Deploy, Approve, Deploy_prd)와 7개의 Job이 생성 됨



그럼, Branch 생성 시 Branch Name에 DR 이란 문구가 있으면, Deploy_dr Stage가 추가로 생성하려면 위 gitlab-ci.yml 파일에서 다음을 추가 해 주면 된다

deploy_DR:

  stage: deploy_dr

  tags:

   - Integration

 only:

    variables:
      - $CI_COMMIT_REF_NAME =~ /DR/

  script:

   - echo "Deploy DR"

  when : manual


(

위 $CI_COMMIT_REF_NAME 는 Gitlab CI/CD 동작 시 Branch Name의 정보 값이다

-> gitlab-ci.yml 파일에서 아래를 추가 하면 Job 실행 시 Log를 볼 수 있음

variables:

     CI_DEBUG_TRACE: "true"

)

default/Project1/1.0/DR 라는 Name의 Branch를 생성 하면..아래 그림과 같이 Deploy_dr이란 Stage가 생성 된다!!!



감사합니다 :)


이 블로그의 인기 게시물

우리집 인테리어 공개(광명 이편한세상 25평)

소노벨 비발디파크 맛집 바베큐단월620 "캠핑 감성"

SAP Netweaver Developer Studio with PI