사용자가 수동 개입 없이 자동으로 CI/CD 파이프라인을 구축하여, 빌드, 테스트, 배포하는 과정을 실행하기 위해 소스 코드 관리 시스템(gitea)과 jenkins 를 webhook 으로 연동하여 코드를 push 하거나 merge 할 때 자동으로 Jenkins 파이프라인이 트리거 되는 것을 목표로 합니다.
Jenkins plugin 설치
Dashborad > Jenkins 관리 > Plugins 선택
Available Plugins 에서 gitea 설치
설치 중 과 설치 완료 되었을 때 화면입니다.
gitea 설치와 마찬가지로 Multibranch Scan Webhook Trigger 도 함께 설치해 줍니다.
git 애플리케이션 토큰 발급
프로필 아이콘의 설정 선택
어플리케이션의 토큰을 생성해 줍니다.
토큰을 생성해 주면 다시 확인할 수 없으므로 복사하여 유실하지 않도록 합니다.
Jenkins 의 Credentials 추가
Jenkins 관리의 Credentials 선택
(global) 이름에 마우스를 올리면 드롭박스가 보이는데, 드롭박스 내 Add credentials 선택
Kind 를 Gitea Personal Access Token 으로 변경
위 순서대로 진행한 토큰 입력 후 Create 로 생성합니다.
생성 확인
Gitea Server Add
Jenkins 관리 > System
스크롤 다운으로 내리다 보면 Gitea Server 항목이 있습니다. Gitea Server 선택
Gitea Server 정보 기입 후 Save
Server Url 에 gitea 주소 기입하고, Manage hooks 에 이전에 생성해 두었던 Credentials 추가합니다.
Jenkins 프로젝트 생성
새로운 Item
Multibranch Pipleline 선택 후 OK 로 생성합니다.
Branch Source 설정에서 Add source -> Gitea 선택
owner 는 gitea 의 저장소 소유자를 작성해 줍니다.
저장소 소유자를 정상적으로 입력 시 자동으로 레포지토리를 보여줍니다.
Discover branches 제외한 나머지 Behaviours 삭제 후 Filter by name (with regular expression) 추가 해줍니다.
추가한 옵션에 레포지토리의 브랜치 이름을 입력해 줍니다.
Scan Multibranch Pipeline Triggers 을 설정해줍니다.
이 후 Save 버튼으로 생성 시작합니다.
Jenkinsfile 을 찾을 수 없다는 메시지 확인 후 VSC 에서 해당 프로젝트에 Jenkinsfile 을 생성 후 저장소에 push 해줍니다.
진행 중인 Jenkins 화면 새로고침 하여 정상 확인합니다.
Gitea 저장소 Webhook 생성
Webhook 대상 URL 정보 기입 후 Webhook 추가
http://{젠킨스주소}/multibranch-webhook-trigger/invoke?token={Scan by webhook값}
token 값은 상단 Scan Multibranch Pipeline Triggers 값 지정 시 입력한 Trigger token 값 과 같습니다.
webhook 테스트
테스트 진행을 위해 webhook 연결한 디렉터리에 test.py 생성 후 레포지토리에 파일 push
commit -m 로 입력한 add test.py 를 확인할 수 있습니다.
감사합니다.
'Dev > DevOps' 카테고리의 다른 글
ArgoCD (0) | 2025.02.26 |
---|---|
helm으로 gitea, jenkins 설치 (0) | 2025.02.26 |
gitea (0) | 2025.02.24 |
Jenkins (1) | 2025.02.24 |
Prometheus & Grafana (0) | 2025.02.19 |