출처 : https://velog.io/@zayson/Jenkins-CICD-1.-GitHub-Repository-Clone하기
GitHub 오른쪽 상단 프로필을 클릭해 Settings > Developer Settings > Personal Access Tokens > Generate new token 으로 이동한다.
repo, admin:repo_hook 부분을 체크한 후 토큰을 생성한다. ⇒ 추가로 아래 처럼 해줘도 됨
Access Token 값은 생성 시에 한번만 보여주기 때문에 잃어버리지 않도록 잘 저장해둔다. 잃어버리면 다시 생성해야한다.
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을 통해 제대로 연결되었는지 확인이 가능하다.
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 {
agent any
stages {
stage('GitHub Repository Clone') {
steps {
}
}
}
}
Pipeline이 생성된 것을 확인할 수 있다. 이제 해당 Pipeline으로 들어가서 빌드를 해본다.