앱 배포후 Jira에서 버전 Release처리 자동으로 하는 방법(feat. GitHub Action)
- 앱개발하면서 Jira를 사용하고 계신다면 필수로 적용해야 할 GitHub Action을 소개 해드립니다.
- 더이상 수동으로 Jira Version을 관리하지 마세요
안녕하세요.
헤이딜러 안드로이드팀의 박상권입니다.
어느정도 규모있는 개발팀이 구성되어 있다면 Jira를 이용해서 프로젝트 관리를 하고 계실 겁니다.
(애증의 jira…)
Jira프로젝트에서 Release를 잘 활용하면 배포되는 앱의 버전별 이슈를 효율적으로 관리할 수 있습니다.
기존에 Release 버전을 관리하는 플로우
Release 버전을 사용해서 앱을 배포하고 관리하고 계신다면,
다음과 같은 프로세스로 진행하고 계실겁니다.
- 앱을 배포하고 GitHub에서 Release PR을 master(main)으로 merge
(release/1.0.0
->master
)
2. Jira Release에서 배포된 버전을 오늘 날짜로 [Release]
3. Jira Release에서 다음번 배포될 버전을 [Create]
귀찮습니다😨
Release에서 버전을 배포처리하고, 새로운 버전을 만드는것은 너무 귀찮았습니다.
기계적으로 만드는것이 귀찮은것도 문제였지만
앱을 배포하고 위의 작업을 해야 하는것을 까먹고 안하는 경우가 종종 있었습니다.
(공감하시는 분들 많으시죠..?😅)
[자매품]다른 귀찮음 시리즈 글도 읽어보세요
GitHub Action
위의 포스팅에서와 마찬가지 생각으로‘어떻게 이 작업을 자동화 할 수 있을까?’
를 생각하게 되었습니다.🤔
GitHub Action을 이용해서 이를 자동화 하기로 했습니다.🎉🎉
릴리즈 PR이 master(main)으로 merge될때
1. Jira의 해당 버전을 알아서 오늘날짜로 [Release] 처리해주고
2. 그 다음번 만들어야할 새로운 버전을 [Create] 해줍니다.
또한 이 기능을 다른 분들도 편하게 사용할 수 있도록
오픈소스로 만들고 Marketplace에 배포해두었습니다.
(밥상 다 차려놨으니 숟가락🥄만 드세요)
사용방법
이 GitHub Action이 각자 회사의 Jira의 프로젝트에 접근하기 위해서는
Auth Token이 필요합니다.
- Atlassian Account 를 통해 API token발급
- Jira계정 이메일주소와 API token을 조합해서 텍스트 생성
useremail:api_token
예시)ted@prnd.co.kr:xxxxxxx
- BASE64 인코딩
- Linux/Unix/MacOS:
echo -n user@example.com:api_token_string | base64
- Windows 7 and later, using Microsoft Powershell:
$Text = ‘user@example.com:api_token_string’
$Bytes = [System.Text.Encoding]::UTF8.GetBytes($Text)
$EncodedText = [Convert]::ToBase64String($Bytes)
$EncodedText
Auth Token이 준비되셨다면,
GitHub Repository의 .github/workflows
폴더아래에 아래 예제와 같은 방식으로 만드셔서 파일을 넣으시면 됩니다.
domain
: Jira의 도메인 이름 ex)https://your-domain.atlassian.net
project
: 각 프로젝트 IDversion
: 버전 이름 + 추출한 버전 이름auth-token
: 위에서 만든 token(Jira API token)
버전 정보 추출 원리
- 버전 이름은
release/1.0.0
branch ->main/master
branch 로 merge될때
commit 이름으로부터 1.0.0이라는 버전 이름을 추출하게 됩니다.
- 추출된 정보로 부터 1.0.0을 Release처리하고 1.1.0 버전을 새로 만드는 것입니다.
결과 확인
고객 5.35.0
,고객 5.36.0
을 버전으로 관리하고 있는 상태에서고객 5.35.0
을 Release처리 하고- 새로운 버전인
고객 5.37.0
을 만들어 주었습니다.
만약 고객 5.35.0
배포후 hotfix로 인해 고객 5.35.1
을 만들고 배포한다면?
- 이미 고객 5.37.0
가 만들어져 있기 때문에 고객 5.35.1
를 Release처리만 하고 새로운 버전은 만들지 않게 됩니다.
어때요? 참 쉽죠?
여러분들도 저희가 만든 GitHub Actions 파일 추가하셔서
수동으로 작업하시던 Jira버전 관리를 자동화 해보세요
본인만의 GitHub Action을 활용한 꿀팁이 있다면 댓글로도 남겨주세요!