はじめに
今回はGameCIを用いてUnityのCI 環境をGitHub Actions上に構築し、Test Frameworkを実行&結果をアップロードする方法を紹介したいと思います。
具体的には以下の2つを紹介します。
- GameCIを利用するための設定方法
- TestFrameworkをGitHub Actions上で実行する方法
Unityライセンスを設定する
GameCIが用意してくれているすべてのActions
はUnityのインストールが必要であり、ライセンスを適応させる必要があります。
personal
かprofessional
ライセンスかどうかで手順が異なるのですが、今回はpersonal
のやり方を紹介したいと思います。
Unityライセンス.ulfファイルをローカルマシーンから探す
まだUnityライセンスを取得していない方は、ご自身のパソコンにUnity Hub
をインストールしてpersonal
ライセンスを作成、CIで利用するライセンスでログインも済ませておいてください。
unity.com
Unity Hubでアクティベートしているライセンスを探す必要があります。パスはいかにあります。
Windows: C:\ProgramData\Unity\Unity_lic.ulf Mac: /Library/Application Support/Unity/Unity_lic.ulf Linux: ~/.local/share/unity3d/Unity/Unity_lic.ulf
GitHubリポジトリの設定から設定する
ライセンスの情報をリポジトリに設定します。GitHub
を開いて、対象リポジトリのSettings > Secrets and Variables > Actions
を開いてください。
Repository secrets
にあるNew repository secret
ボタンを押し、以下の値を入力します。
UNITY_LICENSE
-Unity_lic.ulf
の中身を記載しますUNITY_EMAIL
- ログインするためのメールアドレスを記載しますUNITY_PASSWORD
- ログインするためのパスワードを記載します
ワークフローの設定
正しく構築できたかTestRunnerを実行して試してみましょう。
.github/workflows上にyamlファイルを作成する
name: GitHub Actions Sample # GitHub上でワークフローを手動実行できるようにする on: workflow_dispatch jobs: test: name: Run TestFramework runs-on: ubuntu-latest steps: # Checkout - name: Checkout repository uses: actions/checkout@v4 with: lfs: true # Test - name: Run Tests uses: game-ci/unity-test-runner@v4 env: UNITY_LICENSE: ${{ secrets.UNITY_LICENSE }} UNITY_EMAIL: ${{ secrets.UNITY_EMAIL }} UNITY_PASSWORD: ${{ secrets.UNITY_PASSWORD }} with: # secrets.GITHUB_TOKENは自動生成されるので自身で設定する必要はない githubToken: ${{ secrets.GITHUB_TOKEN }} # Unity プロジェクトのバージョンを指定する(ProjectSettings/ProjectVersion.txt に記載されているバージョンを入力) unityVersion: 2021.3.0f1 # TestするModeを指定する testMode: editmode # Test結果をアップロードする (デフォルトでは Test Framwork は結果を artifacts という名前のフォルダに出力) - name: Upload Test Results uses: actions/upload-artifact@v3 if: always() with: name: Test results path: artifacts
ちなみに${{ secrets.GITHUB_TOKEN }}
との記載がありますが、GITHUB_TOKEN
シークレットは自動的に作成されるので自身で設定する必要はありませんので注意してください。
自動トークン認証 - GitHub Docs
またテストの結果を確認するためにはGitHubのリポジトリ上でSettings > Actions > General > Workflow permissions
を選択し、Read and write permissions
を与えなければいけません。
ワークフローを手動実行する
今回はon: workflow_dispatch
のように指定しているため、GitHub上で手動で実行する必要があります。GitHub上でActoins > Workflows > [自身が定義したWorkflowの名前(
を開き、GitHub Actions Sample
)]Run workflow
を実行すると処理が始まります。
あとは無事に終わることを祈ります。
また今回のサンプルであればテスト結果としてArtifacts
の欄からTest results
をダウンロードすることができるはずです。