GDG on Campus: SSWU 6th/Winter Blog Challenge

[Winter Blog Challenge] GitHub 앱과 Jenkins 연동으로 풀 리퀘스트 에러 자동 확인하기 (Chapter Member 강연주)

gdgoc-sswu 2025. 2. 26. 16:39

안녕하세요! 코드 리뷰 및 병합 과정에서 발생할 수 있는 오류를 미리 감지하고, 개발자에게 신속한 피드백을 제공하는 자동화 시스템 구축 방법에 대해 이야기하겠습니다. GitHub Jenkins를 연동하면, 풀 리퀘스트(PR)가 생성되거나 업데이트될 때마다 자동으로 빌드와 테스트가 실행되고, 에러 여부를 바로 확인할 수 있습니다.

 

1. 왜 자동화 테스트가 필요한가?

    코드 품질 향상:

자동화된 빌드와 테스트 환경을 통해, 개발자들은 코드 품질을 일정하게 유지할 수 있습니다. 에러가 발견되면 즉시 수정할 수 있어 전체 코드베이스의 안정성이 높아집니다.

    효율적인 협업:

팀원 모두가 PR의 상태(빌드 성공/실패)를 실시간으로 확인할 수 있어, 리뷰어와 개발자 간의 커뮤니케이션이 원활해지고, 문제 발생 시 빠른 대응이 가능합니다.

 

2. GitHub 웹훅 설정

GitHub Jenkins 간의 자동화 연동은 GitHub의 웹훅(Webhook) 기능을 통해 시작됩니다.

    웹훅 활성화:

GitHub 리포지토리의 Settings > Webhooks 메뉴로 이동합니다.

"Add webhook"을 클릭해 새로운 웹훅을 추가합니다.

    페이로드 URL:

Jenkins 서버의 엔드포인트를 입력합니다. 이 주소로 PR 생성, 업데이트 등의 이벤트가 전송됩니다.

    이벤트 선택:

"Let me select individual events"를 선택한 후, Pull Request 이벤트(생성, 업데이트, 리오픈 등)를 포함시킵니다.

    보안 설정:

Secret 키를 설정해 GitHub Jenkins 간의 안전한 통신을 보장합니다.


3. Jenkins
플러그인 및 연동 설정

GitHub와의 원활한 연동을 위해 Jenkins에서 몇 가지 플러그인을 설치하고 설정해야 합니다.

    플러그인 설치:

o    GitHub Branch Source Plugin 또는 GitHub Integration Plugin을 설치합니다.

o    이 플러그인들은 GitHub의 이벤트를 감지하고, 해당 이벤트에 맞는 파이프라인을 자동으로 트리거합니다.

    Jenkins Job 구성:

Jenkins에서 새로운 멀티 브랜치 파이프라인(Multi-branch Pipeline) 프로젝트를 생성합니다.

리포지토리 URL과 인증 정보를 입력하고, PR 이벤트에 의해 트리거될 수 있도록 설정합니다.

Jenkinsfile(파이프라인 스크립트)을 리포지토리에 추가해, 빌드, 테스트, 코드 분석 등의 작업을 정의합니다.

 

4. 빌드 파이프라인 구성 및 에러 리포팅

Jenkinsfile을 통해 자동화 파이프라인을 세부적으로 구성하여, 빌드와 테스트 결과를 GitHub PR 페이지에 반영합니다.

    파이프라인 스크립트 작성:

Jenkinsfile에는 다음과 같은 단계가 포함될 수 있음.

o    빌드 단계: 코드를 컴파일하고 필요한 라이브러리를 설치합니다.

o    테스트 단계: 유닛 테스트, 통합 테스트 등을 실행해 코드를 검증합니다.

o    코드 분석 단계: 정적 분석 도구를 통해 코드 품질을 평가합니다.

    에러 체크 및 상태 업데이트:

빌드와 테스트 결과에 따라 성공 또는 실패 상태를 판단합니다.

o    상태 체크: Jenkins는 결과를 GitHub Status API를 사용해 PR빌드 성공”, “테스트 실패등의 상태 메시지로 업데이트합니다.

 

GitHub 앱과 Jenkins 연동을 통한 자동 에러 확인 시스템은 DevOps 환경에서 매우 유용한 도구입니다. 이 시스템을 통해 풀리퀘스트마다 발생하는 문제를 빠르게 감지하고 대응함으로써, 코드 병합 전 단계에서 발생할 수 있는 위험 요소를 미연에 차단할 수 있습니다.

감사합니다.