데브옵스 전문 기업 인포그랩 사이트에서 작성한 가이드를 보는데 좋아서 참고하기
CICD를 도입하는 이유는 지속적 코드 수정이 일어나면서 배포 시 과정을 용이하게 하기 위해 사용한다.
시작전
- maintainer 또는 owner 권한이 필요하다.
- job을 실행할 수 있는 Runner가 있는지 확인한다. 없으면 설치하고 runner를 등록한다.
- .gitlab-ci.yml 파일을 프로젝트 루트에 생성한다.
.gitlab-ci.yml
: CI/CD에 대한 YAML 파일
ex) master 브랜치 외에 커밋할때 테스트 모음을 실행할 수 있다.
정의 내용
1. 러너가 실행해야 하는 job의 구조와 순서
2. 특정 조건이 발생할 때 러너가 내려야하는 결정
ex) .gitlab-ci.yml
- 4개의 job이 있는 상태
- stage대로 job이 순차실행된다.
- 단일 stage에서 job은 병렬로 실행된다.
- stage에서 벗어나 job을 실행하려면 needs 키워드를 사용한다.
- 각 job은 script를 포함한다.
- $GITLAB_USER_LOGIN 은 변수 형태이다.
- before script : 스크립트 시작 전 작업
- when: 언제 실행할 지 (수동클릭으로 진행하고 싶다면 -> manual)
build-job:
stage: build
only:
- master
before_script:
- echo 'build starts'
- chmod +x ./gradlew
script:
- ./gradlew clean build
artifacts:
paths:
- build/libs/*.jar
expire_in: 1 week
tags:
- gitlab-runner 생성시 작성한 Tag 명
when: manual
test-job1:
stage: test
script:
- echo "This job tests something"
test-job2:
stage: test
script:
- echo "This job tests something, but takes more time than test-job1."
- echo "After the echo commands complete, it runs the sleep command for 20 seconds"
- echo "which simulates a test that runs 20 seconds longer than test-job1"
- sleep 20
deploy-prod:
stage: deploy
script:
- echo "This job deploys something from the $CI_COMMIT_BRANCH branch."
environment: production
파이프라인과 job 상태 보기
- Build > Pipelines로 이동하면 위에서 build job 1개, test job 2개, deploy job 1개를 정의했으므로 총 3단계 stage 파이프라인이 표시된다.
- 1개인 경우 1개만 표시된다
728x90
반응형
'개발공부' 카테고리의 다른 글
데일리 스크럼이란? 회사에서 실제로 해본 후기 (0) | 2024.02.24 |
---|---|
성능 테스트 관련 용어 정리 (0) | 2023.05.29 |
테스트 주도 개발 TDD (Test Driven Development) (0) | 2023.03.04 |
프로세스 vs 스레드 차이점 그리고 멀티프로세스와 멀티스레드 (0) | 2023.02.05 |
프로그래머스 과제테스트 연습 사이트 (0) | 2023.02.05 |
댓글