概要
- GithubActionsでUnityTestRunnner実行と結果を出力するまでの手順をまとめました
- 作業した手順の備忘録です
- 細かい説明は記事の最下部にある参考リンクを参照してください
環境
- Windows10 Home
- Unity 2018.4.19f1
事前準備
ALF作成
- GitHubでALF作成用プライベートリポジトリ作成
- .github/workflowsフォルダ以下にCreateLicenseALF.yamlを作成
- 内容は以下
CreateLicenseALF.yaml
name: Create ALF File
on: push
jobs:
build:
runs-on: ubuntu-latest
strategy:
matrix:
unity-version: [2018.4.19f1]
container: docker://gableroux/unity3d:${{ matrix.unity-version }}
steps:
- run: mkdir artifact
# 1.Unityを起動してALFファルを作成
- run: /opt/Unity/Editor/Unity -quit -batchmode -nographics -logfile -createManualActivationFile || exit 0
- run: cp "Unity_v${{ matrix.unity-version }}.alf" artifact
# 出力
- uses: actions/upload-artifact@v2
with:
name: ${{ matrix.unity-version }}
path: artifact
- 少し待つとALF作成用リポジトリのActionsタブに実行結果が表示される
- 正常に完了するとArtifactsに作成されたALFファイルが表示されるのでダウンロード
- zipファイルになっています
ULFファイルの取得
- 以下を開く
- 先ほどダウンロードしたzipを解凍してALFファイルをアップロード
- いくつかの質問に答えたらULFファイルがダウンロード出来るようになるのでULFファイルを保存
- 以降ALF作成用プライベートリポジトリは、使用しません(何かをプッシュするたびALFファイルが作成されてしまうため)
テストを行うUnityプロジェクトの作成とリポジトリの作成(必要な場合)
- テストを行う用のUnityプロジェクトを新規作成します
- UnityプロジェクトにPlayModeとEditModeのテストコードを追加
- テストを行う用のリポジトリを新規作成します
ULFファイルをSecretsに設定する
- 以降はテストを行う用のUnityプロジェクト・リポジトリに移動して作業を行います。
- テストを行う用リポジトリの Settings > Secrets を開く
- ページ右上のNew repository secretを押す
- Nameに「UNITY_LICENSE」を入れ、先ほどのULFファイルの中身をまるっとValueにコピペします
- Add secret を押下で設定完了です
テストを行う用のリポジトリにテスト用yaml追加
- .github/workflowsフォルダ以下にUnityTest.yamlを作成
- 内容は以下
UnityTest.yaml
name: UnityTest
on: push
env:
UNITY_LICENSE: ${{ secrets.UNITY_LICENSE }}
PROJECT_ROOT: .
jobs:
testAllModes:
name: Test in ${{ matrix.testMode }} on version ${{ matrix.unityVersion }}
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
unityVersion:
- 2018.4.19f1
testMode:
- playmode
- editmode
steps:
- uses: actions/checkout@v1
with:
lfs: true
- uses: actions/cache@v1.1.0
with:
path: ${{ env.PROJECT_ROOT }}/Library
key: Library-${{ env.PROJECT_ROOT }}
- uses: webbertakken/unity-test-runner@v1.4
id: tests
with:
projectPath: ${{ env.PROJECT_ROOT }}
unityVersion: ${{ matrix.unityVersion }}
testMode: ${{ matrix.testMode }}
artifactsPath: ${{ matrix.testMode }}-artifacts
- uses: actions/upload-artifact@v1
with:
name: Test results for ${{ matrix.testMode }}
path: ${{ steps.tests.outputs.artifactsPath }}
- 少し待つとテストを行う用のリポジトリ内Actionsタブに実行結果が表示される
- 正常に完了するとArtifactsにテスト結果が表示されます
- 以下の2ファイルが表示されていれば成功です
- Test results for editmode
- Test results for playmode
- zipファイルになっています
- 解凍すると中にテスト結果がxmlに書き出されています
- editmode-results.xml
- playmode-results.xml
参考リンク
-
【Unity】GithubActionsでUnityを起動してTestRunner実行後の結果を出力するまでの手順
-
【Unity】GitHub Actions v2でUnity Test Runnerを走らせて、結果をSlackに報告する【入門】
-
Unityでエディタ拡張を作っている人向けの「GitHub Actionsを使ったCI構築」