Livrable : métriques de hit rate, clés store-dir, turbo.json remoteCache TLS, piles miroirs registry/Git et tableau workers
--filter prêts pour la CI.Liens : accueil, blog CI, guide miroirs npm/Homebrew, stratégie cache npm.
Pourquoi pnpm store et le remote cache Turbo ratent sur Mac CI transfrontalier
- store-dir partagé sans clés : un pnpm store global entre jobs empoisonne les hits adressables quand les majors Node ou les lockfiles divergent.
- Remote cache avant store local : Turborepo uploade pendant que l’install tire des tarballs sur WAN instable — hit rate trompeur, temps mur élevé.
- Registry et Git sur une seule lane : network-concurrency élevé plus quatre workers Turbo sature l’APFS et provoque des ETIMEDOUT sur les pulls transfrontaliers.
Indicateurs de diagnostic du hit rate : pnpm store et Turborepo sur Mac CI distant
Journalisez chaque job sur pools Apple Silicon :
- Réutilisation pnpm store : viser plus de 85 % après
pnpm install --frozen-lockfilesur lane chaude. - Hits Turbo remote : cache hit / tâches cacheables — viser plus de 60 % sur main.
- Minutes de pull : de
pnpm fetchau premierturbo run— alerter au-delà de 8 minutes.
pnpm store-dir et conception des clés de cache sur Mac CI distant
Isolez store-dir par lane ; faites évoluer les clés CI à chaque bump de major Node.
# .npmrc (racine repo ou généré CI)
store-dir=/var/ci/pnpm-store-${JOB_ID:-lane}
shamefully-hoist=false
fetch-timeout=120000
network-concurrency=4
registry=https://registry.npmmirror.com/
Clé cache CI : sha256(pnpm-lock.yaml) + version Node + os-darwin-arm64. Voir stratégie cache Git et npm.
Remote cache Turborepo auto-hébergé : endpoint, TLS et turbo.json
{
"$schema": "https://turbo.build/schema.json",
"remoteCache": {
"enabled": true,
"signature": true,
"teamId": "team_macpull_ci",
"apiUrl": "https://turbo-cache.internal:443"
}
}
Placez TURBO_TOKEN dans les secrets ; terminez TLS sur la passerelle ; rotation trimestrielle.
Combinaisons miroir registry et miroir Git pour pulls transfrontaliers
Empilez les miroirs par artefact : npm (guide miroirs et reprise), Git (matrice bundle Git), ou Yarn (matrice Yarn Berry).
Matrice décisionnelle Mac CI distant : pnpm store, remote cache, registry, workers
Choisissez une ligne par pool ; augmentez les workers seulement si hits et espace disque restent au vert.
| Profil WAN | pnpm store-dir | Turbo remote | Miroir registry | Workers turbo run |
|---|---|---|---|---|
| Stable < 80 ms RTT | Par JOB_ID sur NVMe | Auto-hébergé TLS activé | Miroir npm régional | 4 workers, --filter ciblé |
| Perte 120–200 ms | Store préchauffé, concurrency 2 | Signature on, upload async | npmmirror + bundle Git | 2 workers, network-concurrency 4 |
| Satellite ou flaky | Prefetch tarball store | Remote en lecture seule | Proxy entreprise requis | 1 worker, fetch sérialisé |
Runbook en six étapes : install, store chaud, turbo run sur Mac CI distant
- Épingler Node via corepack ; committer pnpm-lock.yaml.
- Écrire .npmrc store-dir et registry ; lancer pnpm install --frozen-lockfile.
- Restaurer le cache CI par lockfile + major Node ; exécuter pnpm store status.
- Exporter TURBO_TOKEN ; vérifier que remoteCache.apiUrl est en HTTPS.
- turbo run avec --filter et --concurrency=2 ; monter après métriques vertes.
- Échouer sous 30 Go libres ; voir FAQ stabilité pull.
pnpm install --frozen-lockfile
pnpm store status | tee store.log
turbo run lint build test --filter=web... --summarize \
--concurrency="${TURBO_CONCURRENCY:-2}"
Paramètres citables pour revue d’architecture
- Taille store chaud : budgéter 4 à 12 Go par lane sur NVMe M4 ; clé par hash pnpm-lock.yaml.
- Payload Turbo remote : cache tâche compressé typique 2 à 80 Mo ; activer signature contre artefacts empoisonnés.
- Seuil disque : interrompre l’install si l’APFS libre descend sous 30 Go sur pools Mac Studio partagés.
FAQ : concurrence, --filter et seuils disque sur Mac CI distant
Hit rate pnpm avant remote Turbo ? Viser 85 % à chaud ; sous 70 %, corriger store-dir ou mélange Node.
Workers sur liaisons transfrontalières ? Démarrer à deux ; passer à quatre si hits dépassent 60 % et espace libre dépasse 30 Go.
TLS obligatoire ? Oui sur réseaux partagés ; signature active et rotation TURBO_TOKEN.
Synthèse : acheter un nœud Mac CI optimisé pnpm et Turborepo
La CI monorepo gagne quand store-dir, miroirs registry et remote cache partagent la même logique de clés. Comparez sur l’accueil, lisez le guide pièges miroirs npm, puis louez un nœud NVMe MacPull aligné sur votre région registry. Pages publiques : achat, tarifs, liste blog CI.
Louer un nœud Mac CI pour pnpm et Turborepo
store-dir par lane, remote cache TLS et miroirs registry — comparez les offres sans connexion.