AIを使ったのに俺のゲームがリリースできないわけがない#4|GitHubに置こう:ボタンでワークフローを動かす

Run workflow(ブランチ:main を選んで押す)→ Actions が緑(hello のワークフロー)。git のコマンドを打たなくても、ブラウザのボタンだけで動かせる。次回から、この「動いた先」でビルドと配信をしていく
今回のゴール:ボタンを押すと、Actions が動いて緑になる

前回は、コマンド1行でビルド出来る BuildScript を作りました。でも、そのコマンドを打つのが自分のパソコンのままでは、まだ自動とは言えません。そこで今回は、プロジェクトを GitHub に置いて、ブラウザのボタンを押すと GitHub Actions が動くところまで作ります。まだビルドはしませんが、「ボタン1つで、GitHub のサーバーが手順を動かしてくれる」という自動化の入口を、はじめて動かしてみたいと思います!

目次

privateリポジトリを作ろう

GitHub の Create a new repository の画面。General に Owner(アカウント名はモザイク)と Repository name の欄、Configuration に Choose visibility(Public のまま)、Add README:Off、Add .gitignore:No .gitignore、Add license:No license
Repository name を入れて、Choose visibility を Private にする

GitHub のアカウントと Git の準備がまだのときは、UnityのプロジェクトをGithubで管理withSourceTree【準備編】を見てください。

  • GitHub の右上の「+」>New repository を開く
  • Repository name:unity-release(好きな名前でOK)
  • 公開の範囲は Private(自分だけが見られる)
  • README・.gitignore・license は付けない(空のリポジトリにする。中身は手元から上げる)

private のリポジトリでも、GitHub Actions は無料のプランで月2,000分まで使えます(2026年10月時点)。

上げるもの・上げないもの

左は上げるもの(ゲームの元):Assets(スクリプト・画像・シーン)、Packages(使っているパッケージの一覧)、ProjectSettings(Player などの設定)、release.json・.github(前回と今回で作ったもの)。右は上げないもの(.gitignore に書く):Library・Temp(Unity が作り直せる)、Build・Logs(ビルドしたもの・ログ)、UserSettings(自分のパソコンだけの設定)、*.csproj・*.sln(エディタが自動で作る)
Library や Build は上げない

上げる前に、プロジェクトのフォルダの直下に .gitignore を置きます。ここに書いたフォルダやファイルは、GitHub に上げられません。GitHub が用意している Unity 用の .gitignore をそのまま使えばOKです。主な行はこのようになっています。

/[Ll]ibrary/
/[Tt]emp/
/[Oo]bj/
/[Bb]uild/
/[Bb]uilds/
/[Ll]ogs/
/[Uu]ser[Ss]ettings/
*.csproj
*.sln
  • /[Bb]uild/:前回の BuildScript が .exe を出す Build フォルダ。ビルドしたものは上げない(ビルドはサーバーで毎回作り直す)
  • /[Ll]ibrary/:Unity が作る一時的なデータ。いちばん大きいフォルダで、無くても Unity が作り直す

GitHub には、1つのファイルが100MBを超えると上げられない決まりがあります(50MBを超えると注意が出ます)。星ふる夜の庭でいちばん大きいのはフォントの約5MBなので大丈夫でしたが、大きな動画や音のファイルがあるゲームは、上げる前に確かめておきましょう。

はじめての push

PowerShell で、プロジェクトのフォルダに移動して、次のように打ちます。ユーザー名 は自分の GitHub のアカウント名に変えてください。

cd D:\repositories\blog-anogame\projects\unity-release
git init -b main
git add .
git commit -m "星ふる夜の庭"
git remote add origin https://github.com/ユーザー名/unity-release.git
git push -u origin main
  • git init -b main:このフォルダを Git で管理する(ブランチの名前は main)
  • git add . と git commit:.gitignore に書いたもの以外を、まとめて記録する
  • git remote add origin …:上げる先に、さっき作ったリポジトリを登録する
  • git push -u origin main:GitHub に上げる(初めてのときは、ブラウザで GitHub へのログインを求められます)
