#infra
기본적으로 gitlab의 job 은 병렬로 실행된다. 별다른 설정이 없다면 병렬 작업이 기본이다. 그런데 아래의 경우를 생각해보자.
이 외에도 다른 여러 경우가 있을 수 있다. 그리고 이 경우들 모두 작업의 순서가 있어야한다는 의미를 내포한다. 이와 같은 경우에 사용할 수 있는 키워드가 stages
이다.
여러 job들의 순서를 지정하고, 그룹을 만들어 줄 수 있다. 그리고 이렇게 모여진 job들은 당연히 병렬로 실행된다.
5개의 기본 stages가 존재한다.
.pre
(항상 맨 처음 실행)build
test
deploy
.post
(항상 맨 마지막 실행)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).
job1
과 job2
는 test 라는 stage에 속해있음을 알 수 있다. 그러면 테스트 스테이지에서 job1과 job2가 병렬로 실행된다는 부분도 파악할 수 있다.
job3은 job1과 job2가 모두 끝나야지 진행될 것이란 점을 확인할 수 있다.