UnityのAndroidビルドをGitHubActionsでビルドしてDeployGateにデプロイする

初めに

先日 以下のようにfirebaseにgithub actinosからビルドしてAndroid/Webをデプロイするワークフローを作成しました。今回は DeployGateにデプロイするワークフローを作成していきます

ayousanz.hatenadiary.jp

ayousanz.hatenadiary.jp

以下が今回のRepositoryです

github.com

開発環境

  • Unity 6000.43.f1

DeployGateの設定

アカウントを作成後 アカウント設定からAPIキーを発行します

このAPIキーとユーザー名を以下のように GitHubのRepository Secretに登録します。

ビルドワークフロー

前回の記事でも書いたので、細かいところは省略します。

GitHub ActionsでGameCIを使ってAndroidのビルドを行うワークフローは以下になります

name: Unity Build and Deploy

on:
  push:
    branches: [ main ]
  pull_request:
    branches: [ main ]
  workflow_dispatch:

env:
  UNITY_VERSION: '6000.0.43f1'
  FIREBASE_PROJECT_ID: ${{ secrets.FIREBASE_PROJECT_ID }}

jobs:
  # Android向けビルドとデプロイジョブ
  build-android:
    name: Build and Deploy Android
    runs-on: ubuntu-latest
    steps:
      - name: Checkout repository
        uses: actions/checkout@v4.2.2

      # ディスク容量の確保
      - name: Free disk space
        run: |
          sudo swapoff -a && sudo rm -f /swapfile
          sudo rm -rf /usr/share/dotnet
          sudo rm -rf /opt/ghc /usr/local/.ghcup
          sudo apt-get remove -y google-cloud-cli || sudo apt-get remove -y google-cloud-sdk
          sudo apt-get autoremove -y && sudo apt-get clean
          docker system prune -af
          df -h

      - name: Clean up Docker space
        run: docker system prune --volumes -a -f

      - name: Cache Unity Library - Android
        uses: actions/cache@v4.2.0
        with:
          path: Library
          key: Library-Android-${{ hashFiles('Assets/**', 'Packages/**', 'ProjectSettings/**') }}
          restore-keys: |
            Library-Android-

      - name: Build Android App
        uses: game-ci/unity-builder@v4.3.0
        env:
          UNITY_EMAIL: ${{ secrets.UNITY_EMAIL }}
          UNITY_PASSWORD: ${{ secrets.UNITY_PASSWORD }}
          UNITY_LICENSE: ${{ secrets.UNITY_LICENSE }}
        with:
          targetPlatform: Android
          buildsPath: build
          buildName: MyAndroidApp
          androidExportType: androidPackage
          unityVersion: ${{ env.UNITY_VERSION }}

      - name: Upload Android Build Artifact
        uses: actions/upload-artifact@v4.6.0
        with:
          name: Build-Android
          path: build/Android/MyAndroidApp.apk

デプロイワークフロー

GitHub Actionsからデプロイゲートへのアップロードの処理は以下になります

      - 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

アップロードが完了すると以下のようにダッシュボードのタイムラインに反映されます

参考記事

qiita.com