GameCI (https://game.ci/)
GameCI는 게임프로젝트에 대해 빠르고 쉽게 테스트 및 빌드 환경을 구축할 수 있도록 지원해주는 프로젝트입니다. 이번에 Unity를 이용한 프로젝트를 진행할 기회가 있게 되었습니다. 프로젝트 시작 전 GIthub Repository 셋업을 위한 자료조사 중 GameCI에 대해 알게되었습니다.
이번에는 GameCI를 통해 github action에서 Unity 프로젝트를 빌드하는 방법을 정리해보려 합니다.
game-ci
- uses: game-ci/unity-builder@v2
env:
UNITY_LICENSE: ${{ secrets.UNITY_LICENSE }}
UNITY_EMAIL: ${{ secrets.UNITY_EMAIL }}
UNITY_PASSWORD: ${{ secrets.UNITY_PASSWORD }}
with:
targetPlatform: Android
UNITY_LICENSE, UNITY_EMAIL, UNITY_PASSWORD 에 대해서 action secrets 환경변수로 설정을 해줘야 합니다. Email 주소와 Password를 쉽게 설정해 줄 수 있지만, License 관련해서는 조금 복잡합니다. 아래 Activation을 참고해주세요.
Activation
모든 action들은 Unity 설치가 필요하고, 그에 따라 라이센스가 필요합니다. 라이센스는 Personal / Professional 두 가지 가이드를 제공하고 있는데, 여기서는 Personal에 대해서만 정리합니다.
1) activation 파일 얻기
.github/workflows/activation.yml 파일을 생성하고, 아래 내용을 작성해주세요. 작성을 완료하셨다면, Commit / Push를 해주세요.
name: Acquire activation file
on:
workflow_dispatch: {}
jobs:
activation:
name: Request manual activation file 🔑
runs-on: ubuntu-latest
steps:
# Request manual activation file
- name: Request manual activation file
id: getManualLicenseFile
uses: game-ci/unity-request-activation-file@v2
# Upload artifact (Unity_v20XX.X.XXXX.alf)
- name: Expose as artifact
uses: actions/upload-artifact@v2
with:
name: ${{ steps.getManualLicenseFile.outputs.filePath }}
path: ${{ steps.getManualLicenseFile.outputs.filePath }}
2) 라이센스로 변경하기
activation을 github action으로 등록하였다면 아래 절차를 통하여 진행을 합니다.
(1) 위의 workflow를 수동으로 실행합니다.

(2) workflow를 실행하여 얻은 Unity_v20XX.X.XXXX의 압축을 풉니다.
(3) license.unity3d.com에 접속하여 압축을 풀어 얻은 alf 파일을 업로드 합니다
(4) 업로드 이후 변환된 License 파일을 다운로드합니다.
(5) Github > Repository > Setting > Secrets > actions 에 접속하여 아래 3가지 secrets를 등록합니다
- UNITY_LICENSE : 라이센스 파일 내용
- UNITY_EMAIL : Unity 로그인 ID
- UNITY_PASSWORD : Unity 로그인 Password
3) Build.yml 예제 코드
# This is a basic workflow to help you get started with Actions
name: CI
# Controls when the workflow will run
on:
# Triggers the workflow on push or pull request events but only for the main branch
push:
branches: [ main ]
pull_request:
branches: [ main ]
# Allows you to run this workflow manually from the Actions tab
workflow_dispatch:
# A workflow run is made up of one or more jobs that can run sequentially or in parallel
jobs:
# This workflow contains a single job called "build"
build:
# The type of runner that the job will run on
runs-on: ubuntu-latest
# Steps represent a sequence of tasks that will be executed as part of the job
steps:
- uses: actions/checkout@v2
- uses: game-ci/unity-builder@v2
env:
UNITY_LICENSE: ${{ secrets.UNITY_LICENSE }}
UNITY_EMAIL: ${{ secrets.UNITY_EMAIL }}
UNITY_PASSWORD: ${{ secrets.UNITY_PASSWORD }}
with:
targetPlatform: Android
projectPath: test-project
- uses: actions/upload-artifact@v2
with:
name: Build
path: build
아래와 같은 build.yml 코드를 작성하여 빌드 테스트를 해봅니다! 그럼 아래와 같이 빌드가 성공적으로 완료되었음을 확인할 수 있습니다.

GameCI를 통해 간편하게 Unity 프로젝트를 빌드해보았습니다. 빌드 외에도 Test, Deploy 등 다양한 기능이 있으니 사용해보셔도 좋을 것 같습니다! 여유가 된다면, 코드 분석을 통해 직접 Unity 프로젝트 빌드를 진행해봐도 좋을 것 같습니다 :)
긴 글 읽어주셔서 감사합니다. :)
reference
'ETC' 카테고리의 다른 글
[Jenkins] cert problem (0) | 2022.03.22 |
---|---|
Ubuntu - terminator 설치 후 vertically split 문제 (0) | 2022.02.10 |
Github Action #2 - 예제 분석하기 (0) | 2022.01.30 |
Github Action #1 - 기본 용어 정리 (0) | 2022.01.30 |
개발자가 즐길 수 있는 영상 리스트 (0) | 2022.01.15 |