릴리즈를 조금 더 편하게 해보려고 release-it 적용해봤습니다
요즘에 배포하려다보니 버전 숫자 바꾸고 체인지로그 만들고, 태그 만들고, 푸시하고, 배포할 압축파일 만들고...
과정이 번거로워서 알아보다가 https://github.com/release-it/release-it 이걸 사용해봤습니다.
간단히 요약하면 버전 숫자 변경, 체인지로그 생성, 태그 & 푸시까지 해줍니다.
토큰 설정만하면 깃허브 릴리즈도 추가해주고요.
1. 버전 범프
라이믹스는 버전이 conf/info.xml 파일에 있고 날짜도 변경해줘야해서 추가 플러그인도 사용했습니다.
https://github.com/j-ulrich/release-it-regex-bumper
정규식이나 파일 포맷에 따라 옵션으로 기록된 버전을 찾아서 인식하고 변경해줍니다.
이런식으로 설정해두면 conf/info.xml 파일의 'module > version' 노드를 찾아서 버전을 읽고 새로운 버전으로 변경해줍니다.
지금보니 date 노드는 왜 'path'로 안하고 저렇게 했는지는 모르겠지만 저렇게 날짜도 바꿔줄 수 있고요.
그누보드는 따로 버전을 비롯한 정보를 기록하는 정해진 방법이 없어서 메인 파일에 따로 상수에 기록해두었는데, 이것도 찾아서 바꾸도록 했습니다.
2. 체인지로그
체인지 로그는 https://www.conventionalcommits.org/ko/v1.0.0/ 기반으로 커밋메시지를 적어두면 체인지로그도 자동으로 생성해줍니다. 주로 fix, feature 등의 주요 메시지만 추려서 작성해주는데 설정을 변경해서 다른 prefix도 체인지로그에 추가시킬 수는 있습니다.
CHANGELOG.md 파일에 conventional commits 규칙으로 작성한 커밋을 추려서 체인지로그 파일을 만들어 줍니다.
딱히 이렇게 설정을 다 넣진 않아도 되긴할 것 같은데 이러저리 해보다가 저렇게 세팅한채로 뒀습니다.
3. 커밋, 태그, 푸시
이렇게 'npm run release' 스크립트를 실행하면 이 과정을 전부 처리해줍니다.
체인지로그를 생성하고, 버전을 범프하여 파일을 수정해서 커밋하고, 푸시, 버전명으로 태그를 생성, 푸시까지 해줍니다.
단계마다 선택할 수도 있고요.
저는 hook으로 배포용 압축 파일도 생성했습니다.
그러면 아래와 같이 과정을 진행할 수 있죠.
(아래 이미지는 그누보드 버전 배포할 때라서 버전이 기록해둔 bootstrap.php 파일에 버전이 교체되어 커밋되었습니다.)
릴리즈 과정이 훨씬 편해졌습니다.
package.json 파일의 버전명도 같이 변경되는데 이건 필요가 없어서 제외시켰으면 좋겠는데 방법을 찾아보진 않았습니다.
관련 설정은 https://github.com/damoang-users/rx-da_reaction/commit/d95f2bd14142c1f19661ca9705f3dce2542db28a 여기에 있습니다.
그누보드에 설정한건 https://github.com/damoang-users/g5-da_reaction/commit/ef3771488e12c55234d1c0fd48ccf83fc9982bf3 이거고요.

댓글 0