CI pipeline 에서 머지 리퀘스트 발생시마다 테스트 환경을 동적으로 생성할수 있다.
반대로 그렇게 테스트된 환경 형상이 마스터 브랜치 혹은 develop 로 머지될때 동적인 환경을 제거할 수 있다.
아래는 deploy review job 이 중지되면 stop review 잡을 시작하는 ci 설정이다.
머지 리퀘스트가 생성되면 deploy review 가 활성화되고
머지되면 stop review 잡이 활성화 된다.
variables:
$VITEPRESS_DOC_ROOT=./.vitepress/dist
deploy review:
stage: deploy
only:
- merge_requests
environment:
- name: reviews/$CI_COMMIT_REF_NAME
- url: https://aggressive-language-$CI_COMMIT_REF_NAME.surge.sh
- on_stop: stop review
before_script:
- corepack enable
- SHELL="$(which bash)" pnpm setup
- source /root/.bashrc
- pnpm add -g surge
script:
- surge --project $VITEPRESS_DOC_ROOT --domain aggressive-language-$CI_ENVIRONMENT_SLUG.surge.sh
stop review:
stage: deploy
only:
- merge_requests
variables:
GIT_STRATEGY: none
environment:
- name: reviews/$CI_COMMIT_REF_NAME
- url: https://aggressive-language-$CI_COMMIT_REF_NAME.surge.sh
- action: stop
before_script:
- corepack enable
script:
- SHELL="$(which bash)" pnpm setup
- source /root/.bashrc
- pnpm add -g surge
- surge teardown aggressive-language-$CI_ENVIRONMENT_SLUG.surge.sh
when: manual
주요한 것은 environment 의 on_stop, action 키워드다.
environment 의 name 은 각각 트리깅 하는 잡과 액션을 진행하는 잡이 동일해야 한다.
아래는 참고 링크
https://docs.gitlab.com/ee/ci/environments/index.html#stop-an-environment-when-a-branch-is-deleted
https://docs.gitlab.com/ee/ci/yaml/index.html#environmenton_stop
https://docs.gitlab.com/ee/ci/yaml/index.html#environment
'코드 > CI-CD-Docker' 카테고리의 다른 글
[CI/CD] YAML Anchor (0) | 2024.07.30 |
---|---|
[CI/CD] YAML 기본 (0) | 2024.07.30 |
[Docker] Container 및 image에 이름, 태그 지정하기 (0) | 2024.07.16 |
[Docker] 실행중인 docker container 로부터 파일 복사하기 (0) | 2024.07.15 |
[Docker] 이미지 구성 살펴보기 (0) | 2024.07.10 |