
CI/CD 파이프라인을 구현할 수 있는 많은 소스 제어 엔진 및 빌드/배포 엔진이 있다. 그 중에서 깃허브를 소스 제어 저장소로 선택하고, 빌드 엔진으로는 젠킨스를 이용할 것이다.
CI : 빌드, 테스트
CD : 딜리버리, 디플로이(아르고 cd -> 쿠버네티스 Deploy)
딜리버리 : 컨테이너 레파지토리에 올리기.
디플로이 : 레파지토리 + 운영환경
Jenkins : CI/CD 플랫폼. 파이프라인 구축에 사용!
젠킨스란 CI/CD를 위한 오픈 소스 자동화 플랫폼이다.
파이프라인 구축에 활용!
미리 생성한 디렉토리에 준비한 docker compose yml파일을 넣고, power shell에서 docker compose 를 실행한다.
다음은, 로컬호스트 8000에 접속하여 비밀번호를 입력하고, 플러그인 설치! 설치 시간이 꽤 오래 걸린다.
Cf. 초기 비밀번호는 C:\server\jenkins\jenkins_home\secrets 디렉토리 initialAdminPassword 파일에 있다.
설치하는 플러그인은 다음과 같다.
Authentication Tokens API
Docker
Docker Pipeline
Generic Webhook Trigger
Git Parameter
Stage View
jdk, gradle, docker 디렉터리 등 설정
주의 : 띄어쓰기 조심!
도커 허브, 깃허브 토큰 등록
파이프라인 -> 젠킨스 파일에 코드 소스로 사용.
pipeline {
agent any -> 어디서 실행시킬 건지
environment {
// 환경 변수 정의
}
parameters {
// 파라미터 정의 (예: 선택값, 문자열 입력 등)
}
tools {
// 빌드 도구 정의 (예: JDK, Maven, Gradle 등)
}
options {
// 타임아웃, 로그 보존 등 파이프라인 옵션
}
stages { -> 컨테이너 개념
stage('Build') {
steps {
echo 'Build 단계'
// 빌드 명령어
}
}
stage('Test') {
steps {
echo 'Test 단계'
// 테스트 명령어
}
}
}
post {
always {
echo '항상 실행됨'
}
success {
echo '성공 시 실행됨'
}
failure {
echo '실패 시 실행됨'
}
}
}
Jenkins에서 빌드 트리거(Build Trigger)란 특정 조건이 충족되었을 때 자동으로 빌드를 시작하는 기능이다.
Jenkins는 GitHub 저장소를 주기적으로 감시(Polling) 하거나,
Webhook을 통해 GitHub로부터 알림을 받아
변경사항(Push)이 감지되면 자동으로 빌드를 실행한다.
Jenkins가 GitHub 저장소를 일정 주기로 검사 (예: 5분마다).
가장 최근 빌드 이후에 새 커밋이 존재하면,
자동으로 빌드를 트리거함.
젠킨스에서 이제 실행해보자.
new item 쪽을 클릭하면 여러 타입을 선택할 수 있다. 보통 폴더를 생성하고 그 안에서 파이프라인들을 여러개 생성하는 형식으로 사용한다고 한다.
총 6단계로 빌드가 되고, 하나라도 안되면 실패한다. 로그를 보면서 하나씩 문제를 해결하면 결국엔 push 성공!

