저번에는 GitHub Pull Requests를 보내면 자동으로 빌드되는 CI환경을 구축했으니, 이번에는 Github에 자동으로 완성된 게임이 올라가는 환경을 구축해보려고 한다.
GitHub Release:
개발자가 작성한 코드의 특정 시점(버전)을 기록하고, 사용자에게 완성된 결과물(빌드 파일, 실행 파일 등)을 배포하기 위해 제공되는 전용 공간.
단순히 소스 코드를 저장하는 것을 넘어, 소프트웨어 배포에 최적화된 여러 기능을 제공.
| 설치된 모습 |
|---|
![]() |
Github Release를 찾아야 했는데 보이지 않았다.| Github Release 없음 |
|---|
![]() |
Jenkins 재시작, 다운그레이드 등을 시도해 봐도 안보여서 공식 문서를 찾아 보았다.
공식 문서 : Jenkins Release
공식 문서를 읽어보면 Pipeline 프로젝트에 대한 사용법만 나와있는데, 나는 현재 프로젝트를 FreeStyle로 구성했기 때문에 생긴 문제인 듯 했다.
현재 나는 Github Desktop을 사용중이기 때문에, Github CLI 버전 설치가 필요했다.
해당 Github를 설치하면 Windows Cmd 환경에서 Github의 기능을 사용할 수 있다.
| Github CLI |
|---|
![]() |
gh --version를 쳐서 잘 설치 되었는지 확인.| 버전 확인 |
|---|
![]() |
| Jenkins 재시작 |
|---|
![]() |
Jenkins -> 내 프로젝트 -> 구성 -> Environment 섹션 -> Use secret text(s) or file(s)?을 선택해준다.
이 설정은 나중에 Github CLI를 통해서 명령어를 입력할 때, 권한을 넣어주는 역할을 할 것이다.
| Use secret text(s) or file(s)? |
|---|
![]() |
Variable은 GH_TOKEN으로 설정(이렇게 해야 나중에 Cmd에서 자동으로 인식)
Credentials은 저번에 Jenkins Credentials 설정에서 만든 권한을 넣어준다.
+ Add build step -> Execute Windows batch command를 선택한다.| 코드 |
|---|
![]() |
:: 환경 변수 설정
set BUILD_DIR=C:\Jenkins\workspace\ColorPuzzle\Builds\MyGame
set ZIP_NAME=ColorPuzzle.zip
set TAG_NAME=latest
:: 파일 압축
cd /d %BUILD_DIR%
powershell Compress-Archive -Path * -DestinationPath ..\%ZIP_NAME% -Force
:: 이전 폴더로 이동
cd ..
:: latest tag 삭제
gh release delete %TAG_NAME% -y --cleanup-tag
:: latest tag 생성
gh release create %TAG_NAME% %ZIP_NAME% --title "Latest Build (#%BUILD_NUMBER%)" --generate-notes
마지막 명령어에 대해 추가 설명을 하면,
BUILD_NUMBER는 Jenkins에 빌드한 번호.
--generate-notes는
| 패치 노트 |
|---|
![]() |
| CD 환경 구축 |
|---|
![]() |
이렇게 성공적으로 CD 환경을 구축하였다.
굳이 Zip 파일로 베포를 한 이유는 나중에 Setup 파일을 올릴 때와 상황이 비슷하기 때문에 Zip 파일로 연습을 해봤다.
다음 프로젝트는 Pipeline으로 만들어서 다운받은 플러그인을 활용할 수 있게 고민해봐겠다.