https://everyday-spring.com/628
지난 글에서는
Docker, Jenkins 설치, Github 토큰을 발급받았다
발급받은 토큰을 사용해 Git repository의 정보를 가져오고 빌드까지 해보자!!
Jenkins에 Github token 등록하기
웹에서 젠킨스에 접속한다
현재 로컬에 설치했기 때문에
localhost:8080에 접속한다
Jenkins 초기 설정시 입력한 계정 정보를 입력한다
Jenkins 관리 > Credentials
(global) 클릭
+ Add Credentials 클릭
세칸을 필수로 채워준다
Password에 GitHub에서 발급받은 token을 입력한다
ID는 github로 만들었다 (아무거나 상관없음)
github Credential은 Git repository에 접근해서 checkout할 때 사용한다
Jenkins Pipeline GitHub Repository pull, build 하기
새로운 아이템을 등록한다
이름을 설정하고 pipeline을 선택
GitHub project (대상 repository 주소 입력)
GitHub hook trigger for GITScm polling
두 항목 체크
pipeline {
agent any
stages {
stage('checkout') {
steps {
git branch: 'main',
credentialsId: 'github',
url: 'https://github.com/[GitHub Repository url].git'
}
}
stage('build') {
steps {
sh '''
echo 'start build'
chmod +x gradlew
./gradlew clean build -x test
'''
}
}
}
}
pipeline {
agent any
stages {
stage('checkout') { // 작업 이름, 자유롭게 입력
steps {
git branch: 'main', // 가져올 대상 Branch명
credentialsId: 'github', // Jenkins에 등록한 Github Credential ID
url: 'https://github.com/[GitHub Repository url].git' // repository 주소
}
}
stage('build') {
steps {
sh '''
echo 'start build' // 단순 출력문
chmod +x gradlew // 폴더에 대한 접근권한을 설정
./gradlew clean build -x test // 빌드!!
'''
}
}
}
}
build 명령을 사용하면 테스트까지 진행되고
bootJar 명령을 하용하면 test를 제외하고 실행에 필요한 부분만 빌드된다
(프로젝트 문제로 test에서 오류가나서.. 임시로 제외했다...
파이프라인까지 작성했다면
빌드 Build History에 넘버링된 번호를 클릭하면 상세정보를 확인할 수 있다
(날씨로 실행상태가 나타난다 잘돌아가면 해가 쨍쨍하다... 흐린건.. 무수히 많이 쌓인 도전의 흔적..)
실행된 Stages에 대한 상세정보
Console Output에서 log를 확인할 수 있다
log를 확인해보면 pipeline에 설정된
checkout과 build가 정상실행되었다!
야호!
ngrok 주소 발급하기
GitHub에서 Webhook을 날려주려면 jenkins 서버 주소를 입력해야하는데
localhost:8080은 입력할 수 없다
https://download.ngrok.com/windows?tab=download
ngrok을 설치하고 localhost에 연결되는 주소를 발급받아보자
회원가입하고 Authtoken 을 복사한다
다운받은 ngrok을 실행해서 계정을 설정해준다 (window 설치파일 기준 실행하면 shell이 열림)
ngrok config add-authtoken $YOUR_AUTHTOKEN
ngrok http 8080
계정 설정 후 포트정보와 함께 명령어를 입력하면 외부접근 가능한 주소를 발급해준다
But, 무료계정의 경우 저 발급받은 링크가 얼마안간다..
(나는 그냥 귀찮아서 로컬 pc를 포트포워딩 했다...)
GitHub Jenkins Webhook settings
GitHub Repository Settings
Webhooks에 ngrok에서 발급받은 주소 (포트를 포함해서 발급받았기 때문에 포트 생략)
또는 젠킨스 서버의 public 주소를 넣어준다! (포트까지 적어줘야한다)
그리고 뒤에 /github-webhook/ 을 입력!
여기까지 설정해주면 Jenkins에 지정해둔 브랜치에 변화가 있을때 마다 자동으로 pipeline이 실행된다!!
이렇게 했는데 생각해보니 로컬에서 할일이 아니었다
응 다시해~ 서버에 docker 설치부터~
'TIL' 카테고리의 다른 글
AWS EC2에 Docker Jenkins 설치, Github Webhook 연동 (2) | 윈도우 PuTTY EC2 연동하기 | EC2 메모리 스왑 (1) | 2024.11.02 |
---|---|
AWS EC2에 Docker Jenkins 설치, Github Webhook 연동 (1) | 최종_최최종_찐막_찐찐막 (0) | 2024.11.02 |
Window PC에 Docker, jenkins 설치, GitHub 연동하기 (1) | 난 대학시절 삽질을 전공했단 사실 (6) | 2024.10.28 |
왜 시스템 이미지라고 할까? Docker 를 학습하며 궁금했다 (1) | 2024.10.27 |
지랄 아니고요 지라입니다 Jira로 프로젝트 관리하기 Github 연동 (0) | 2024.10.27 |