ツールチェーン
現在のプロジェクトに必要なコンポーネントだけをインストールする
macOS、Xcode、コマンドラインツール、ランタイム、パッケージマネージャー依存関係のバージョン要件を確認します。まず最小構成をインストールし、テストビルドの成功後にデバッグ・分析ツールを追加します。
リポジトリアクセス
最小権限の資格情報でコードを取得する
マシンには制限付きのリポジトリアクセスを設定し、タスクに必要な読み取り・書き込み範囲になっているか確認します。キーをリポジトリ、ビルド成果物、公開読み取り可能なログディレクトリに保存してはいけません。
署名素材
インポート、利用、バックアップの場所を分離する
現在のビルドに必要な署名素材だけをインポートし、ファイルアクセス権を制限して、担当者とローテーション手順を記録します。ログ出力では証明書フィンガープリント以外の機密情報を隠します。
キャッシュ戦略
依存関係、派生データ、アーカイブを分離する
依存キャッシュ、派生データ、一時ビルド、最終アーカイブに独立したディレクトリを設定します。容量しきい値と削除順序を定義し、削除スクリプトが保持すべき成果物を誤って消さないようにします。
bootstrap / validation
mkdir -p "$HOME/workspace"
mkdir -p "$HOME/build-cache"
mkdir -p "$HOME/build-artifacts"
git clone "$REPOSITORY_URL" "$HOME/workspace/project"
cd "$HOME/workspace/project"
xcodebuild -version
sw_vers
df -h "$HOME"
xcodebuild \
-workspace "$WORKSPACE_NAME" \
-scheme "$SCHEME_NAME" \
-configuration Debug \
-derivedDataPath "$HOME/build-cache/DerivedData" \
build | tee "$HOME/build-artifacts/test-build.log"
環境情報を記録しました
LOG SAVED