젠킨스를 설치하고 실행합니다.
Jenkins 관리 > Manage Credentials > global > Add Credentials
Username
: GitHub계정명
Password
: GitHub계정토큰
ID
: 현재 생성하는 Credential ID(원하는 이름을 사용하면 됩니다. 저는 github_access_token으로 하였습니다.)
Settings > Developer settings > Personal access tokens
토큰은 최초 생성시에만 확인할 수 있으므로 저장해두어야합니다.
ngrok를 설치합니다.
ngrok에 회원가입하여 인증토큰을 받아 등록합니다.
현재 젠킨스의 실행중인 주소는 http://localhost:8080/ 입니다.
웹훅을 로컬에서 구동되는 젠킨스로 보내주기 위해서 외부에서 접근가능한 주소가 필요합니다.
8080포트에 ngrok을 실행하여 외부에서 접근 가능한 주소를 생성합니다.
웹훅을 설정하려는 레포지터리의 Settings > Webhooks 에서 Add webhook을 누릅니다.
PayloadURL에 위에서 생성한 젠킨스의 주소를 넣습니다.
url의 마지막에 /github-webhook/
을 붙여줍니다.
대쉬보드에서 새로운 Item을 누르고 원하는 이름의 파이프라인을 생성합니다.
GitHub project를 체크하고 웹훅을 보내는 레포지터리의 url를 입력합니다.
GitHub hook trigger for GITScm polling 를 체크합니다.
아래의 Declarative 방식으로 작성된 Pipeline 스크립트를 붙여넣습니다.
pipeline {
agent any
stages {
stage('Checkout') {
steps {
git branch: 'main',
credentialsId: 'github_access_token',
url: 'https://github.com/LaStella/practice-cicd.git'
}
}
}
}
지금 빌드를 눌러 최초 빌드를 수행하고 정상적으로 작동하는지 확인합니다.
저는 레포지터리를 Private로 설정하여 오류가 발생하였습니다. 이후 Public으로 수정하여 해결하였습니다.
최초 빌드가 성공했다면 웹훅을 보내는 레포지터리에 새로운 커밋을 작성하여 확인합니다.