[목차]
0. 사전준비
1. 젠킨스 관리 설정
2. 젠킨스 새로운 아이템 생성 및 설정
3. github webhooks 설정
깃헙(github)에 코드를 push하면 젠킨스(jenkins) 서버를 통해 자동 빌드하는 걸 해보자.
배포는 너무 길어져서 다음 글에서 진행.
0. 사전준비
- 젠킨스 서버에서 git 설치
sudo yum install -y git
- private 프로젝트로 테스트 하시는 분들은 아래 토큰 준비
- github 메뉴에서 Settings 클릭
- 좌측 메뉴 제일 하단에 개발자 세팅 클릭
- 클래식하게 만들어 봄
- Note명과 Expiration, Scopes를 정해주고 Generate token. 만기일은 원하는 대로.
- 토큰 발급. 주의할 점은 현재 페이지를 벗어나면 토큰값은 다신 못 봄.
1. 젠킨스 관리 설정
- github server 추가
- 위에서 만들었던 토큰 권한 추가
- 테스트 커넥션 통과 확인
참고로 이렇게 만든 credential 정보는,
Jenkins 관리 > Manage Credentials 메뉴에서 모두 확인하고 생성/수정/삭제 등 관리 가능하다.
2. 젠킨스 새로운 아이템 생성 및 설정
- 이름 설정하고 Freestyle project 생성
- 요샌 파이프라인 설정을 많이 이용하는 듯(추가 포스팅 예정)
- 연결할 github project url을 입력
- 관리하려는 소스 코드의 git repository url과 credentials 입력
- Failed to connect to repository : Error performing git command: git ls-remote -h ~~~
해당 에러가 생긴다면 젠킨스 서버에 git이 설치되어 있지 않았기 때문.
- credentials 설정
github username, password 를 입력.
더 아래 id 항목에는 해당 credential의 이름으로 적당히 지어줌.
private 프로젝트라면 password에 위에서 발급받은 토큰 입력.
public 이라면 password 입력해도 됨.
제대로 설정 안한다면 fatal: Authentication failed를 보게 됨.
Add(저장)하고 나오면 아래처럼 방금 만든 credential 선택.
- 관리하려는 브랜치 입력
- 빌드 유발 조건 선택
깃헙 hook을 통한 빌드를 할 예정.
- 빌드 스텝 선택
연결하려는 프로젝트는 gradle로 빌드하므로 gradle build를 추가.
이때 젠킨스 설치 후 그래들 설정을 한 적이 없다면,
Gradle Version 항목에 (Default)로 되어 있고 추가 그래들 값이 없을 것임.
따라서 아래처럼 젠킨스 설정에서 gradle 설정을 추가하고 와야됨.
gradle 버전 확인은 각자의 프로젝트 gradle 버전을 확인해서 맞게 선택.
gradle 디렉토리에 gradle-wrapper.properties 파일을 확인해 보면 아래처럼 알 수 있다.
3. github webhooks 설정
webhook은 repository에 대해 특정 작업이 수행되면 알림을 수신하는 방법을 제공한다.
- 우측의 Add webhook 클릭
- 여기선 push 이벤트만 수신
참고로 여기선 테스트용으로,
ngrok을 통해 일시적으로 로컬 주소를 외부에서 접속할 수 있도록 변환해서 넣어줬다.
ngrok으로 만든 url 뒷부분에 '/github-webhook/'을 꼭 넣어줘야 한다.
aws나 gcp, azure 등 외부 접속 가능한 젠킨스 서버를 이용하고 있다면 해당 ip와 port + '/github-webhook/'를 넣어주면 됨.
- 젠킨스 서버가 외부 접속 가능한 ip가 없다면, 아래 ngrok 사용 참고.
https://dalichoi.tistory.com/12
이제 github main 브랜치로 push를 진행해보면,
아래처럼 젠킨스 서버 빌드 히스토리에서 자동 추가되어 빌드를 진행하는 걸 확인할 수 있음.
- 빌드 실패한다면 아래 메뉴를 통해 console에 찍힌 log를 확인할 수 있음.
끝.
배포 후 실행은 다음에.
'개발 > DevOps' 카테고리의 다른 글
Docker 엔진 설치 (0) | 2022.12.27 |
---|---|
젠킨스(jenkins) 빌드 후 스프링(spring) 프로젝트 실행하기 (0) | 2022.12.23 |
ngrok을 이용해 외부에서 로컬로 접속하기 (0) | 2022.12.22 |
리눅스(CentOS 7)에 젠킨스(Jenkins) 설치하기 (0) | 2022.12.21 |
리눅스(CentOS 7) 설치 후 network 연결 안되어 있을 경우 (0) | 2022.12.21 |