[Godot Engine]Github Actionsで自動ビルド&リリース
Godot EngineユーザーはGithubで非常にアクティブな印象で、Github Marketplaceでは有志の方々がGithub Actionsで自動ビルドからリリースまでを行ってくれるActionを公開しています。
Zenn的にはアクションを作るところから共有したほうがいいのかなーとも思うんですが、僕はそんな技術力はないので人様のアクションに頼ったものを紹介します。
Marketplaceでは2つ公開されていますが、個人的に使ったのは Godot Export というアクションです。
使い方
まずはプロジェクトを管理しているリポジトリにアクションを作成します。
set up workflow yourself
で自分でアクションを作ります。(この後はコピペになりますが)
アクションを作成
ドキュメントに沿って以下をコピペして作成しました。
# Whenever tag in the form of `v1.0.0` is pushed then run the job
on:
push:
tags:
- 'v*'
jobs:
# job id, can be anything
export_game:
# Always use ubuntu-latest for this action
runs-on: ubuntu-latest
# Job name, can be anything
name: Export Game Job
steps:
# Always include the checkout step so that
# your project is available for Godot to export
- name: checkout
uses: actions/checkout@v2.3.1
# Ensure that you get the entire project history
with:
fetch-depth: 0
# separate step to extract the version from the tag name
- name: get tag from version
id: tag_version
run: |
echo ::set-output name=TAG_VERSION::${GITHUB_REF#refs/tags/v}
- name: export game
# Use latest version (see releases for all versions)
uses: firebelley/godot-export@v2.5.0
with:
# Defining all the required inputs
# I used the mono version of Godot in this example
godot_executable_download_url: https://downloads.tuxfamily.org/godotengine/3.2.2/mono/Godot_v3.2.2-stable_mono_linux_headless_64.zip
godot_export_templates_download_url: https://downloads.tuxfamily.org/godotengine/3.2.2/mono/Godot_v3.2.2-stable_mono_export_templates.tpz
relative_project_path: ./
create_release: true
base_version: ${{ steps.tag_version.outputs.TAG_VERSION}}
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
オプションとして2種類用意されていて、特定ブランチにプッシュしたら自動的にビルド&リリース か 特定のタグが付いたコミットを自動的にビルド&リリース のいずれかになります。
今回使用したのは後者です。
僕の場合ですが、個人で開発するとあまりブランチ分けしないので、タグ管理の方が楽だなーと感じてます。
godot_executable_download_url
とgodot_export_templates_download_url
が3.2.2
になっていますが、公式のLinux版ダウンロードページから最新のURLを取得したほうが良いと思います。
エクスポート設定
Godot Engineのエディタ内でエクスポート設定をしておく必要があります。
上図の例では、Windowsに加えてMacOSX用のエクスポート設定もしてます。
Github Desktopでタグ付けする
コマンドラインを使われている方は、タグ付けするのは簡単だと思います。
$ git tag <tag-name>
僕はGithub Desktopを使用しているので、タグ付け方法も共有します。
対象のコミットを右クリックしてCreate Tag...
をクリックしてタグの名前を入力します。
アクションはタグの名前を判断してアクションのトリガーとしているのでv0.0.1
などのv
を接頭辞としたバージョン名をタグにします。
このタグの付いたコミットをプッシュしたら、自動的にアクションが開始され、完了後ビルドされたアプリケーションがリリースページに登録されます。
おわり
思ったより簡単にできました。
静的サイトジェネレーターをGithub Actionsでデプロイすることはありましたが、Godot Exportの方が楽ですね。
一度設定してしまえば、後はタグ付けしたコミットをプッシュすれば自動でアプリケーションを作ってくれるので、開発してビルドして… というサイクルを、開発だけに一本化できるというのはすごく魅力的です。
Discussion