본문 바로가기

DevOps

JIRA & Jenkins & Github 연동하기

기존 Jenkins 로 CI/CD 파이프라인을 구축하고, Git Push 시 WebHook이 동작하여 빌드 및 배포가 수행되도록 환경을 구성했던 경험이 있었다.

 

프로젝트를 수행하면서, 효율적인 협업을 위하여 레드마인 이라는 프로젝트 관리 툴을 사용하게 되었다. 레드마인은 여러 장점이 존재했지만, 이슈관리와 동시에 작업물이 바로 배포되도록 하는 기능은 지원하지 않았다.

 

조사 결과, 프로젝트 관리 툴 중에 유일하게 JIRA 에서 Jenkins 관련 플러그인을 지원하고 있었고, 이슈 관리와 동시에 배포까지 진행되도록 파이프라인을 구성할 수 있게 되었다.

 

요구 사항에서는 JIRA 에서 관리 중인 이슈들을 Teams 까지 연동하여 확인하고자 했다.

따라서, 다음과 같은 시나리오로 파이프라인을 구성해보았다. 

 

 

이슈 생성 및 처리 과정

 

위와 같은 프로세스를 구성하기 위해선, 다음의 작업이 필요했다.

 

1. Jira 설치

2. Jira & Git 연동

3. Jira & Teams 연동

 

기존에 구성해놓은 Jenkins 파이프라인이 존재했기 때문에, Jenkins 파이프라인 구축 과정은 제외했다.

(Git 에 Push 시 빌드 및 배포를 진행하는 Jenkins Pipeline 존재함.)

 

 

- Jira 설치

Jira 서버 구성을 위해서 2가지 안이 존재했다.

 

1. 직접 설치

  서버 설치형 소프트웨어를 서버에 직접 설치하고 Jira 전용 DB를 세팅해준다.

 

2. Jira Cloud 사용.

  아틀라시안에서 제공하는 Jira Cloud 이용하기 (접근 URL만 입력해주면 됨)

 

 

내가 직접 환경을 구성해보고 싶다는 생각에 서버에 Jira 소프트웨어를 설치하고 DB까지 세팅해주었는데, 라이선스 키에서 문제가 발생했다.

 

Server 제품 지원이 종료됨에 따라, 더 이상 신규 라이선스 키 발급을 하지 않는다는 것이였다. 따라서, Jira Cloud를 사용할 수 밖에 없게 되었다.

 

Cloud 설정은 정말 간단한데, 내 Jira 에 접근할 주소만 설정해주면 된다. (Jira 홈페이지에서 Cloud 무료 버전을 선택하여 진행하면 된다.)

 

 

Jira 메인 화면

 

현업에서는 JIRA + Confluence 조합으로 대부분 사용하는 것 같은데, 다음 기회에 연동해보도록 하겠다.

 

 

2. Jira & Git 연동

아틀라시안 마켓플레이스에서 GitHub for Jira 를 받는다. (Gitlab 도 있다.)

 

앱을 설치할 프로젝트를 선택하고 설치를 진행하면, Connect a GitHub organization 을 클릭하여 연결을 진행한다.

 

해당 창에서 프로젝트 레포지토리를 연결할 수 있다. 원하는 프로젝트가 나오게 하기 위해서, Configure를 클릭한다.

 

 

앱 연결을 위해서, 앱이 레포지토리에 접근할 수 있도록 Repository Access 권한을 열어주어야 한다.

 

설정 이후, 상태 명이 In progress로 바뀔 텐데, 아래처럼 Finished가 뜬다면 연결이 완료된 것이다.

 

그리고 내 Jira 프로젝트에 Repository를 연결시켜주면 된다.

Jira 프로젝트 내 화면 좌측 탭에서 바로가기 추가 - 리포지토리 추가 로 들어가 GitHub 저장소의 링크를 넣어주면 된다.

 

 

이제 프로젝트에서 이슈를 생성하면, Git Commit 이나 Pull Request 등 Git 관련 변동사항이 생겼을 때 확인이 가능하다.

 

 

 

3. Jira & Teams 연동

Teams의 경우 무료 버전으로 설정을 진행하고자 하였으나, 무료 버전에서는 App 탭 자체가 존재하지 않아 설치를 진행할 수 없었다.

 

 

 

추후에 계정이 생긴다면 진행해볼 예정이다. 아마 앱설치 이후 간단한 설정만 해주면 되기 때문에 어렵지는 않을 것 같다.

아래 블로그를 따라 설정을 진행하면 된다.

 

Microsoft Teams와 Jira Cloud 연동 - CURVC DevOps - Confluence

이 문서는 Microsoft Teams와 Jira Cloud 연동 가이드를 공유하기 위해 작성되었다. Teams에서 앱 설치 Teams에서 앱 설치를 위해 좌측 ... 메뉴를 클릭하고 Jira를 검색 후에 Jira Cloud를 선택합니다.  다음과

confluence.curvc.com

 

 

Jira 이슈 처리 와 CI/CD Test

프로젝트 내에서 이슈를 생성하면, 아래 처럼 이슈 키 (TWIN-4) 를 자동으로 생성해준다.

 

이슈 상세 화면에서, 이슈 처리 작업을 수행할 Git 브랜치를 생성할 수 있다.

 

 

내가 직접 Git에서 브랜치를 생성해도 되지만, Jira에서 브랜치를 생성할 수도 있다.

 

 

변경 작업 이후에 Commit을 진행할 때, 이슈 키를 입력해 주어야 한다.

 

이슈 상세 탭에서 변동 사항이 출력된다.

 

해당 커밋에 대한 Pull Request 를 생성해보자.

풀리퀘스트 만들기를 클릭하면, Git Repository로 이동한다.

 

Pull Request를 만들고, Repo 관리자는 작업 내용을 확인 후에 Merge 진행한다.

 

머지가 완료되면 이슈 상세 탭의 상태가 변한걸 확인할 수 있다.

 

'개발' 탭의 노드를 클릭하면 브랜치, 커밋, 풀리퀘스트 등 이슈 처리 작업에 대한 정보를 확인할 수 있다.

 

Git push 이후, Git Webhook을 통해 Jenkins 에서도 빌드 후 배포가 정상적으로 진행되었다.

 

 

후기

Jira 서버를 구축하는 것이 난이도가 있을 거라 생각했는데, Jira Cloud 라는 서비스를 통해 누구든 쉽게 구축할 수 있을 만큼 쉬워서 놀라웠다. 앞으로 실무든 프로젝트든 Jira를 구성할 일이 생긴다면 오늘 한 경험을 토대로 프로젝트 관리가 필요할 때 요긴하게 사용할 수 있을 것 같다.

 

 

 

 

 

참고 자료

https://www.lesstif.com/jira/jira-cloud-github-125305615.html

 

지라 클라우드(JIRA Cloud) 와 깃허브(github) 연동하기

 

www.lesstif.com

 

'DevOps' 카테고리의 다른 글

웹 애플리케이션 빌드와 배포 정리  (0) 2023.07.11
SSE (Server Sent Events)  (1) 2023.05.19
리버스 프록시(Reverse Proxy)  (0) 2023.05.19