さんざん手こずったので初投稿です(やけくそ)。
GitHub ActionsでUnityのライセンス認証周りで撃沈しすぎた。
正しいライセンス認証の方法と注意点をここに記す。
GitHub Actionsのsecretsにulfファイルの内容を保存しているものとする。キーは"ulf"。
- run: |
echo -n "$ULF" > unity.ulf
/opt/Unity/Editor/Unity -nographics -batchmode -quit -logFile -manualLicenseFile ./unity.ulf || exit 0
with:
ULF: ${{ secrets.ulf }}
上記コードでライセンス認証は正しく行える。
Initiating legacy licensing module
Load manual activation license file.
LICENSE SYSTEM [20191127 7:6:38] Load license file from: ./unity.ulf
LICENSE SYSTEM [20191127 7:6:38] Next license update check is after 2019-11-27T15:24:07
License file loaded.
logFileの出力は上記の通り。
認証が正しく行えると「Next license update check is after ほげほげ」と出力される。
注意点0 echoのオプション
echo -n
echoコマンドのオプションに必ず-nを指定するべし。
これは最後の改行コードを出力しないという意味である。
何故か知らないが、一文字でも余計な文字が加わると認証にしくじる(10敗)。
注意点1 環境変数をダブルクォートでくくる
echo -n "$ULF"
環境変数の中身をechoしたいならばダブルクォートでくくる必要がある。
くくらない場合は単に$ULFと出力される(50敗)。
注意点2 環境変数を使う
環境変数ULF(名前は何でもいい)にsecrets.ulfを設定するべし。
echo -n ${{secrets.ulf}}
と仮に記述したらulfが複数行なのでエラー吐いてジョブが死ぬ(2敗)。
注意点3 ulfの中身は絶対に外部に見せない
ulfは機密情報なので明かしてはならない(0敗)。
デバッグ時に自分が見れる情報は全て他の人が見れると考えられる。
故に間違えてもそれに気付けない。コワイ!
感想・終わりに
一回5分~7分×60回つまり5~7時間無駄にした上で得た教訓を活かしてください。