.gitlab-ci.yml 파일 stages 키워드

Regular Kim·2025년 9월 9일
0

기타

목록 보기
19/19

#infra

기본적으로 gitlab의 job 은 병렬로 실행된다. 별다른 설정이 없다면 병렬 작업이 기본이다. 그런데 아래의 경우를 생각해보자.

  • 특정 작업 전 다른 작업을 해야하는 경우
  • 특정 종류의 작업들을 그룹으로 지정해야 하는 경우
  • 특정 작업 실패시 후속 동작을 지정해야 하는 경우

이 외에도 다른 여러 경우가 있을 수 있다. 그리고 이 경우들 모두 작업의 순서가 있어야한다는 의미를 내포한다. 이와 같은 경우에 사용할 수 있는 키워드가 stages 이다.

stages

여러 job들의 순서를 지정하고, 그룹을 만들어 줄 수 있다. 그리고 이렇게 모여진 job들은 당연히 병렬로 실행된다.

  • stages -> 순서대로 실행됨
  • stage 내부의 jobs -> 병렬로 실행됨

기본 stages 키워드

5개의 기본 stages가 존재한다.

  1. .pre (항상 맨 처음 실행)
  2. build
  3. test
  4. deploy
  5. .post (항상 맨 마지막 실행)

stages를 명시하면 기본 stages는 무시된다.

stages 사용하기

stages:
	- build
	- test
	- deploy
	  
job1:
	stage: test
	script:
		- echo script1

job2:
	stage: test
	script:
		- echo script2
		  
job3:
	stage: deploy
	script:
		- echo script3

stages에 build, test, deploy 3개가 작성돼있다. 기본 stages 는 비활성화되고, 명시된 stages만 설정된다. 즉, 이 파이프라인에서는 3개의 stage를 진행한다고 이해할 수 있다. stages의 진행은 작성된 순서대로, 위에서 아래로 진행된다(build -> test -> deploy).

job1job2는 test 라는 stage에 속해있음을 알 수 있다. 그러면 테스트 스테이지에서 job1과 job2가 병렬로 실행된다는 부분도 파악할 수 있다.

job3은 job1과 job2가 모두 끝나야지 진행될 것이란 점을 확인할 수 있다.

profile
What doesn't kill you, makes you stronger

0개의 댓글