LoginSignup
5
4

More than 1 year has passed since last update.

【M1 BigSur】JenkinsからGit(LFS)のチェックアウトからUnityへのビルドまで(Github)

Last updated at Posted at 2021-03-21

概要

Mac Book Air (M1 2020)
macOS Big Sur 11.2.2

【M1 BigSur】Jenkins導入編
こちらで書かせたいただいた記事の続きです。
この記事を残しておきたかったのでついでにJenkins導入を書いた次第です。
JenkinsからGitでチェックアウトができればいいので別にUnityでなくてもいいですが今回は確認のために利用しています。

一連の流れを記事にしましたが割と困るのが
BigSurでのgit-lfs filter-process: git-lfs: command not foundエラーの回避方法だと思います。

追記
git lfsのエラーerror: external filter 'git-lfs filter-process' failedの追記しました。(2021/03/25)
git-lfs filter-process: git-lfs: command not foundのエラーの回避方法の別パターンの提案(未検証)(2022/03/03)

準備

Github

Githubで作成したリポジトリーを使っているのでアカウントは作成しておきましょう。

unityのインストール

・とりあえずUnityはインストールしておいてください。
 今回はUnity2020.3.0f1で試しています。

GitのSSHキー(作っていない場合)

$ ssh-keygen

いろいろ聞かれるみたいですがすべて空白ままエンターして続けました。

生成場所は
Users/[ユーザー名]/.ssh/
に作られるのでこちらを使用してGithubからSSHを登録します。

image.png

GithubのアカウントからSettings>SSH and GPC keysを選択してNew SSH Keyを選択する。

image.png
設定 内容
Title これは好きに入力してください。
Key ここは先ほど作成したUsers/[ユーザー名]/.ssh/id_rsa.pubの中をコピーして貼り付けてください。

このように作られます。

image.png

JenkinsのUnityプラグインを導入

image.png
image.png

インストール後に再起動してもらうためにDownload now and install after restartを選択しました。

image.png

インストールできました。

image.png
image.png

設定したら保存しましょう。

インストールディレクトリにはjenkinsをインストールしたUnityのパスを設定しますが
FinderでUnityからoptionを押しながらするとパスをコピーできます。

unitypath.png

ジョブを作成

image.png

最初なので

unitypath.png

ジョブ名:unity_testお好きな名前
フリースタイル・プロジェクトのビルド
で作成します。

unitypath.png

認証情報を追加します。

unitypath.png

追加した認証情報を選択して保存します。

unitypath.png

これでプロジェクトの設定はできました。

Unityのビルドをしてみる

リポジトリーの準備ができたのでunityに対してビルドしてみます。

適当にビルドするものを用意して試してみました。

BuildTest.cs(ビルドの確認)
BuildTest.cs
using UnityEngine;

namespace Build
{
    /// <summary>
    /// ビルドのサンプル
    /// </summary>
    public class BuildTest
    {
        public static void HelloWorld()
        {
            Debug.Log("Hello World!");
        }
    }
}

Invoke Unity3d Editorを選択して

image.png
image.png

ビルドの確認のために作ったビルドをjenkinsから呼び出してみます。

-quit -batchmode -projectPath /Users/[ユーザー名]/.jenkins/workspace/[githubのプロジェクトパス] -executeMethod Build.BuildTest.HelloWorld

/Users/[ユーザー名]/.jenkins/workspace/[githubのプロジェクトパス]

を設定してビルド実行してみましょう。

ビルド時のエラー

git-lfs filter-process: git-lfs: command not found

GitLFSをインストールしているか確認してなければインストール

ターミナル:-zsh
% git lfs version
インストールなし
git: 'lfs' is not a git command. See 'git --help'.
インストールあり
git-lfs/2.13.2 (GitHub; darwin amd64; go 1.15.6)

git-lfsをインストール

ターミナル:-zsh
% brew install git-lfs

追記(2022/03/03)
自分はすでにマウントの設定をして回避しているので未検証ですがjenkins>システム設定>グローバルプロパティの環境変数に
キー
PATH

$PATH:/usr/local/bin

image.png

こちらを行うだけでlfsの設定を回避できるかもしれないので、一度試してみてもよいかもしれないです。(マウントは面倒なので)グローバルプロパティの設定をしてもダメな場合は素直に下記のマウントを行いましょう。

BigSurではCatalinaと違って読み取り専用な/usr/bin/などを一時的に無効にしてシンボリックリンクを作成できないみたいなので、Appleの公式の書かれている書き込み可能なマウントパスに設定してgit-lfsのシンボリックリンクを作成します。

・FileVaultを無効にする
FileVault.png

・リカバリモードで再起動して実行します(M1の場合は電源ボタンを長押ししてリカバリーモードに入ります。)

セキュリティの確認をします。

ターミナル:-zsh
% csrutil status
System Integrity Protection status: enabled.

enabledの場合は無効に

ターミナル:-zsh
% csrutil disable
ターミナル:-zsh
% csrutil authenticated-root disable

MacOSに再起動します。

ここからgit-lfsのシンボリックリンクを作成するためにマウントフォルダーを作成してディスクをマウントします。

ターミナル:-zsh
% mkdir ~/mount
ターミナル:-zsh
% sudo mount -o nobrowse -t apfs /dev/[デバイス] ~/mount

[デバイス]はディスクユーティリティの値を見ます。

あなたのルートを検索-あなたのルートは/dev/disk1s2s3であればmount実行し、最後のを切り落とす、例えば、あなたは/dev/disk1s2をマウントします

Appleの公式に書かれているの通りにdisk3s1s1の場合はdisk3s1でマウントします。

diskdeveice.png
ターミナル:-zsh
% sudo ln -s /usr/local/bin/git-lfs ~/mount/usr/bin/
ターミナル:-zsh
% sudo bless --folder ~/mount/System/Library/CoreServices --bootefi --create-snapshot

そのまま再起動

ターミナル:-zsh
% sudo reboot

error: external filter 'git-lfs filter-process' failed

こちらのエラーはジョブの設定から

unitypath.png

ソースコードの管理で追加のGit LFS pull after checkoutを選択をしてください。

unitypath.png

参考リンク

【Jenkins】GitのSSH接続をするための認証情報を設定する【GitHub】
JenkinsでUnityプロジェクトをビルドする
Unityコマンドライン引数
「macOS Big Sur 」でgit-lfs filter-process: git-lfs: command not foundに対応する

5
4
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
4