push したあとの unity-release のリポジトリのトップ。名前の横に Private の表示があり、ファイルの一覧は .github/workflows・Assets・Packages・ProjectSettings・.gitignore・release.json で、Library と Build は無い。アカウント名とアイコンはモザイク
Library と Build が無ければOK

リポジトリのページを開いて、Assets や release.json が並んでいて、Library や Build が無ければOKです。

はじめてのGitHub Actions

GitHub Actions は、決めたきっかけで、GitHub のサーバーが手順を動かしてくれる仕組みです。手順は ワークフロー というファイルに書いて、.github/workflows フォルダに置きます。

unity-release/
├─ .github/
│  └─ workflows/
│     └─ hello.yml   ← ここ
├─ Assets/
└─ release.json

hello.yml の中身はこうです。

name: hello

# いつ動くか
on:
  # Actions の画面の「Run workflow」のボタンで動かす(「Use workflow from」で選んだブランチかタグで動く)
  workflow_dispatch:

jobs:
  hello:
    runs-on: ubuntu-latest
    permissions:
      contents: read
    steps:
      - name: リポジトリを取ってくる
        uses: actions/checkout@v5

      - name: どこで動いたかを表示する
        run: echo "${{ github.ref_name }} で動きました(きっかけ:${{ github.event_name }})"

      - name: release.json を読む
        run: cat release.json

      - name: Secrets を使ってみる
        env:
          AIKOTOBA: ${{ secrets.HELLO_SECRET }}
        run: echo "合言葉は $AIKOTOBA"
  • on:動くきっかけ
    • workflow_dispatch:Actions の画面にある Run workflow のボタンで動く
    • ふだんのコミットの push では動かない
  • runs-on: ubuntu-latest:動かすサーバー(Linux)
  • permissions: contents: read:リポジトリを読むだけの許可。このワークフローは、リポジトリに何も書き込まない
  • steps:上から順に動く手順
    • actions/checkout@v5:リポジトリの中身を、サーバーに取ってくる。@v5 のように版を決めておくと、勝手に中身が変わらない
    • run:コマンドを動かす。${{ github.ref_name }} には、ボタンを押すときに選んだブランチの名前(main)が入る
    • 「Secrets を使ってみる」は、次の節で入れる Secrets を使う

ファイルを作ったら、コミットして push しておきます。

git add .github/workflows/hello.yml
git commit -m "hello のワークフロー"
git push

push しただけでは、ワークフローは動きません。Actions のタブに hello が出ていればOKです。いつ動くかは、自分がボタンを押したときです。

スライム

コミットを push するたびにビルドが走ったら、ちょっと怖いなって思ってました・・・

フェアリー

on に書いたきっかけでしか動かないから大丈夫! AIに書いてもらっても、on の行だけは必ず読んでおこうね

Secretsの入れ方

unity-release の Settings>Secrets and variables>Actions の画面。左のメニューで Secrets and variables の Actions が選ばれていて、右の Secrets のタブの Repository secrets に HELLO_SECRET の行が1つ(Last updated:last week)、右上に緑の New repository secret のボタン
Repository secrets に HELLO_SECRET が入った

このあとの回では、UBA の API キーや、ストアに上げるための鍵を使います。こういった人に見られてはいけない値は、リポジトリのファイルに書かず、Secrets に入れます。

  • リポジトリの Settings>Secrets and variables>Actions を開く
  • New repository secret を押す
    • Name:HELLO_SECRET(英数字と _ で付ける。大文字にしておくと見分けやすい)
    • Secret:好きな言葉(ここでは練習なので、合言葉)
  • Add secret で保存する

ワークフローの中では ${{ secrets.HELLO_SECRET }} で使えます。hello.yml では、それを env で AIKOTOBA に入れて、echo で表示しようとしています。

Secrets は、保存したあとは自分でも中身を見られません(上書きは出来ます)。元の値は、なくさないように自分で控えておきましょう。また、release.json やスクリプトには鍵やパスワードを絶対に書かないでください。private のリポジトリでも、あとで人を招待したり、公開に切り替えたりすると見えてしまいます。

ボタンで動かしてみよう!

