[TECH]GameCIで 결속の 단어環境を GitHub 작업で構築する 🎮
22340 단어 unitygithubactions
はじめに
先日同僚が 결속の 단어環境を構築するためのライブラリである GameCI について教えてくれました.早速 가메치の GitHub 작업を利用して、サンプルプロジェクトで色々動作検証してみたところ、결속の 단어環境を楽に構築できることが分かりました.
もちろん、 Unity Cloud Build を利用すれば 단어環境の構築は以前から楽にできました.しかし、選択肢の 1つとして 가메치を持っておくことで、サクッと GitHub 작업に統合する形で 결속の 단어環境を導入できるのは他には無いメリットを感じました.
本記事で紹介しているソースコード、及び検証時に利用したプロジェクトは githubにアップ済みですので、手っ取り早く内容を把握されたい方は下記をご参照くださいませ.
https://github.com/nikaera/Unity-GameCI-Sample
業務でも利用できそうなので、가메치を利用して 단어環境を構築する手順を記事でまとめました.
가메치に備わっている機能紹介
가메치には現状下記の GitHub 작업が用意されているようです.
機能
概要
Activation
결속ライセンスを任意の 결속バージョンで発行する
Test runner
결속の 게임 모드及び 편집 모드のテストを実行する (テスト結果の出力にも対応)
Builder
任意の 플랫폼ビルドを実行する ( アーティファクト 利用でダウンロードも可能)
Returning a license
결속ライセンスの返却ができる (직업허가증)のみ対応)
Remote builder
GitHub 작업のスペックでは満足のいくビルドができない際に AWS環境でハイスペックなマシンを用意してビルドできる.ビルドのためのインフラ構築には AWS CloudFormation を使用している (現在は AWSのみ対応.今後 GCP,Azureにも対応予定とのこと)
Deployment
결속ビルドを各種 플랫폼向けにデプロイする (iOS)及び 안드로이드のみ記載あり.厳密に言うと Builder
でビルド出力した内容を fastlane
を用いてデプロイするためのワークフロー紹介になっている)
上記を見ると既に 가메치には開発者として 통일어に欲しい機能は最低限揃っているように見受けられました. また本記事では、今後機会があれば試してみたいと考えていますが 원격 생성기及び 배치하다については言及していません.
今回は実例を交えながら 활성화及び 테스트 실행자, 생성기, 반환 허가증の使用方法について紹介していきます.
활성화:Gameciで必要となる 통합 라이센스のアクティベーションを行う
가메치で 결속ライセンスをアクティベートするには Activation を利用します.早速ドキュメントの手順に沿って作業を進めていきます.
まず 단어を導入したい github上の 결속プロジェクトの .github/workflows
内に 결속ライセンスアクティベート用のワークフローファイルを作成します.
name: Acquire activation file
on:
workflow_dispatch: {}
jobs:
activation:
name: Request manual activation file 🔑
runs-on: ubuntu-latest
steps:
# GameCI の Activation を利用して alf ファイルを発行する
- name: Request manual activation file
id: getManualLicenseFile
uses: game-ci/unity-request-activation-file@v2
with:
# Unity プロジェクトのバージョンを指定する
# ProjectSettings/ProjectVersion.txt に記載されているバージョンを入力すれば OK
unityVersion: 2020.3.5f1
# 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 }}
その後、 デフォルトブランチ にプッシュして GitHub 작업で実行可能にしたら、下記手順に従い 결속ライセンスファイルのアクティベート及びダウンロードを行います.
1ブラウザから githubリポジトリにアクセスして、결속ライセンスアクティベート用のワークフローを実行して alf
ファイルを生成する
2ワークフローの実行に成功したら、該当項目をクリックして詳細画面に遷移する
3. Artifacts
の項目から alf
ファイルをダウンロードする
4. Unity license manual activation webpage からログインして alf
ファイルをアップロードする
5. 단결ライセンスの利用用途に応じて適切な選択肢を入力する (本記事では 개인적ライセンスを選択)
6. Download license
ボタンをクリックして ulf
ファイルをダウンロードする
これで 결속ライセンスファイルのアクティベートは完了です.次にアクティベートしたライセンスファイルを githubリポジトリの Secrets に登録して、가메치で 게임 모드及び 편집 모드のテストが実行できるようにしていきます.alf
拡張子のファイルがライセンスリクエストファイルを指していて、결속ライセンスの発行に必要となるファイルです. ulf
拡張子のファイルが 결속ライセンスのファイルです. 1
테스트 주자: 게임 모드及び 편집 모드テストを実行して結果を参照する
GitHub 작업上でテストを実行するために、先ほどアクティベートした 결속ライセンスの情報を ワークフロー上で扱えるようにする必要があります.そのため、まずは 비밀.に ulf
ファイルの内容を登録することから始めます.
1. 단결ライセンスの情報登録のため、githubリポジトリの Secrets
登録画面に遷移する
2.GameCIはライセンス情報参照のため、デフォルト設定では Secrets
の UNITY_LICENSE
を参照する.そのため、 Name
が UNITY_LICENSE
、 Value
には ulf
ファイルの中身を登録する 2
上記作業で 가메치でテストやビルド実行を行える環境が整ったので、動作検証のためテスト実行用のワークフローファイルを作成します.
name: Run EditMode and PlayMode Test
on:
workflow_dispatch: {}
jobs:
test:
name: Run EditMode and PlayMode Test
runs-on: ubuntu-latest
steps:
# actions/checkout@v2 を利用して作業ディレクトリに
# Unity プロジェクトの中身をダウンロードしてくる
- name: Check out my unity project.
uses: actions/checkout@v2
# GameCI の Test runner を利用して
# EditMode 及び PlayMode のテストを実行する
- name: Run EditMode and PlayMode Test
uses: game-ci/unity-test-runner@v2
env:
# 2. の手順で Secrets に登録した Unity ライセンスの情報を指定する
UNITY_LICENSE: ${{ secrets.UNITY_LICENSE }}
# もし Professional license を使いたい場合は、
# メールアドレス、パスワード、シリアルナンバーを入力する必要がある
# ref: https://game.ci/docs/github/test-runner#professional-license
# UNITY_EMAIL: ${{ secrets.UNITY_EMAIL }}
# UNITY_PASSWORD: ${{ secrets.UNITY_PASSWORD }}
# UNITY_SERIAL: ${{ secrets.UNITY_SERIAL }}
with:
projectPath: .
# テストの実行結果もみたい場合は githubToken を指定する
# secrets.GITHUB_TOKEN は Secrets 未登録でも利用可能
githubToken: ${{ secrets.GITHUB_TOKEN }}
# Unity プロジェクトのバージョンを指定する
# ProjectSettings/ProjectVersion.txt に記載されているバージョンを入力すれば OK
unityVersion: 2020.3.5f1
# 実行したいテストの種類を指定できる
# 指定可能な値は All, PlayMode, EditMode
# testMode: All
# テスト実行時に利用したい Docker イメージを明示的に指定できる
# customImage: 'unityci/editor:2020.1.14f1-base-0'
# テストの実行結果をアーティファクトにアップロードしてダウンロードして参照できるようにする
- uses: actions/upload-artifact@v2
if: always()
with:
name: Test results
path: artifacts
上記のワークフローファイルを GitHub 작업上で動作検証する際の手順は下記になります.
1. 단결のテストを実行するためのワークフローを選択して実行する
2ワークフローの実行が成功したら、詳細画面に遷移した後、 Test Results
の項目からテストの実行結果を確認する
テスト実行用のワークフローファイルでは workflow_dispatch
で実行可能にしていますが、 pull_request
を利用すればプルリク時にテストを実行させることが可能になります.
건설자:プロジェクトのビルドを実行して出力結果を確認する
가메치にはプロジェクトのビルドを行うための GitHub 작업も用意されています.実際に 가메치で WebGLビルドを行いその内容を GitHub 페이지で確認できるようにして動作検証していきます.
早速 WebGLビルドを行うためのワークフローファイルを作成していきます.
name: Run the WebGL build
on:
workflow_dispatch: {}
jobs:
build:
name: Run the WebGL build
runs-on: ubuntu-latest
steps:
# actions/checkout@v2 を利用して作業ディレクトリに
# Unity プロジェクトの中身をダウンロードしてくる
- name: Check out my unity project.
uses: actions/checkout@v2
# GameCI の Builder を利用して、
# Unity プロジェクトのビルドを実行する
- name: Run the WebGL build
uses: game-ci/unity-builder@v2
env:
UNITY_LICENSE: ${{ secrets.UNITY_LICENSE }}
with:
# 今回は WebGL ビルドを行いたいため WebGL を指定する
# WebGL 以外の指定可能な値は下記に記載の値が利用可能
# ref: https://docs.unity3d.com/ScriptReference/BuildTarget.html
targetPlatform: WebGL
unityVersion: 2020.3.5f1
# Builder で出力した WebGL ビルドを GitHub Pages にデプロイする
- name: Deploy to GitHub Pages
uses: JamesIves/[email protected]
with:
# GitHub Pages デプロイ用の Orphan ブランチ名を指定する
branch: gh-pages
# デプロイ用ビルドフォルダパスを指定する
# GameCI の Builder はデフォルトでは build フォルダにビルド内容を出力する
folder: build
# Builder で出力した WebGL ビルドをアーティファクトでダウンロード可能にする
- name: Upload the WebGL Build
uses: actions/upload-artifact@v2
with:
name: Build
path: build
上記のワークフローファイルを GitHub 작업上で動作検証する際の手順は下記になります.
1. 단결の WebGLビルドを実行するためのワークフローを実行する
2ワークフローの実行が成功したら、詳細画面に遷移した後、ビルド内容が正常そうか確認する
셋.ビルド内容を確認するための GitHub 페이지の設定を 설정から行う
4. GitHub 페이지でブラウザから WebGLビルドの動作確認をする
上記のように 건설자を利用することで WebGLビルドの成否及び、最新のビルド内容を常に GitHub 페이지で見られるようにできます. すると WebGLビルドが正常かどうかの確認が常に GitHub 페이지を見れば把握できるようになるため、 Unity1 週間ゲームジャム などに参加する際で便利に活用できそうです.
WebGLビルドを行う際、결속バージョンやアセットの対応状況によっては正しくブラウザ上で動作しないビルドが出力されます.ただし、ブラウザで発生するエラー内容によっては WebGLのビルド設定を見直すだけで解決できる場合があります. 例えば unityframework is not defined
というエラーが発生した際は、 この記事 のように WebGLの Build Settings
を見直すことで解決できる場合があります.
私の環境では JamesIves/github-pages-deploy-action
で GitHub 페이지へのデプロイを行った際、デフォルトでは /WebGL/WebGL
フォルダにビルド内容が出力されました.そのため、ブラウザから WebGLビルドにアクセスする際、 <GitHub Pages の URL>/WebGL/WebGL
のような 통합 리소스 포지셔닝 주소にアクセスする必要がありました.
라이센스 반환: GamecIで利用している 통합 라이센스を返却する
通常利用することは無いと 公式サイト にも書かれていますが、직업 허가증の返却も 가메치で行うことが可能です. 今回は 개인 면허증を利用したため使用しませんでしたが、下記をワークフローのステップに組み込むことで 직업 허가증を返却できるようです.
# ...
# どこかのタイミングでライセンスのアクティベートを行う
- name: Activate Unity
uses: game-ci/unity-activate@v1
env:
UNITY_LICENSE: ${{ secrets.UNITY_LICENSE }}
#...
# ステップの最後などに game-ci/unity-return-license@v1 を呼び出して
# アクティベート済みのライセンスを返却する
- name: Return license
uses: game-ci/unity-return-license@v1
if: always()
おわりに
以前 결속コマンドを駆使して自分で 단어環境を構築した経験があるのですが、
가메치を利用した方が全然楽に 통일어環境構築を GitHub 작업上で行えました.
ちなみに GameCI で利用されている Docker イメージ は以前からよく使われていた gableroux/unity3d が元になっているようでした.ってか GabLeRoux さんのホームページ を見たら、가메치の開発を始めた方のようでした.すごい.
本記事が GitHub 작업で 통일어環境構築を始めようとしている方の助けになれれば幸いです.
参考リンク
가메치には現状下記の GitHub 작업が用意されているようです.
機能
概要
Activation
결속ライセンスを任意の 결속バージョンで発行する
Test runner
결속の 게임 모드及び 편집 모드のテストを実行する (テスト結果の出力にも対応)
Builder
任意の 플랫폼ビルドを実行する ( アーティファクト 利用でダウンロードも可能)
Returning a license
결속ライセンスの返却ができる (직업허가증)のみ対応)
Remote builder
GitHub 작업のスペックでは満足のいくビルドができない際に AWS環境でハイスペックなマシンを用意してビルドできる.ビルドのためのインフラ構築には AWS CloudFormation を使用している (現在は AWSのみ対応.今後 GCP,Azureにも対応予定とのこと)
Deployment
결속ビルドを各種 플랫폼向けにデプロイする (iOS)及び 안드로이드のみ記載あり.厳密に言うと
Builder
でビルド出力した内容を fastlane
を用いてデプロイするためのワークフロー紹介になっている)上記を見ると既に 가메치には開発者として 통일어に欲しい機能は最低限揃っているように見受けられました. また本記事では、今後機会があれば試してみたいと考えていますが 원격 생성기及び 배치하다については言及していません.
今回は実例を交えながら 활성화及び 테스트 실행자, 생성기, 반환 허가증の使用方法について紹介していきます.
활성화:Gameciで必要となる 통합 라이센스のアクティベーションを行う
가메치で 결속ライセンスをアクティベートするには Activation を利用します.早速ドキュメントの手順に沿って作業を進めていきます.
まず 단어を導入したい github上の 결속プロジェクトの
.github/workflows
内に 결속ライセンスアクティベート用のワークフローファイルを作成します.name: Acquire activation file
on:
workflow_dispatch: {}
jobs:
activation:
name: Request manual activation file 🔑
runs-on: ubuntu-latest
steps:
# GameCI の Activation を利用して alf ファイルを発行する
- name: Request manual activation file
id: getManualLicenseFile
uses: game-ci/unity-request-activation-file@v2
with:
# Unity プロジェクトのバージョンを指定する
# ProjectSettings/ProjectVersion.txt に記載されているバージョンを入力すれば OK
unityVersion: 2020.3.5f1
# 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 }}
その後、 デフォルトブランチ にプッシュして GitHub 작업で実行可能にしたら、下記手順に従い 결속ライセンスファイルのアクティベート及びダウンロードを行います.1ブラウザから githubリポジトリにアクセスして、결속ライセンスアクティベート用のワークフローを実行して
alf
ファイルを生成する2ワークフローの実行に成功したら、該当項目をクリックして詳細画面に遷移する
3.
Artifacts
の項目から alf
ファイルをダウンロードする4. Unity license manual activation webpage からログインして
alf
ファイルをアップロードする5. 단결ライセンスの利用用途に応じて適切な選択肢を入力する (本記事では 개인적ライセンスを選択)
6.
Download license
ボタンをクリックして ulf
ファイルをダウンロードするこれで 결속ライセンスファイルのアクティベートは完了です.次にアクティベートしたライセンスファイルを githubリポジトリの Secrets に登録して、가메치で 게임 모드及び 편집 모드のテストが実行できるようにしていきます.
alf
拡張子のファイルがライセンスリクエストファイルを指していて、결속ライセンスの発行に必要となるファイルです. ulf
拡張子のファイルが 결속ライセンスのファイルです. 1 테스트 주자: 게임 모드及び 편집 모드テストを実行して結果を参照する
GitHub 작업上でテストを実行するために、先ほどアクティベートした 결속ライセンスの情報を ワークフロー上で扱えるようにする必要があります.そのため、まずは 비밀.に
ulf
ファイルの内容を登録することから始めます.1. 단결ライセンスの情報登録のため、githubリポジトリの
Secrets
登録画面に遷移する2.GameCIはライセンス情報参照のため、デフォルト設定では
Secrets
の UNITY_LICENSE
を参照する.そのため、 Name
が UNITY_LICENSE
、 Value
には ulf
ファイルの中身を登録する 2 上記作業で 가메치でテストやビルド実行を行える環境が整ったので、動作検証のためテスト実行用のワークフローファイルを作成します.
name: Run EditMode and PlayMode Test
on:
workflow_dispatch: {}
jobs:
test:
name: Run EditMode and PlayMode Test
runs-on: ubuntu-latest
steps:
# actions/checkout@v2 を利用して作業ディレクトリに
# Unity プロジェクトの中身をダウンロードしてくる
- name: Check out my unity project.
uses: actions/checkout@v2
# GameCI の Test runner を利用して
# EditMode 及び PlayMode のテストを実行する
- name: Run EditMode and PlayMode Test
uses: game-ci/unity-test-runner@v2
env:
# 2. の手順で Secrets に登録した Unity ライセンスの情報を指定する
UNITY_LICENSE: ${{ secrets.UNITY_LICENSE }}
# もし Professional license を使いたい場合は、
# メールアドレス、パスワード、シリアルナンバーを入力する必要がある
# ref: https://game.ci/docs/github/test-runner#professional-license
# UNITY_EMAIL: ${{ secrets.UNITY_EMAIL }}
# UNITY_PASSWORD: ${{ secrets.UNITY_PASSWORD }}
# UNITY_SERIAL: ${{ secrets.UNITY_SERIAL }}
with:
projectPath: .
# テストの実行結果もみたい場合は githubToken を指定する
# secrets.GITHUB_TOKEN は Secrets 未登録でも利用可能
githubToken: ${{ secrets.GITHUB_TOKEN }}
# Unity プロジェクトのバージョンを指定する
# ProjectSettings/ProjectVersion.txt に記載されているバージョンを入力すれば OK
unityVersion: 2020.3.5f1
# 実行したいテストの種類を指定できる
# 指定可能な値は All, PlayMode, EditMode
# testMode: All
# テスト実行時に利用したい Docker イメージを明示的に指定できる
# customImage: 'unityci/editor:2020.1.14f1-base-0'
# テストの実行結果をアーティファクトにアップロードしてダウンロードして参照できるようにする
- uses: actions/upload-artifact@v2
if: always()
with:
name: Test results
path: artifacts
上記のワークフローファイルを GitHub 작업上で動作検証する際の手順は下記になります.1. 단결のテストを実行するためのワークフローを選択して実行する
2ワークフローの実行が成功したら、詳細画面に遷移した後、
Test Results
の項目からテストの実行結果を確認するテスト実行用のワークフローファイルでは
workflow_dispatch
で実行可能にしていますが、 pull_request
を利用すればプルリク時にテストを実行させることが可能になります.건설자:プロジェクトのビルドを実行して出力結果を確認する
가메치にはプロジェクトのビルドを行うための GitHub 작업も用意されています.実際に 가메치で WebGLビルドを行いその内容を GitHub 페이지で確認できるようにして動作検証していきます.
早速 WebGLビルドを行うためのワークフローファイルを作成していきます.
name: Run the WebGL build
on:
workflow_dispatch: {}
jobs:
build:
name: Run the WebGL build
runs-on: ubuntu-latest
steps:
# actions/checkout@v2 を利用して作業ディレクトリに
# Unity プロジェクトの中身をダウンロードしてくる
- name: Check out my unity project.
uses: actions/checkout@v2
# GameCI の Builder を利用して、
# Unity プロジェクトのビルドを実行する
- name: Run the WebGL build
uses: game-ci/unity-builder@v2
env:
UNITY_LICENSE: ${{ secrets.UNITY_LICENSE }}
with:
# 今回は WebGL ビルドを行いたいため WebGL を指定する
# WebGL 以外の指定可能な値は下記に記載の値が利用可能
# ref: https://docs.unity3d.com/ScriptReference/BuildTarget.html
targetPlatform: WebGL
unityVersion: 2020.3.5f1
# Builder で出力した WebGL ビルドを GitHub Pages にデプロイする
- name: Deploy to GitHub Pages
uses: JamesIves/[email protected]
with:
# GitHub Pages デプロイ用の Orphan ブランチ名を指定する
branch: gh-pages
# デプロイ用ビルドフォルダパスを指定する
# GameCI の Builder はデフォルトでは build フォルダにビルド内容を出力する
folder: build
# Builder で出力した WebGL ビルドをアーティファクトでダウンロード可能にする
- name: Upload the WebGL Build
uses: actions/upload-artifact@v2
with:
name: Build
path: build
上記のワークフローファイルを GitHub 작업上で動作検証する際の手順は下記になります.1. 단결の WebGLビルドを実行するためのワークフローを実行する
2ワークフローの実行が成功したら、詳細画面に遷移した後、ビルド内容が正常そうか確認する
셋.ビルド内容を確認するための GitHub 페이지の設定を 설정から行う
4. GitHub 페이지でブラウザから WebGLビルドの動作確認をする
上記のように 건설자を利用することで WebGLビルドの成否及び、最新のビルド内容を常に GitHub 페이지で見られるようにできます. すると WebGLビルドが正常かどうかの確認が常に GitHub 페이지を見れば把握できるようになるため、 Unity1 週間ゲームジャム などに参加する際で便利に活用できそうです.
WebGLビルドを行う際、결속バージョンやアセットの対応状況によっては正しくブラウザ上で動作しないビルドが出力されます.ただし、ブラウザで発生するエラー内容によっては WebGLのビルド設定を見直すだけで解決できる場合があります. 例えば
unityframework is not defined
というエラーが発生した際は、 この記事 のように WebGLの Build Settings
を見直すことで解決できる場合があります.私の環境では
JamesIves/github-pages-deploy-action
で GitHub 페이지へのデプロイを行った際、デフォルトでは /WebGL/WebGL
フォルダにビルド内容が出力されました.そのため、ブラウザから WebGLビルドにアクセスする際、 <GitHub Pages の URL>/WebGL/WebGL
のような 통합 리소스 포지셔닝 주소にアクセスする必要がありました.라이센스 반환: GamecIで利用している 통합 라이센스を返却する
通常利用することは無いと 公式サイト にも書かれていますが、직업 허가증の返却も 가메치で行うことが可能です. 今回は 개인 면허증を利用したため使用しませんでしたが、下記をワークフローのステップに組み込むことで 직업 허가증を返却できるようです.
# ...
# どこかのタイミングでライセンスのアクティベートを行う
- name: Activate Unity
uses: game-ci/unity-activate@v1
env:
UNITY_LICENSE: ${{ secrets.UNITY_LICENSE }}
#...
# ステップの最後などに game-ci/unity-return-license@v1 を呼び出して
# アクティベート済みのライセンスを返却する
- name: Return license
uses: game-ci/unity-return-license@v1
if: always()
おわりに
以前 결속コマンドを駆使して自分で 단어環境を構築した経験があるのですが、
가메치を利用した方が全然楽に 통일어環境構築を GitHub 작업上で行えました.
ちなみに GameCI で利用されている Docker イメージ は以前からよく使われていた gableroux/unity3d が元になっているようでした.ってか GabLeRoux さんのホームページ を見たら、가메치の開発を始めた方のようでした.すごい.
本記事が GitHub 작업で 통일어環境構築を始めようとしている方の助けになれれば幸いです.
参考リンク
alf
ファイル及び ulf
ファイルの実態は XMLファイルです. ↩ 適当なテキストエディタで
ulf
ファイルを開き全文をコピー & ペーストします. ↩ Reference
이 문제에 관하여([TECH]GameCIで 결속の 단어環境を GitHub 작업で構築する 🎮), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/nikaera/tech-gameci-unity-ci-github-actions-4p35텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)