GitLab CI/CD · 설정 언어로서의 .gitlab-ci.yml · 퀴즈
퀴즈: 설정 파일의 문법
문항 6개. 정답과 해설은 풀어 본 뒤에 보여 드립니다.
파이프라인 설정을 화면이 아니라 저장소 안 파일로 두는 가장 큰 이득은?
- 웹 화면을 조작하는 것보다 타이핑이 빨라 설정 시간이 줄어든다
- 설정이 코드와 같은 커밋에 묶여 리뷰·이력·되돌리기가 그대로 적용된다
- 저장소 안에 있으면 러너가 잡을 더 빨리 가져가 대기 시간이 준다
- YAML 이 데이터베이스보다 저장 공간을 적게 써 비용이 준다
이름이 점(.)으로 시작하는 최상위 키의 성질로 옳은 것은?
- 주석으로 취급되어 YAML 파서가 그 블록을 통째로 무시한다
- 스테이지 이름을 적을 때만 쓸 수 있는 예약된 표기법이다
- 실행 대상에 올라가지 않고 extends 로 물려주는 조각이 된다
- 실행은 되지만 파이프라인 화면에만 표시되지 않는 잡이다
`script` 키가 없는 잡을 설정에 두면 어떻게 되는가?
- 설정 검증에서 거부되어 파이프라인 자체가 만들어지지 않는다
- 빈 잡으로 즉시 성공 처리되고 로그만 한 줄 남는다
- 바로 앞에 정의된 잡의 script 를 그대로 물려받아 실행한다
- 러너가 기본 셸만 열어 둔 채 대기 상태로 계속 남는다
`extends` 와 YAML 앵커(`&`/`*`)의 차이로 옳은 것은?
- 앵커는 여러 파일에 걸쳐 쓸 수 있고 extends 는 한 파일 안에서만 쓴다
- extends 는 매핑을 깊게 병합하고 앵커는 그 자리에 통째로 펼친다
- extends 는 잡 이름만 바꿀 수 있고 내용은 바꾸지 못한다
- 둘은 동작이 완전히 같고 표기법만 다르다
`default:` 블록이 하는 일은?
- 가장 먼저 실행할 잡을 지정해 파이프라인의 시작점을 정한다
- 실패한 잡을 다시 돌릴 기본 재시도 횟수만 모아 두는 자리다
- 기본 브랜치에서만 적용되는 설정을 따로 모아 두는 자리다
- 각 잡이 직접 정하지 않았을 때 적용될 바닥값을 모아 둔다
잡 하나의 키들을 세 갈래로 묶을 때 'stage·needs·rules' 가 함께 대답하는 질문은?
- 이 잡을 언제 돌릴 것인가
- 이 잡을 어디서 돌릴 것인가
- 이 잡이 무엇을 들고 돌 것인가
- 이 잡의 결과를 누가 볼 것인가