목차
1. 깃허브 설정
2. 젠킨스 설정
이 글에서는 깃허브 웹훅을 설정하고, 이를 통해 젠킨스에서 CI/CD 파이프라인을 구성하는 방법을 안내합니다.
젠킨스 설치 방법은 다루지 않으며, 설정을 위한 기본적인 선행작업이 필요합니다.
선행 작업
젠킨스와 깃허브 연동을 위해 다음 준비가 필요합니다:
- 젠킨스 설치 후 깃허브 계정 설정
젠킨스 플러그인을 사용해 깃허브 계정을 등록합니다. - 아이피타임 DDNS 발급 및 포트 포워딩
- DDNS(예: yourdomain.iptime.org)를 통해 외부 접근이 가능하도록 설정합니다.
- 젠킨스 포트를 방화벽에서 해제합니다.
- 외부 도메인 접근 테스트
브라우저에서 http://<DDNS>:<PORT>로 젠킨스 접근이 가능한지 확인합니다.
1. 깃허브 설정
1.1. Webhooks 설정
- 깃허브 프로젝트의 Settings 메뉴로 이동합니다.
- 좌측 메뉴에서 Webhooks를 선택합니다.
- Add webhook 버튼을 클릭하고 아래와 같이 설정합니다:
- Payload URL: 젠킨스의 외부 도메인 입력 (예: http://<DDNS>:<PORT>/github-webhook/)
- Content type: application/json 선택
- 저장 후 Add webhook 버튼 클릭
설정 완료 후 Webhooks 목록에 추가된 항목을 확인할 수 있습니다.
1.2. 브랜치 설정
- 개발 브랜치: main
- 운영 브랜치: prod
개발 브랜치에서 작업을 진행한 후 prod로 머지하면, 웹훅을 통해 젠킨스에서 자동 빌드가 실행됩니다.
2. 젠킨스 설정
2.1. 새로운 프로젝트 생성
- 젠킨스에서 New Item을 선택합니다.
- 프로젝트 이름을 입력하고, Pipeline을 선택한 후 저장합니다.
2.2. 깃허브 연동
- Project URL: 깃허브 프로젝트 주소 입력
- GitHub hook trigger for GITScm polling 옵션 활성화
2.3. 파이프라인 스크립트 작성
아래는 샘플 파이프라인 코드입니다.
pipeline {
agent any
stages {
stage('Git Clone') {
steps {
git branch: 'prod', credentialsId: '<GITHUB_CREDENTIALS_ID>', url: '<GITHUB_REPO_URL>'
}
}
stage('Build') {
steps {
bat 'win_docker.bat'
}
}
}
}
주요 설정
- git branch: prod 브랜치로 설정
- credentialsId: 젠킨스에 등록한 깃허브 토큰 ID
- url: 깃허브 프로젝트 주소
- bat: 윈도우 환경에서 실행할 .bat 파일 (아래 참고)
2.4. bat 파일 내용
win_docker.bat 파일은 도커 명령어를 사용하여 기존 컨테이너와 이미지를 정리하고, 새로 빌드 및 실행합니다.
@echo off
chcp 65001 >nul REM UTF-8로 코드 페이지 설정
echo step 1: docker stop
docker stop sample-web 2>nul
if %ERRORLEVEL% neq 0 (
echo sample-web 컨테이너가 존재하지 않거나 이미 중지되었습니다.
)
echo step 2: docker remove
docker rm sample-web 2>nul
if %ERRORLEVEL% neq 0 (
echo sample-web 컨테이너가 이미 제거되었거나 존재하지 않습니다.
)
echo step 3: docker image remove
docker rmi sample-web 2>nul
if %ERRORLEVEL% neq 0 (
echo sample-web 이미지를 찾을 수 없거나 이미 삭제되었습니다.
)
echo step 4: docker-compose up --build -d
docker-compose up --build -d
2.5. 파이프라인 빌드 테스트
- 젠킨스에서 Build Now를 클릭하여 초기 빌드를 실행합니다.
- 코드 수정 후 prod 브랜치에 푸시하면 CI/CD 파이프라인이 자동으로 실행됩니다.
결론
이번 글에서는 깃허브 웹훅과 젠킨스를 활용한 CI/CD 파이프라인 설정 과정을 다뤘습니다.
이를 통해 코드 변경 사항이 prod 브랜치로 머지되면 자동으로 빌드 및 배포가 이루어지는 환경을 구성할 수 있습니다
** 함께 보면 좋은 글
2024.11.13 - [dev] - 젠킨스 SpringBoot build gradlew not found 에러
젠킨스 SpringBoot build gradlew not found 에러
목차1. 오류 원인2. 해결 방법1. 오류 내용- 젠킨스를 사용하여 spring boot를 docker로 빌드하고 배포하는 중, 다음과 같은 오류 발생하였습니다.0.377 /bin/sh: ./gradlew: not foundERROR: process "/bin/sh -c ./gradlew
wndud587.tistory.com
* 이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.
'dev > 기타' 카테고리의 다른 글
젠킨스 ERROR: Error fetching remote repo 'origin' 이슈 (2) | 2024.11.15 |
---|---|
젠킨스 저장소 위치 변경하는 법 (windows) (5) | 2024.11.14 |
젠킨스 SpringBoot build gradlew not found 에러 (1) | 2024.11.13 |
젠킨스 Couldn't find any revision to build (2) | 2024.11.12 |
MariaDB "ERROR at line 1: Unknown command '-'" 오류 해결하기 (3) | 2024.11.02 |