Jenkins를 사용해 CI/CD 환경 구축해 보기(2)

dominic·2022년 5월 22일
0

Jenkins를 사용해 CI/CD 환경 구축해 보기(1)


Github Webhook 설정

Github은 repository에서 발생한 변경을 외부 서비스에 알리기 위해 Webhook 기능을 제공합니다. Webhook을 설정하고 해당 이벤트가 발생하면 등록된 URL에 요청을 전달하여 변경을 알립니다.

Webhook은 Github 프로젝트 페이지에서 Settings - Webhooks - Add webhook을 선택하면 설정이 가능합니다. Payload URL에는 요청을 전달할 Jenkins 서버의 주소에 /github-webhook/을 추가하고 pull request를 감지하기 위해 push event에 대한 hook을 설정하여 추가하면 됩니다.

설정을 추가하고 등록된 Webhook 목록을 눌러 Recent Deliveries 탭을 확인하면 요청을 Jenkins에 전달한 내역을 확인할 수 있습니다.

※ 만약 테스트 용도로 로컬에서 Jenkins 환경을 만들었다면 github에서 Jenkins에 접속이 가능하도록 공유기 설정에서 포트 포워딩 설정과 방화벽 설정을 진행해야 테스트가 가능합니다.


Jenkins에서 Github Webhook 적용하기

Github은 repository에서 발생한 변경을 외부 서비스에 알리기 위해 Webhook 기능을 제공합니다. Webhook을 설정하고 해당 이벤트가 발생하면 등록된 URL에 요청을 전달하여 변경을 알립니다.

Jenkins에서는 알림을 받으면 빌드 할 수 있도록 Build Trigger를 설정할 수 있습니다. 1편에서 만든 프로젝트의 구성 화면에서 Build Triggers를 GitHub hook trigger for GITScm polling으로 선택합니다.

다음으로 Pipeline을 설정합니다. Pipeline 스크립트인 Jenkinsfile을 Git에서 가져올 수 있도록 설정하고 Repository URL과 인증 정보, 빌드를 진행할 브랜치를 설정합니다.

이렇게 설정하면 Repository 변경 이벤트 발생 시 Jenkinsfile에 정의된 작업을 진행하게 됩니다.


Github 토큰 발급과 인증 정보 설정

Jenkins에서 Github 접근을 위해 인증 정보 설정이 필요한데, 이를 위해서 Github의 액세스 토큰을 발급받아야 합니다. 발급된 토큰으로 Jenkins에서 인증 정보를 등록하면 Jenkins에서 Github에 접근이 가능합니다.

토큰은 Github의 사용자 - Settings - Developer settings - Personal access tokens에서 Generate new token을 선택해 만들 수 있습니다.

토큰을 만들 때 액세스 범위를 설정해야 하는데 여기서는 repository와 hook에 대해 범위를 지정했습니다.

설정을 하고 하단의 Generate token 버튼을 누르면 토큰 값이 나타나게 됩니다. 토큰은 한 번만 확인이 가능하니 따로 값을 저장해 두거나 잃어버리면 다시 발급을 받아야 합니다.

토큰을 발급했으면 이제 Jenkins에서 정보를 추가해야 합니다. 인증 정보를 추가하는 페이지에서 Username과 Password를 사용하는 방식을 선택하고 Username에 Github ID를 Password에는 토큰 값을 넣고 저장하면 Jenkins에서 Github에 접근이 가능합니다.


이제 Repository에 push 이벤트를 발생시키면 잠시 뒤 Jenkins에서 빌드를 진행하는 것을 확인할 수 있습니다. 다음 포스팅에는 배포 과정을 정리하도록 하겠습니다.

0개의 댓글