구성요소
- 버전 관리 시스템 : Git, SVN 등
- 브랜치 전략
- CI 도구 : 젠킨스, 뱀부 등
- 자동 빌드 도구 : 앤트, 메이븐 등
- 코드 커버리지 도구
- 정적 분석 도구
- 테스트 자동화 도구
- 바이너리 관리 도구
- 패키징 자동화 도구
지속적 배포 파이프라인
- 개발
- 빌드
- 단위 테스트
- 정적 코드 분석
- 통합 테스트
- 아티팩토리에 배포
- 테스트 환경에 배포
- 인수 테스트
- 성능 테스트
- 아티팩토리 승격
- 프로덕션 환경에 배포
젠킨스
설치 환경
- 서블릿 컨테이너
- 운영체제 위 스탠드얼론 형태
- 리버스 프록시 서버 뒤에서 실행
- 도커
윈도우 설치
jenkins 설치 후 localhost:port로 접속
서술적 파이프라인
- 노드 블록 : node(‘<파라미터>') {<구성성분>}구성성분>파라미터>
- 스테이지, 디렉티브, 스텝이 실행될 노드
- 여러개의 스테이지 블록, 디렉티브, 스텝으로 구성
- 파라미터로 any, 레이블 사용
- 스테이지 블록 : stage(‘<파라미터>') {<구성성분>}구성성분>파라미터>
- 스텝과 디렉티브 모음
- 여러 개의 노드 블록, 디렉티브, 스텝으로 구성
- 스테이지 이름을 필수 파라미터로 가짐
- 디렉티브
- 스테이지가 실행될 노드
- 환경 변수, 옵션, 파라미터, 트리거, 툴 등으로 구성
- 스텝
- 젠킨스에 실제 명령을 내림
- 명령어, 스크립트 등으로 구성
Jenkins File
CI 파이프라인을 정의하는 파이프라인 스크립트, 모든 브랜치에 대해 파이프라인을 자동으로 생성해주는 멀티브랜치 파이프라인 등을 정의하는데 사용
주요 플러그인
- Periodic Backup : 백업
- Blue Ocean : Jenkinsfile을 생성해 스크립트를 생성
Ngrok
로컬 서버를 외부와 통신 가능하게 해주는 서비스
설치 과정
- ngrok 다운
- ./ngork http 8080(윈도우/리눅스) 또는 nohup ./ngrok http 8080 &(리눅스) 실행(후자는 백그라운드 실행)
- Forwarding에 외부 URL이 출력된다. 이를 복사해 Jenkins 설정에서 Jenkins Location > Jenkins URL에 붙여넣는다.
- Webhooks 등을 등록할 때 외부 URL을 사용한다.