📌 목표
- Github의 Webhook을 구성하고 Jenkins와 연동 후에 Push Event 발생 시 자동으로 빌드가 진행되도록 해보자 !
▪ Github Webhook 구성
- Github Access Token 생성
- Github Repository - Setting - Webhooks - Add Webhook
- Payload URL
- 젠킨스 URL + /github-webhook/
- 외부에서 접근 가능한 도메인으로만 동작 가능 → ngrok 서비스 이용
- e.g.) http://jenkins.com/github-webhook/
- Content Type
- application/json
▪ Jenkins Credential 등록 및 관리
- Jenkins - Manage Credentials
- Credential 등록
- Username
- Github Username 입력
- Password
- Github Access Token 입력
- 생성 완료 !
▪ Jenkins Pipeline 프로젝트 구성
- Pipeline 프로젝트 생성
- Push Event를 감지할 깃허브 레포 정보 입력
- Github project 체크
- GitHub hook trigger for GITScm polling 체크
- Declarative 방식으로 파이프라인 작성
- agent
- pipeline 최상단에 위치하며 특정 job들을 수행할 agent
- 대표적으로 node, docker, kubernetes를 parameter로 포함
- stages
- 해당 pipeline이 동작할 때, 실행되는 단계를 의미
- 하나 이상의 stage를 정의
- stage 내부적으로 steps를 정의
- environment
- pipeline 내부에서 key-value 형태로 사용할 수 있는 환경 변수
- parameters
- pipeline 내부에서 특정 노드, 컨테이너를 실행시킬 때 변수를 제공해야 할 경우 사용
- agent
pipeline {
agent ansy
stages {
stage('Checkout') {
steps {
git branch: 'main',
credentialsId: 'github-repo-access-token',
url: '<https://github.com/Cucumber-web/Test-Webhook.git>'
}
}
}
}
- Webhook 트리거를 통해 빌드 작업을 자동화하기 위해서는 최초 빌드를 실행시켜줘야 한다.
- 최초 빌드 성공 !
▪ Github Webhook Trigger 발생 후 빌드 자동화 작업
- 앞서 설정한 레포에 간단하게 push event를 발생시켜보자
- 자동으로 빌드가 시작된다 !!!!
- 파드 로그를 살펴보면 Github Repo에서 PushEvent를 받아온 후
- 빌드 agent 파드를 생성 !
- 빌드 작업을 마치고 !
- 빌드 agent 파드를 종료하고 삭제 !
ref.
'CI/CD' 카테고리의 다른 글
Jenkins Back-End Dockerizing (0) | 2022.12.13 |
---|---|
Jenkins Back-End Gradle Build (0) | 2022.12.13 |
ArgoCD Helm 설치 & 테스트 (0) | 2022.12.10 |
Jenkins 환경 설정 및 빌드 테스트 (0) | 2022.12.09 |
Jenkins Helm 설치 (0) | 2022.12.09 |