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

[Unity]GitHubActionsで自動ビルドしてDeployGateで配布する

Posted at

概要

無料の範囲でUnityプロジェクトをクラウドビルドしてテスター用に配布までしたい! との思いからやってみました。

結果、GitHubにプッシュすると自動ビルドしてアプリの配布までしてくれるようになったので解説していきます。

※アプリの配布はDeployGateを使っています。

環境

Windows 11 Home
Unity2022.3.16f1(Personalライセンス)
SourceTree
GitHub
DeployGate(Individualプラン、メンバー3人まで。リンクによる配布は100人まで)

UnityプロジェクトのGitHub管理

まずUnityプロジェクトをGitHubで管理できるようにしておきます。

私はSourceTreeを使いましたが、各自やりやすい方法でやってください。

SourceTreeを使う場合は下記の記事が参考になります。

DeployGateのアカウント作成とAPIキーの確認

DeployGateのアカウントを作成します → https://deploygate.com/users/signup

アカウントを作ったら設定画面からAPI Keyを確認します。(後々使うので控えておいてください)
アカウント設定 > プロフィール > API Keyにあります。

ulfファイルの確認

下記の場所にulfファイルが存在するはずです。確認してみてください。(これも後々使います)

Windows: C:\ProgramData\Unity\Unity_lic.ulf
Mac: /Library/Application Support/Unity/Unity_lic.ulf
Linux: ~/.local/share/unity3d/Unity/Unity_lic.ulf

シークレット設定

GitHubリポジトリのSettings > Secrets and variables > Actionsに移動します。

New repository secretボタンをクリックしてシークレットを追加します。

NameにDEPLOYGATE_API_KEYと入力し、Secretに先ほど確認したDeployGateのAPIキーを登録します。

同じように以下のシークレットも追加していってください。

  • DEPLOYGATE_USER_NAME: DeployGateのユーザー名
  • UNITY_EMAIL: Unityアカウントのメールアドレス
  • UNITY_PASSWORD: Unityアカウントのパスワード
  • UNITY_LICENSE: 先ほど確認したulfファイルの内容をコピペ

パーソナルアクセストークンの作成

GitHubページ右上のプロフィールアイコンをクリックしてSettingsを選択します。

左側のメニューからDeveloper settingsを選択し、その後Personal access tokens > Tokens (classic)を選択します。

「Generate new token」をクリックします。

トークンに名前を付け、スコープはrepoworkflowを選択します

トークンを生成し、安全な場所に保存します。このトークンは一度しか表示されないので注意してください。

GitHubリモートURLの更新

作成したパーソナルアクセストークンを使ってリモートURLを更新します。

SourceTreeを使っている場合

SourceTreeを開き、対象のリポジトリを選択します。

上部のメニューから設定を選択します。

「リモート」タブのパスを選択して編集をクリックします。

リモートURLを次の形式に更新します

https://ghp_yourgeneratedtoken@github.com/yourusername/yourrepository.git

SourceTreeを使っていない場合

ターミナルまたはコマンドプロンプトを開き、リポジトリのディレクトリに移動します。

次のコマンドを実行して、GitHubリモートURLを更新します。

git remote set-url origin https://ghp_yourgeneratedtoken@github.com/yourusername/yourrepository.git

ymlの作成

Unityプロジェクトをビルドし、DeployGateにアップロードするためのワークフローを記述します。

リポジトリのルートに.github/workflowsフォルダを作成し、フォルダ内にbuild.ymlファイルを作成してください。

この例ではAndroid用にビルドしています。

build.yml
name: Build and Deploy to DeployGate

on:
  push:
    branches:
      - main # このブランチにプッシュされるとJobが実行される

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout repository
        uses: actions/checkout@v4
      
      - name: Remove unnecessary files
        run: |
          sudo rm -rf /usr/share/dotnet
          sudo rm -rf /usr/local/lib/android
          sudo rm -rf /opt/ghc

      - name: Cache Library folder
        uses: actions/cache@v3
        with:
          path: Library
          key: Library-$(hashFiles('**/Packages/manifest.json'))
          restore-keys: |
            Library-

      - name: Build for Android
        uses: game-ci/unity-builder@v4
        env:
          UNITY_LICENSE: ${{ secrets.UNITY_LICENSE }}
          UNITY_EMAIL: ${{ secrets.UNITY_EMAIL }}
          UNITY_PASSWORD: ${{ secrets.UNITY_PASSWORD }}
        with:
          projectPath: .
          targetPlatform: Android
          buildName: build
          buildsPath: build

      - name: Upload to DeployGate
        env:
          DEPLOYGATE_API_KEY: ${{ secrets.DEPLOYGATE_API_KEY }}
          DEPLOYGATE_USER_NAME: ${{ secrets.DEPLOYGATE_USER_NAME }}
        run: |
          APK_PATH=$(find build -name "*.apk" | head -n 1)
          echo "Uploading $APK_PATH to DeployGate"
          curl -F "file=@$APK_PATH" \
               -F "token=$DEPLOYGATE_API_KEY" \
               -F "message=New build from GitHub Actions" \
               https://deploygate.com/api/users/$DEPLOYGATE_USER_NAME/apps

onセクションのブランチ名をmainからdeployなどに変えると、deployブランチにプッシュされたときのみビルド、配信がされるようにできます。用途に合わせて変更してください。

プッシュする

変更をGitHubリポジトリにプッシュします。

GitHub Actionsが自動でビルドおよびDeployGateへの配信を行うか確認します。

DeployGateでアプリがアップロードされていたら成功です。できていなかったらGitHubリポジトリのActionsタブでエラーが出ていないか確認してみてください。

最後に

無料とは言いましたが、GitHub Actionsには使用枠の制限があります。

無料枠ではGitHub ActionsでJobを実行できる時間が月2000時間になっており、それを超えるとJobを実行できなくなります。勝手に課金されることはないみたいなのでそこは安心ですね。

現在の使用時間はアカウントのSetting > Billing and plansActionsから確認できます。

参考にしたサイト

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