18장. GitLab pipeline의 stage와 needs를 구분한다
GitLab 공식 CI/CD pipelines는 job이 독립 실행되고 stage는 순차, 같은 stage job은 병렬이며 needs로 dependency 기반 DAG를 만들 수 있다고 설명한다. stage를 조직 부서 이름으로 만들기보다 artifact 흐름을 표현한다.
test:
stage: verify
script: ["npm ci", "npm test"]
build:
stage: build
needs: [test]
script: ["npm run build"]
artifacts: { paths: [dist] }
artifact와 cache를 구분하고 expiry를 rollback window에 맞춘다. rules가 branch, tag, merge request에서 어떤 pipeline을 만드는지 CI Lint와 작은 fixture로 확인한다. 중복 branch+MR pipeline이 cost와 deployment race를 만들지 않게 한다.