ちゃんとした業務開発ではあんまり役に立たない知識を授けます
LFS
GitLFSは入れておきたい。なんだかんだアセットの容量はバカにならないし、LFSは使いたいもののGitHub LFSは高い。帯域に課金されるのが辛くて、GitHubActionsを使う時毎回帯域を消費するのがちょっと残念。
UnityVersionControlを使ってみたものの、操作ミスでデータをすべて吹き飛ばすということを二回やらかしたのであきらめた。大規模開発なら使った方が良いのだろうが、ファイルロックも特に必要ないのでGitも使いたい
※git lfs 2.0からファイルロック機能も提供されているらしい
どうしたものかと思っていたが、この記事がいい感じだった。 qiita.com
Googleで課金していて2TB使えるストレージがあるし、かなり良さそうだと思った。rclone周りでちょっと手間取ったが使えるようになった。
game-ci
今一人で作業しているので、正直必要はないのだが、サーバーサイド出身の人間は自動テスト×デプロイの環境が無いと落ち着かないのだ。
TDDっぽい開発フローを採用しているので一応入れておく。なんだかんだ入れておくとgitのpush忘れとかも気づけたりするので良いんじゃないだろうか
github actionでlfsを動かす
LFSをGoogleDriveで代用するのはいいがそれでGithub Actions側でLFS対象ファイルが取れないのは後々困りそうなので対応。
これをベースに
C:\Users\hogehoge> rclone config file Configuration file is stored at: C:\Users\hogehoge\AppData\Roaming\rclone\rclone.conf
で場所が分かるのでこのファイルをwslにもっていって
$ base64 -w 0 rclone.conf
で出た値をRCLONE_CONFIGにいれて、ciを
name: unity-ci on: workflow_dispatch: {} jobs: test: name: test runs-on: ubuntu-latest steps: - name: set rclone uses: AnimMouse/setup-rclone@v1 with: rclone_config: ${{ secrets.RCLONE_CONFIG }} - name: set git-lfs-agent-rclone run: | wget https://github.com/funatsufumiya/git-lfs-agent-rclone/releases/download/v0.0.2/git-lfs-agent-rclone_v0.0.2_linux_x64.zip unzip git-lfs-agent-rclone_v0.0.2_linux_x64.zip mv git-lfs-agent-rclone /usr/local/bin/git-lfs-agent-rclone - run: | git config --global lfs.standalonetransferagent rclone git config --global lfs.customtransfer.rclone.path git-lfs-agent-rclone git config --global lfs.customtransfer.rclone.args $場所 env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - name: Checkout uses: actions/checkout@v4 with: lfs: true - name: test uses: game-ci/unity-test-runner@v4 env: UNITY_LICENSE: ${{ secrets.UNITY_LICENSE }} UNITY_EMAIL: ${{ secrets.UNITY_EMAIL }} UNITY_PASSWORD: ${{ secrets.UNITY_PASSWORD }} with: projectPath: ./ githubToken: ${{ secrets.GITHUB_TOKEN }}
のように書いて完了。lfs: trueを利かせる前にもろもろのconfigを設定することと、checkoutをする前はリポジトリのフォルダが無くてlocalに設定できないので、--global をつけておくことがミソ
ビルドして配布したりとか、マシンをself-hosted runnerに差し替えて諸々のファイル(Libraryなど)をキャッシュしたりとかを今後はしていく