5
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

GitHub ActionsでUnityTestRunnerを実行する(GameCI)

Posted at

GameCIを使ったら、すごく簡単にUnityでもGitHubActionsが使えたのでご紹介します。
英語がわかる方は公式のGetting Startedを見たほうが早いです。
※ちなみにパーソナルライセンスではビルドができなかったため、本記事には載せていないのですがv2.0のalpha版では使えたので、正式リリースされたら記事を書きます〜

この記事の対象の方

  • UnityTestRunnerの手動実行に疲れた方
  • チーム開発の生産性をあげたい方
  • てっとり早くUnityプロジェクトでGitHub Actionsを使いたい方 ←
  • GitHubのVM上でUnity動かしたい方

必要な環境

  • Unityライセンス(無料のパーソナルでOK)
  • Unityプロジェクト
  • GitHubActionsが実行可能なGitHubアカウント

実現したいこと

  1. GitHubでPushされる
  2. 自動でUnityTestRunnerが走る
  3. 結果ファイルがダウンロードできる

ビルドまでの道

準備は2つで、あとはトリガーに従ってテストとビルドが実行されます。

  • ymlの用意
  • Unityアクティベート

必要なymlを用意

.github/workflows/ 配下に2つのファイルを配置してmainブランチとマージしてください。
サンプルはこの環境で設定しています。
UnityVersion: 2019.4.5f1
ビルドターゲット: Android

  • activation.yml
    GitHubActionsのVM上でUnityを動かせるようにライセンスと紐付けます
activation.yml
name: Acquire activation file
# Work when you need
on: workflow_dispatch 

jobs:
  activation:
    name: Request manual activation file 🔑
    runs-on: ubuntu-latest
    steps:
     # R:equest manual activation file
    - name: Request manual activation file
      id: getManualLicenseFile
      uses: webbertakken/unity-request-manual-activation-file@v1.2
      with:
        unityVersion: 2019.4.5f1
    - name: Expose as artifact
      uses: actions/upload-artifact@v1
      with:
        name: ${{ steps.getManualLicenseFile.outputs.filePath }}
        path: ${{ steps.getManualLicenseFile.outputs.filePath }} 
  • main.yml
    テスト実行とビルドをしてくれます。
    デフォルトだとEditTest, PlayTestの両方が実行されます。
main.yml
name: Unity Workflow Sample
on: [push]
env:
  UNITY_LICENSE: ${{ secrets.UNITY_LICENSE }}

jobs:
  setup:
    runs-on: ubuntu-latest
    steps:
     - name: Checkout repository
       uses: actions/checkout@v2
       with:
         lfs: true

     - uses: webbertakken/unity-test-runner@v1.4
       with:
        unityVersion: 2019.4.5f1

     - uses: actions/upload-artifact@v1
       with:
        name: Test results
        path: artifacts

Unityアクティベート

パーソナル(無料)の方

  1. GitHub のActionsタブからactivation.ymlを実行(Run workflow)します。
    スクリーンショット 2021-02-13 16.21.49.png
  2. alfファイルをダウンロードしてきます。
    スクリーンショット 2021-02-13 16.42.16.png
  3. license.unity3d.comでalfファイルをアップロードします。そうするとulfファイルがもらえます。
  4. urlファイルの中身をコピーしてをGithubの Settings > SecretsUNITY_LICENSEに貼り付ける

プロフェッショナルの方

必要情報をSecretsに詰めるだけでかんたんです。 公式ドキュメントに従って入力してください。

動作結果

あとはGitHubActionsのトリガーを実行するだけです。
何かしらpushがあったときに、main.ymlが動きます。
テスト結果がartifactsにアップロードされています。
スクリーンショット 2021-02-13 18.19.34.png

所感

UnityTestRunnerが動くようになったので、
PRで「自動テストちゃんと直しましたか?」という質問はいらなくなりまたね。
あとテスト結果を見やすくしたいですね...

ビルドはしばしお待ち下さい

パーソナルライセンスでのビルドが今失敗してしまいますが、v2.0では修正されています。
こちらを参考にビルドも作ってみてください。

参考

GameCI

5
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?