2
0

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.

UnityとGitHubActionsを使って自動テストを行う

Last updated at Posted at 2021-04-11

はじめに

最終的に仕上がったものは以下のリポジトリで公開してあります。
分からないことがあったときは参考にしてください。

手順

以下、UnityとGitHub Actionsを使って自動テストを行う手順です。

1. プロジェクトを用意する

適当にテストが含まれるプロジェクトのリポジトリを用意します。

2. ULFファイルを入手する

UnityライセンスをアクティベートするためのULFファイルを入手します。

この手順に関しては別の記事として書かせてもらいました。(GUIのみで簡単にできます)

3. ULFファイルをSecretsに登録する

  1. プロジェクトリポジトリのSettings > Secretsメニューを選択する。
  2. New repository secretボタンをクリックする。
  3. Nameに"UNITY_LICENSE"と入力し、ValueにULFファイルの中身をコピペする。
  4. Add secretボタンをクリックする。

これでULFファイルの中身は非公開のまま、環境変数として扱うことができます。

4. テストを走らせるためのYAMLファイルを記述する

.github/workflows/フォルダ下()にTest.yamlファイル(名前は何でもいい)を作成し、そこにテストを走らせるための処理を記述します。

Test.yaml
name: Test

on: [push, pull_request]

jobs:
  test:
    name: ${{ matrix.testMode }} on ${{ matrix.unityVersion }}
    runs-on: ubuntu-latest
    strategy:
      fail-fast: false
      matrix:
        projectPath:
          - .
        unityVersion:
          - 2020.3.1f1 # Secretsに登録したULFのUnityバージョンを記入
        testMode:
          - playmode
          - editmode
    steps:
      # Checkout
      - uses: actions/checkout@v2
        with:
          lfs: true

      # Cache
      - uses: actions/cache@v2
        with:
          path: ${{ matrix.projectPath }}/Library
          key: Library-${{ matrix.projectPath }}
          restore-keys: |
            Library-

      # Test
      - uses: game-ci/unity-test-runner@v2
        id: tests
        env:
          UNITY_LICENSE: ${{ secrets.UNITY_LICENSE }}
        with:
          projectPath: ${{ matrix.projectPath }}
          unityVersion: ${{ matrix.unityVersion }}
          testMode: ${{ matrix.testMode }}
          artifactsPath: ${{ matrix.testMode }}-artifacts
          checkName: ${{ matrix.testMode }} Test Results

      # Upload Artifact
      - uses: actions/upload-artifact@v2
        if: always()
        with:
          name: Test results for ${{ matrix.testMode }}
          path: ${{ steps.tests.outputs.artifactsPath }}

5. GitHub Actionsでテストを走らせる

上記のTest.yamlの場合だと、PushまたはPull RequestをするたびにGitHub Actionsでテストが実行されます。

以下の画像のように✔マークがついていれば成功です。
TestResult.jpg

さいごに

最終的に仕上がったリポジトリです。詰まったときは参考にしてみてください。

CIは初めてであまり詳しくないので、間違えているところがあれば教えてもらえると幸いです。

参考

2
0
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
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?