hello の画面で Run workflow を押して開いた小さな画面。Use workflow from:main だけがあり、下に Cancel と緑の Run workflow のボタンが並ぶ。左には hello #3・hello #2 の実行が並ぶ。アカウント名はモザイク
ブランチは main のまま、緑の Run workflow を押す
  • リポジトリの上の Actions のタブを開く
  • 左の一覧で hello を選ぶ
  • 右の Run workflow を押す
    • Use workflow from:main のまま
  • 緑の Run workflow を押す

入れるものは、どのブランチで動かすかだけです。選んだブランチの、いま GitHub にある最新の中身で動きます。何回押しても、同じように動きます。

git のタグを自分で作っている人は、Use workflow from の一覧の Tags のタブで、タグも選べます。このシリーズでは main を選ぶだけで進めます。

Actionsの画面で結果を見る

unity-release の Actions の hello の画面。一覧のいちばん上に「hello #3: Manually run by …」の実行があり、main、緑のチェック、13s。その下に hello #2。アカウント名はモザイク
Manually run(ボタンで動かした)の実行に、緑のチェック

少し待つと、一覧に実行が出ます。緑のチェックが付いていれば成功です(失敗すると赤い×になります)。ボタンで動かした実行には、Manually run と出ます。

hello #3 の実行の Summary。Manually triggered、コミット 56ac9ef、main、Status:Success、Total duration:13s、hello.yml の on: workflow_dispatch の下に hello のジョブ(7s)。下の Annotations に ubuntu-latest が Ubuntu 26 に移るというお知らせが1つ。アカウント名はモザイク
on: workflow_dispatch(ボタン)で動いて、Success
hello のジョブの手順の一覧。Set up job、リポジトリを取ってくる、どこで動いたかを表示する、release.json を読む、Secrets を使ってみる、Post リポジトリを取ってくる、Complete job が並び、どれもチェックが付いている。succeeded in 7s
hello のジョブの手順。全部にチェックが付いた

行をクリックして、hello のジョブを開くと、手順ごとのログが見られます。手順の行の左の > を押すと、その手順のログが開きます。実行のページに「ubuntu-latest が Ubuntu 26 に移る」というお知らせ(Annotations)が出ることがありますが、今回の手順には関係ないので、気にしなくてOKです。

hello のジョブのログ。リポジトリを取ってくる、どこで動いたかを表示する(main で動きました(きっかけ:workflow_dispatch))、release.json を読む(productName:星ふる夜の庭、fileName:StarGarden)、Secrets を使ってみる(env の AIKOTOBA は ***、表示は「合言葉は ***」)。どの手順にも緑のチェック
手順ごとのログ。ブランチの名前と release.json が読めた

自分のときは、ジョブそのものは7秒で終わりました。

  • 「どこで動いたかを表示する」に、選んだブランチ(main)と、きっかけ(workflow_dispatch=ボタン)が出る
  • 「release.json を読む」で、GitHub に上げた release.json が読めている(サーバーにも、手元と同じプロジェクトが届いている)
  • 「Secrets を使ってみる」の合言葉は *** になっている

ログを見ると、合言葉のところが *** になっています。Secrets に入れた値は、ログに出そうとしても GitHub が自動で伏せてくれます。

スライム

合言葉が *** になってる!自分で入れたのに読めないの、ちょっとさみしいですね・・・

Actions の分数は、ジョブごとに1分単位に切り上げて数えられます。7秒で終わっても1分として減るので、無料の2,000分なら、この hello は月に2,000回ぐらい動かせる計算です。

今回の自動化チェック
– GitHub に private のリポジトリがあって、Library と Build が上がっていない
– Actions の hello で Run workflow を押す(main)と、緑になる
– ログに、ブランチの名前と release.json の中身が出て、Secrets は *** になっている
– もう一度押しても、同じように緑になる
– ふだんのコミットの push では動かない

次回は

次回は、Unity Build Automation を設定して、Unity のクラウドで星ふる夜の庭をビルドしてみます。何分かかったかも測って、お金の話の準備をしたいと思います!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメント一覧 (1件)

コメントする

目次