コードと依存の取得を頻繁に行う開発者・CI 利用者・跨国チーム向けに、リモート Mac 上で Git shallow clone、npm キャッシュ、CI 環境再利用によりビルドを加速する実践手順をまとめます。比較表と実行コマンド付きで再現できます。

なぜリモート Mac でキャッシュ戦略がビルド速度に効くか

リモート Mac はネットワーク越しのため、フル clone や毎回の npm install は時間と帯域を消費します。キャッシュで clone 量削減・依存再利用・CI 共有が可能になり、ビルド時間を短縮できます。跨境環境で効果が大きいです。

Git shallow clone と partial clone の比較とパラメータ

CI では最新のコミットだけで十分なことが多いです。下表のとおり、shallow は手軽で、partial clone は必要な履歴だけ取得する場合に向いています。

方式 主なパラメータ・コマンド例 特徴
shallow clone --depth=1 または --depth=10 取得量が少なく高速。CI でよく使われます。
partial clone --filter=blob:none または --filter=tree:0 必要な blob を必要なときだけ取得。大規模リポジトリ向け。
単一ブランチ --single-branch 指定ブランチのみ。shallow と組み合わせるとさらに軽量です。

実行例:git clone --depth=1 --single-branch -b main https://github.com/org/repo.git

npm・Homebrew キャッシュ設定と CI 環境での再利用

npm は npm config set cache /path/to/cache でキャッシュを固定し、CI で永続ボリュームやキャッシュステップに保持します。Homebrew は HOMEBREW_CACHE で同一ランナー内再利用。Yarn/pnpm の store も同様に共有可能です。

設定例
  • npmnpm config set cache $CI_CACHE/npm
  • Homebrewexport HOMEBREW_CACHE=$CI_CACHE/brew
  • CI ジョブで $CI_CACHE をキャッシュキーに含めて保存・復元します。

3 ステップ加速チェックリストと実行可能コマンド

実行可能 3 ステップ
  • 1. Gitgit clone --depth=1 --single-branch -b <branch> <url> で clone。必要なら --filter=blob:none を追加。
  • 2. npm:キャッシュディレクトリを設定し、npm ci または npm install --prefer-offline --no-audit でキャッシュを優先利用。
  • 3. CI:ジョブ開始時にキャッシュを復元し、ジョブ終了時にキャッシュを保存。キーに lockfilenode-version を含めると無効化を防げます。

よくある失敗とトラブルシュート

  • shallow で履歴が必要git fetch --unshallow で履歴を後から取得できます。
  • npm キャッシュ破損npm cache clean --force のうえ、キャッシュキーを変えて再取得してください。
  • CI でキャッシュが効かない:キャッシュパスとキーがジョブ間で一致しているか、権限とディスク容量を確認します。リモート Mac ノードを固定するとキャッシュのヒット率が上がります。

まとめと次のステップ

Git shallow/partial clone と npm・Homebrew キャッシュの CI 再利用で、リモート Mac 上のビルドを加速できます。同一ノード・キャッシュ永続化が可能なMacPull のクラウド Mac で安定 CI 環境の構築もご検討ください。ブログ一覧料金購入ヘルプからトライアル・ご利用方法をご確認ください。

リモート Mac で CI/ビルド加速

キャッシュを活かす安定 Mac ノードを用意する

同一環境でキャッシュを永続化し、ビルド時間を短縮したい方に。料金確認から購入までログイン不要で完結します。

24時間以内デリバリー スペック変更可 いつでも解約可