01 · データ同期
ソースコードと必要な入力だけを移行
rsyncまたはSFTPでプロジェクトを転送します。DerivedData、一時ビルドディレクトリ、再生成できるキャッシュは除外します。依存関係のロックファイル、テストリソース、プロジェクト設定は残してください。
確認項目:コミットIDと重要ファイルのチェックサムを照合し、作業ディレクトリ、権限、ディスクの空き容量を確認します。初回はドライランで差分を確認してください。
rsync -azn \
--exclude 'DerivedData/' \
--exclude 'build/' \
./project/ \
"$MAC_HOST:~/work/project/"
ドライランの結果を確認してから nを削除します。MAC_HOST には提供されたSSH接続エイリアスを使います。この例ではリモート側の既存ファイルは削除しません。
02 · ツールチェーンの再構築
バージョンを合わせてから認証情報を登録
プロジェクトの一覧に従って、Homebrewの依存関係、Xcode、Command Line Toolsを準備します。デベロッパーディレクトリを確認してから、安全な方法で証明書とプロビジョニングプロファイルを登録してください。
確認項目:手元のMacとノードのXcode、Swift、依存関係のバージョンを比較します。リリース用認証情報を使わずにビルドを1回実行し、まず基本環境の差を解消してください。
xcode-select -p
xcodebuild -version
swift --version
brew bundle check
brew bundle check 事前にHomebrewをインストールし、プロジェクトのBrewfileがあるディレクトリで実行してください。依存関係を確認するコマンドであり、署名用ファイルは自動的に登録されません。
03 · CIへの接続
手動実行を成功させてから自動化
まずノードでプロジェクトのコマンドを手動実行します。次に利用するプラットフォームの手順に従ってRunnerを登録し、リポジトリへのアクセス、ジョブラベル、作業ディレクトリ、認証情報の権限を設定してください。
確認項目:テスト用コミットを1回実行し、ジョブが対象ノードで動くこと、ログを追跡できること、成果物を取得できることを確認します。対話セッションを終了した後、サービスの実行方法も検証してください。
uname -m
xcodebuild -list
launchctl list
プロジェクトのディレクトリでビルドターゲットを確認します。Runnerの登録方法と常駐方法はプラットフォームのバージョンに合わせて設定してください。対話セッション内で一度動作しただけで、サービスの準備が完了したと判断しないでください。