본문 바로가기
Backend/Backend 관련 학습 내용

[BackEnd] CI/CD Jenkins

by pjhcsol 2024. 4. 15.

 Jenkins, git WebHook, CI/CD

  • 요약
    1. Jenkins: Jenkins는 지속적 통합(Continuous Integration, CI) 및 지속적 배포(Continuous Deployment, CD)를 지원하는 오픈 소스 자동화 도구.
    2. Git 웹훅: Git 웹훅은 Git 저장소에서 발생하는 이벤트를 트리거로 하여 특정 URL로 HTTP POST 요청을 보내는 기능. 예를 들어, 코드가 푸시되거나 브랜치가 업데이트되는 등의 이벤트가 발생하면 Git 웹훅이 설정된 URL로 이벤트 정보를 전송.
    3. CI/CD (Continuous Integration/Continuous Deployment): CI/CD는 소프트웨어 개발 프로세스의 일환으로, 지속적으로 소스 코드를 통합하고 테스트하며, 성공적으로 테스트된 코드를 자동으로 배포하는 방법론이다. CI는 개발자들이 소스 코드를 공유 레포지토리에 푸시할 때마다 자동으로 코드를 빌드하고 테스트하는 것을 의미하며, CD는 빌드 및 테스트를 성공적으로 통과한 코드를 실제 환경으로 배포하는 것을 의미함.
    Jenkins를 사용하여 CI/CD 파이프라인을 구축할 때, Git 웹훅을 설정하여 Git 저장소의 이벤트를 트리거로 하여 Jenkins에서 빌드 및 배포 작업을 자동으로 수행하게끔 구성 완료

 

 

  • Jenkins 동작방법

$ brew services start jenkins // 젠킨스 시작

$ brew services stop jenkins // 젠킨스 종료

$ brew services restart jenkins //젠킨스 재시작

# 삭제

brew remove jenkins

 

젠킨스 서버 UI에 접속한다. (만약 로컬에서 띄웠다면 localhost 입력하면 됩니다.)

- http://[젠킨스 서버 IP]:8080/

 

 

포트변경

cd /opt/homebrew/opt/jenkins

vim homebrew.mxcl.jenkins.plist

코드:

아래 httpPort 부분을 실행하려는 포트 번호로 수정한다. (default: 8080) 

insert ->a누르면 수정가능

 

<string>--httpListenAddress=127.0.0.1</string>

                <string>--httpPort=8080</string> <!-- 포트 수정 -->

 

->현재 <string>--httpPort=9090</string> 수정함

esc+ :wq! 저장 나가기

 

 

추가로 스케줄을 사용하여 10분마다 자동 빌드 명령어 → H/10 * * * *

 

주기적으로 빌드하려면 Build Schedule 사용 (Item 상세  빌드 유발)

매일 오전 5시에
00 05 * * *

1시간마다
H * * * *

10분마다
H/10 * * * *

월~금요일, 오전 9시~오후 6시, 1시간마다
H 9-18/1 * * 1-5

일요일, 1시간마다
H * * * 7

 

 

 

 

웹훅 설정 참고:https://github.com/pjhcsols/AbnormalBehaviorDetection_System/settings/hooks