なつねこメモ

主にプログラミング関連のメモ帳 ♪(✿╹ヮ╹)ノ

書いてあるコードは自己責任でご自由にどうぞ。記事本文の無断転載は禁止です。

2022/02/08

UnityPackage を Unity なしで作成できる GitHub Actions を作ったよ

カテゴリー:UnityGitHub Actions

昨日は仕事でも趣味でもひたすら GitHub Actions と戦っていましたが、その成果!
ということで、 Unity なしで UnityPackage を作成できる GitHub Actions を作りました。

使い方は簡単で、こんな感じにするだけで、 UnityPackage を作れます。

.github/workflows/release.yml

name: "Automatically create a UnityPackage when releasing a new tags"
on:
  push:
    categories:
      - v\d+\.\d+\.\d+
  workflow_dispatch:

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
        with:
          lfs: true

      - uses: natsuneko-laboratory/get-meta-from-glob@next
        with:
          includes: |
            Assets/NatsunekoLaboratory/AnimatorControllerPostProcessing/**/*.*
          excludes: |
            Assets/NatsunekoLaboratory/AnimatorControllerPostProcessing/Plugins/*.dll
          output: ./MetaList

      - uses: natsuneko-laboratory/create-unitypackage@main
        with:
          meta: ./MetaList
          output: ./AnimatorControllerPostProcessing.unitypackage

      # あとは自由に

ポイントは 2 つで、1 つは natsuneko-laboratory/get-meta-from-glob@main
これは glob pattern からファイルを集めるためのもので、これを使っておけば良い感じにパッケージ対象のファイルを集められます。
プラットフォームに依存しないので、 runs-onwindows-latest でも Self-Hosted Runners の自前 AMI でも、特に指定方法を変えること泣く動かす事が出来ます。
これの何が嬉しいかですが、わたしは割と Visual Studio を使いたくて windows-latest なマシンイメージを使うことが多いんですが、そうするとなれない PowerShell をこねる必要があってつらいのです。
それを比較的一般的な方法で集められるようになるので、とってもうれしい!という訳ですね。

2 つめは natsuneko-laboratory/create-unitypackage@main で、これが UnityPackage を作っている部分です。
1 つめのステップであつめた MetaList を渡すことでそれらを UnityPackage にしてくれます。便利。
もちろんですが、これもプラットフォームに依存しないので、上と同じく Self-Hosted Runners の自前 AMI でも動きます。

ということで、今日のメモでした。関連リポジトリは全部 MIT で公開しているので、良かったらお使いください。