젠킨스를 이용해서 스프링 부트, 그래들 프로젝트를 자동으로 서버에 배포하기 위한 절차를 정리한다.
Credential Plugin은 젠킨스가 각종 리소스에 접근하기 위한 키, 토큰 등을 저장하고 관리하는 플러그인이다.
젠킨스 서버를 이용해 CI/CD를 이용하기 위해서 GitHub Repository에 접근하기 위한 토큰을 관리한다.
젠킨스 대시보드에서 젠킨스 관리 > 시스템 설정으로 들어가서 스크롤을 내리다 보면 GitHub 탭이 있다.
Name 부분과 Credentials부분을 세팅한다.
Credentials 부분을 확인 해보면 GitHub Settings 에서 Personal access token을 생성해야 한다고 작성되어있다.
Access token을 발급 시에 추후 WebHook을 사용하기 위해 “admin:repo_hook”부분과 레포지토리가 private 레포지토리라면 “repo” 부분을 모두 체크해야 젠킨스가 해당 토큰을 가지고 레포지토리에 관련된 것들을 관리할 수있다고 되어있다.
Add 버튼을 클릭하면 아래와 같이 Credentials를 생성할 수 있는 팝업이 나타난다.
위에 설명을 보면 Crendentials를 Secret Text 형식으로 만들라고 되어있다.
Kind를 Secret Text로 바꿔주고, Secret은 GitHub Setting 에서 발급받은 access token을 복사해서 붙여넣는다. ID는 해당 설정을 구분할 수 있는 이름이므로 알아볼 수 있게 작성해준다.
Credentials를 생성했다면 Test Connection을 통해 제대로 연결되었는지 확인이 가능하다.
GitHub 오른쪽 상단 프로필을 클릭해 Settings > Developer Settings > Personal Access Tokens > Generate new token 으로 이동한다.
repo, admin:repo_hook 부분을 체크한 후 토큰을 생성한다.
Access Token 값은 생성 시에 한번만 보여주기 때문에 잃어버리지 않도록 잘 저장해둔다. 잃어버리면 다시 생성해야한다.
젠킨스의 핵심 중 하나인 파이프라인은 젠킨스의 Job들을 순차적으로 실행시키거나 직접 작성한 스크립트를 이용해 Job을 연속적으로 실행시키는 기능이다.
파이프라인 기능을 이용해 젠킨스는 통합하고 구현을 지원하며 CD (Continuous Delivery)를 가능하게 해준다.
젠킨스 대시보드에서 “새로운 Item”을 클릭한다.
파이프라인 이름을 작성하고, Pipeline 기능을 선택한 후 OK를 클릭한다.
General 탭의 하단 부분에 Pipeline Script를 작성할 수 잇는 텍스트 박스에 공식문서에서 예시로 들고 있는 Declarative Pipeline 부분의 코드를 토대로 Pipeline Script를 만들어준 후 하단의 Pipeline Syntax를 클릭한다.
pipeline {
agent any
stages {
stage('GitHub Repository Clone') {
steps {
}
}
}
}
Pipeline Syntax를 클릭하면 바로 Snippet Generator 로 이동된다.
해당 텝에서 Sample Step을 Git Clone을 하기위해 git:Git을 선택한다.
Repository URL에 Clone 하고자하는 레포지토리 주소를 붙여넣는다.
Branch는 배포시에 사용할 브랜치를 입력해준다.
레포지토리 주소 붙여넣을 시 .git 주소가 아닌 레포지토리 URL 주소를 붙여넣는다.
마지막으로 Credentials를 추가한다. 해당 Credentials은 직전 Crendentials에서 세팅한 것과는 달리 깃허브 계정과 엑세스 토큰으로 생성된 값으로 새로 Credentials를 생성해 사용한다.
Kind는 Username with password로 사용한다 . Username은 Github 계정명 Password는 Access Token 값을 사용한다.
Credentials까지 모두 추가되었다면 Generate Pipeline Script를 이용해서 생성된 Script를 복사한다.
Pipeline Script를 작성하는 부분으로 돌아와서 복사한 Pipeline Script를 steps 안에 붙여넣은 후 저장한다.
Pipeline이 생성된 것을 확인할 수 있다. 이제 해당 Pipeline으로 들어가서 빌드를 해본다.
로그를 통해 어떤 명령어를 이용해 젠킨스가 해당 레포지토리를 Clone 해왔는지 확인할 수 있고, 제대로 Pipeline Script를 실행한 것을 확인할 수 있다.
**[우젠구2편] 젠킨스 파이프라인을 활용한 배포 자동화 :** https://velog.io/@sihyung92/우젠구2편-젠킨스-파이프라인을-활용한-배포-자동화
Jenkins 공식 문서 : https://www.jenkins.io/doc/book/using/