[Jenkins] Git 자동 풀링 프로젝트
🚧

[Jenkins] Git 자동 풀링 프로젝트

Tags
CI/CD
Jenkins
Setting
작성일
Author
URL
 
notion image
안녕하세요! 젠킨스를 설정하여 프로젝트를 효율적으로 관리하고 Git 변경 사항을 자동으로 업로드하는 방법에 대해 알아보려고 합니다. 함께 효율적인 프로젝트 관리를 위해 시작해봅시다!
💡
사전 준비 사항 1. 원격 SSH Server 등록 2. 프로젝트 Item 생성
 

📌 젠킨스 프로젝트 GIT 연동

notion image
  • 프로젝트의 Configuration으로 이동
  • 소스 코드 관리 클릭
 
notion image
  • Repositories URL: 깃 허브 URL
  • Credentials: 깃 허브 계정
💡
Credentials 아래 Add 클릭하여 git 서버에 사용할 수 있는 계정으로 등록해야지 인증 오류 나지 않아요!
 

📌 Git 웹훅 연동

관리하는 깃에 푸시가 일어나면 자동으로 프로젝트가 감지해서 원하는 서버에 소스를 자동으로 배포를 해야겠죠!? 웹훅 기능을 이용해서 프로젝트가 감지할 수 있도록 세팅해볼게요.
저는 YONA라는 소스형상관리 + 이슈 트래킹 솔루션을 사용하고 있어서 깃허브와는 다를 수 있어요.
 
■ 젠킨스 계정 API 토큰 발급
notion image
  • 상단 프로필을 클릭해서 계정의 설정 화면에 접속
  • 하단의 “Add new Token” 을 클릭해서 API 토큰을 발급해주세요.
 
■ 젠킨스 프로젝트 토큰 설정
notion image
  • 프로젝트 Configure 접속
  • [빌드 유발] 클릭
  • 빌드를 원격으로 유발 Authentication Token 항목에 원하는 토큰 네임을 입력해주세요.
  • 하단에 설명 된 URL을 깃허브 웹훅 기능에 연동하면 됩니다!
💡
http://{jenkins ID}:{API 토큰}@/job/{프로젝트명}/build?token={프로젝트 토큰} EX) http://admin:234523454325345@192.168.101.226:8080/job/test/build?token=test
💡
젠킨스 웹훅 감지 테스트 curl -X post http://admin:234523454325345@192.168.101.226:8080/job/test/build?token=test
 

📌 Git 변경된 파일만 등록 서버에 자동 배포 설정!

앞서 설명한 내용까지 진행하셨으면 웹훅을 통해 젠킨스가 깃의 내용이 변경되었다는 걸 감지하는 부분까지는 완료가 되었습니다! 다음으로는 실제로 변경된 파일만 원하는 서버에 배포해야겠죠?
젠킨스 대시보드에서 해당 프로젝트의 구성으로 접속해주세요!
 
■ Build Steps → Execute Shell 소스 추가
notion image
if [ ! -e "revision.txt" ]; then git rev-parse HEAD > revision.txt fi rm -rf jenkins_deploy/ mkdir jenkins_deploy FILES=$(git diff --no-renames --name-only HEAD $(cat revision.txt)) for f in $FILES; do if [ -f "$f" ]; then echo $f | cpio -pmdvl ./jenkins_deploy else echo $f is a deleted file fi done
 
■ 배포 대상 서버 설정
notion image
  • Source files: jenkins_deploy 디렉토리 하위 파일 전체
  • Exec command: 배포 이후 파일 삭제
# Exec Command # 배포 이후 배포 파일 삭제 cp -rp /home/unet/design/jenkins_deploy/* /home/unet/design rm -rf /home/unet/design/jenkins_deploy/*
 
notion image
  • 프로젝트 Execute shell에 깃 변경 사항 파일 목록 저장
git rev-parse HEAD > revision.txt
 
이제 소스 자동 배포를 위한 모든 준비가 끝났습니다! 깃에 푸시가 일어나면 젠킨스로 웹훅을 전송하고 원격지 SSH 서버에 소스를 자동으로 배포할거에요! 언제든지 궁금한 점이 있으면 물어보세요! 함께 공부하고 성장하는 즐거움을 나눠요. :)

이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.

댓글

guest