uuuhhh
아주조코
uuuhhh
  • 전체 (68)
    • Cloud (22)
      • AWS (17)
      • NCP (4)
      • Tech (1)
    • Kubernetes (16)
    • Docker (1)
    • CI/CD (13)
    • Network (4)
    • OS (10)
      • Linux (9)
      • Concepts (1)
    • Language (0)
      • Golang (0)
    • Project (1)
      • Drone (1)
    • 요모조모 (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

  • ⚠️ 2022/11/08 - 11/13 블로그 이관 작업 ⋯

인기 글

태그

  • minikube
  • CI
  • AWS
  • ncp
  • NodePort
  • LoadBalancer
  • argocd
  • Jenkins
  • docker
  • kubernetes
  • build
  • network
  • 데이터베이스
  • Iam
  • pod
  • EC2
  • Linux
  • Instance
  • service
  • NKS

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
uuuhhh

아주조코

Jenkins Webhook 연동
CI/CD

Jenkins Webhook 연동

2022. 12. 12. 09:41

📌 목표


  • 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 내부에서 특정 노드, 컨테이너를 실행시킬 때 변수를 제공해야 할 경우 사용
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.


젠킨스(Jenkins) GitHub Webhooks 연동

Pipeline Syntax

저작자표시 (새창열림)

'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
    'CI/CD' 카테고리의 다른 글
    • Jenkins Back-End Dockerizing
    • Jenkins Back-End Gradle Build
    • ArgoCD Helm 설치 & 테스트
    • Jenkins 환경 설정 및 빌드 테스트
    uuuhhh
    uuuhhh
    피땀눈물의 삽질기

    티스토리툴바