リモート Mac 上の CI で Deno/JSR 依存を安定取得するため、取得経路・deno.lockDENO_DIR・並列と timeoutを決定表に整理しました。跨境のジッターに効くパラメータとコピペ用の環境変数例です。

シナリオと痛点

軸は「ホップ数」と「ロック逸脱の許容度」です。混在jsr:npm:)は切り分け対象が増え、共有 DENO_DIR はキャッシュ汚染を招き、--reload 常用は再現性を壊します。

優先度方針向くケーストレードオフ
再現性deno.lock--frozen本番ビルド初回取得が長い
切り分けdeno cache を独立ステップ跨境不安定ログが読みやすい

Deno/JSR の取得経路対照表

jsr: は JSR、npm: は npm レジストリ、https: は直 URL です。跨境では TLS/プロキシ経路がホストごとに異なるため、README にレジストリ方針を書きます。

指定子主な到達先ロックへの載り方跨境で効く打ち手
jsr:@scope/pkgJSR API/CDNdeno.lock にハッシュ付きで記録ホストを JSR に寄せて説明が簡潔
npm:pkg設定された npm レジストリロック+ tarball 参照社内 Verdaccio 等へ寄せると安定しやすい
https://…任意オリジンURL と整合チェックサムミラー差分に弱い → 固定ドメイン推奨

ロックファイルとキャッシュディレクトリの実行パラメータ

既定は ~/Library/Caches/deno 付近です。CI では DENO_DIR にジョブ ID を含めdeno.lock を正とします。

目的変数/ファイル推奨メモ
キャッシュDENO_DIR…/deno-ci/$CI_PIPELINE_ID共有 Runner で必須級
ロックdeno.lockコミット・専用 PR で更新逸脱は CI で落とす
TLS/プロキシDENO_TLS_CA_STOREsystemNO_PROXY社内 CA は PEM も可
ログdeno --version先頭に固定出力切り分け最短
シェル例(ID は CI に合わせて差し替え)
export DENO_DIR="$HOME/Library/Caches/deno-ci/${CI_PIPELINE_ID:-local}"
export DENO_TLS_CA_STORE=system
deno --version
deno install --frozen

CI 並列とタイムアウト閾値

跨境では timeout を先に広げ、次に max-parallel です。max-parallel は 2〜4 から、timeout-minutes は初回取得込みで 25〜45 分帯が目安です。

項目目安上げる/下げる
max-parallel2〜4キャッシュ安定時↑/429 時↓
timeout-minutes25〜45フル取得あり↑/lint のみ↓
  • 1. deno cache を単独ステップにする。
  • 2. deno install --frozen でロック逸脱を検知。
  • 3. キャッシュキーにロックハッシュと Deno 版。
  • 4. 再試行は最大 3 回・2s/4s/8s のバックオフ。
strategy:
  max-parallel: 3
env:
  DENO_DIR: /tmp/deno-${{ github.run_id }}
# job:
timeout-minutes: 35

跨境ネットワーク失敗時のリトライ FAQ

Q. すぐ --reload A. 先に TLS/プロキシを確認。ロックを保ったままバックオフ付き deno cache を推奨します。

Q. npm: だけ遅い? A. tarball と RTT です。ミラー寄せと jsr: 置換候補を README に書きます。

Q. 取得できたのに古い? A. DENO_DIR 取り違え。ID 付きパスとロックハッシュ付きキャッシュキーで統一します。

まとめ:跨境 Deno CI は「経路の宣言+キャッシュ境界」が最短です

経路を表にし、DENO_DIRdeno.lock で境界を切ると再現性が上がります。Python・uv マトリクスGo・GOPROXY マトリクスと併読してください。

ホームブログ一覧料金ヘルプはログイン不要です。跨境の deno cache を安定させるなら 購入ページからリモート Mac を租用し、回線とディスクを最適化するのが近道です。

Deno・JSR・CI

跨境の deno cache を安定させるなら、ノードの回線位置DENO_DIR 設計が鍵です

MacPull のリモート Mac(Apple Silicon)で依存取得をまとめ、ジョブごとにキャッシュ境界を切りやすくできます。料金・ドキュメントはサイト上でご覧いただけます。

24時間以内デリバリー 複数リージョン いつでも解約可