젠킨스를 이용해 Git의 변경사항이 있으면 자동으로 빌드되도록 해보자!
들어가며
이번 포스팅에서는 젠킨스를 이용해 깃의 변경된 내용이 있으면 Jenkins가 감지해 자동으로 빌드하는 방법을 알아보도록 하겠습니다.
실습 내용
1.개발자가 깃에 push을 한다
2. 젠킨스가 깃의 변경한 내용이 있는지 확인한다, 변경한 내용이 있다면 빌드를 한다. 없다면 빌드를 하지 않는다.
방법
Git을 어느 정도 사용한다는 전재하에 진행하겠습니다.
깃을 모르신다면 저의 리파지토리를 그대로 사용해서 진행하시면 되겠습니다.
깃 사용법 잘 모를 시에 따라 해 주세요!
(git bash나 powershell 있을 시 없다면 다운로드 후 진행)
powershell이나 gitbash 실행
1) 복제할 디렉터리로 이동해 아래 명령어 작성
"git clone https://github.com/CHISANW/devops-automaion"
복제된 파일을 IDE로 실행
2) 깃 파일 생성
git add.
3) 깃 연결
"git remote add origin https://github.com/CHISANW/devops-automaion"
4) 코드 작성 후 커밋
git commit -m <커밋 메시지 작성>
5) 커밋한 파일 깃에 푸시하기
git push origin main
다음과 같이 진행 후 따라 해보시면 되겠습니다.
Create a job클릭
사용할 이름을 작성한 후에
Freestyle project선택 후(간단한 변경감지만 하는 것을 연습하는 포스팅이기 때문에 선택)
ok클릭
GitHub project 클릭 후 사용할 리파지토리의 주소를 입력해 줍니다.
(깃 주소가 없을 시에는 https://github.com/CHISANW/devops-automaion 입력)
소스 코드 관리 이동
Git 클릭
Repositry URL에 에 리파지토리 주소 작성
(깃 리파지토리 주소가 없을시에는 https://github.com/CHISANW/devops-automaion 입력)
Credentials 자격증명이 필요하다면 ADD를 클릭해 생성 후에 적용하면 된다. 지금은 누구나 할 수 있도록 자격증명을 하지 않았습니다.
현재 브랜치는 main으로 되오 있기 때문에 main으로 변경
빌드 유발로 이동해.
PollSCM 옵션을 클릭합니다 이 옵션은 Jenkins가 소스 코드 저장소(Git, SVN 등)의 변경 사항을 주기적으로 확인하여 변경이 감지되면 빌드를 트리거합니다.
cron 표현식을 사용해 매분마다 감지하도록 * * * * * 을 작성해 줍니다. 환경에 따라 다르게 적용할 수도 있습니다.
빌드 후 조치로 이동해 줍니다. 그 후 추가버튼을 클릭해 E-maail Notification을선택해 빌드 실패 시 이메일을 통해 알려주도록 합니다.
모두 작성하면 save을 클릭해 메인페이지로 이동합니다.
"지금 빌드"를 클락하고 나면 아래 #1번이 뜨는데 클릭해 Console Output 클릭 후 success가 뜬다면 성공!
이제 깃 라파지토리에 한번 코드를 변경해서 푸시를 해보자
"test commit"로 코드를 변경
그럼 jenkins가 1분에 한 번씩 변경감지를 시작해 변경한 내용이 있어 #3 빌드를 새롭게 시작합니다. #3이 콘솔 내용을 보
변경한 커밋메시지 "test commit"가 나오며 SUCCESS 가 됐다는 것을 볼 수 있다.
정리
이렇게 젠킨스를 이용해 깃의 변경내용을 감지해 자동으로 빌드하는 방법을 알아보았습니다.
젠킨스를 이용하면 개발자가 귀찮은 빌드 과정을 자동화해주며 개발의 생산성을 향상할 수 있다는 것을 볼 수 있습니다.
감사합니다.
'Devops' 카테고리의 다른 글
[Git] git 실수로 올린 commit 및 push 취소 및 add 취소하는 방법 (1) | 2024.03.08 |
---|---|
[Git] Git bash CLI 명령어 모음 (0) | 2024.03.03 |
[Jenkins] "String Parameter"와 "Secret File"을 활용하여 YAML 및 Properties 파일의 민감한 정보 보호하기 (0) | 2024.02.27 |
[Jenkins] 로컬 Docker(Docker HUB) +Jenkins(pipeline)+Git(Webhook)+MySQL CI/CD 자동 배포하기 (1) | 2024.02.27 |
[Jenkins] 젠킨스와 CI/CD란 무엇인가? (0) | 2024.02.24 |