Front-end CI / Apple Silicon 2026

2026 Checklist pièges front-end :
Biome + TypeScript incrémental sur Mac distant

31.03.2026 Ingénierie front & plateforme 8 min de lecture

Sur des runners Mac loués, on enchaîne souvent Biome et TypeScript sans contrat commun sur les caches, les fils d’exécution ni l’ordre des jobs CI/CD. Cette checklist compare biome.json aux réglages tsc --incremental, propose des chemins de cache réalistes et une grille d’acceptation en trois étapes avant tag. À lire avec notre checklist monorepo pnpm et cache distant et le guide caches Vite et Webpack sur Mac distant pour garder l’analyse statique rapide et déterministe.

01 Frictions typiques sur workers Mac distants

Ruée vers les fils : Biome parallélise le travail fichier par fichier tandis que tsc concentre un gros graphe dans un processus dominant. Ensemble ils peuvent saturer les cœurs performance et figer la session SSH. Caches empoisonnés : changer de branche sans invalider tsbuildinfo donne des pipelines verts qui échouent en local. Mauvais ordre d’étapes : lancer des contrôles navigateur coûteux avant le lint et les types gaspille des minutes à chaque push. Sur un parc CI/CD hétérogène, documentez ces trois points dans le runbook partagé avec les équipes release.

02 Tableau de décision : biome.json et tsc incrémental

Le tableau suivant aligne les propriétaires des règles de formatage avec ceux du graphe de types. Biome couvre lint et format ; TypeScript incrémental réutilise l’information de type entre exécutions. Les options CLI les plus utiles en pipeline sont rappelées côte à côte.

Sujet Biome (biome.json / CLI) TypeScript (tsc / tsconfig)
Leviers principaux files.include, files.ignore, formatter, linter, vcs.useIgnoreFile "incremental": true, "tsBuildInfoFile" (optionnel), "composite": true pour les références de projet
Exemples de drapeaux CLI biome check --write . en local ; biome ci . en pipeline (échec si dérive) tsc -p tsconfig.json --incremental ou tsc -b pour monorepo à références
Modèle de parallélisme Pool de workers multi-fichiers dans le binaire Biome Processus largement unique ; tsc -b parallélise au niveau du graphe de projets
Artefact de cache typique Caches locaux au dépôt ; consulter les notes de version Biome pour chemins et verbosité Fichier *.tsbuildinfo (chemin de tsBuildInfoFile, défaut souvent .tsbuildinfo à côté du tsconfig)
Entrées de clé CI Lockfile, version Biome, empreinte de biome.json Lockfile, version TypeScript, graphe tsconfig, hash des globs sources

En pratique, combinez tsc --noEmit --incremental (ou build de références) avec biome ci : le premier garantit la cohérence des types, le second la discipline de style sans lancer le compilateur pour le formatage.

03 Workers parallèles et liaison des cœurs (recommandations)

macOS n’expose pas taskset comme Linux. La « liaison » utile est une politique de charge : réserver un ou deux cœurs logiques à sshd, WindowServer si session graphique, et aux démons métadonnées. Utilisez sysctl hw.ncpu comme plafond, pas comme objectif de concurrence pour chaque outil Node.

Profil d’hôte Suggestion Biome + tsc
8 cœurs performance (classe M4 de base) En CI, enchaîner Biome puis tsc ; parallèle seulement si environ vingt-quatre gigaoctets de RAM libre et disque rapide.
10–12 cœurs (classe Pro) Parallèle possible : lancer Biome, puis tsc avec NODE_OPTIONS=--max-old-space-size=8192 ; plafonner les autres outils Node à environ la moitié des CPU logiques.
Session SSH interactive Préférer nice ou réduire le nombre de jobs lourds simultanés pour garder l’interface réactive pendant les contrôles longs.
Note avancée

Certaines équipes enveloppent les jobs avec des attributs taskpolicy sur macOS pour orienter la QoS, mais la majorité des pipelines front se contentent de limiter les étapes lourdes concurrentes et de s’appuyer sur les fichiers incrémentaux pour réduire le temps mural.

04 Répertoires de cache à restaurer en CI

Persistez les caches en lecture seule entre commits lorsque le lockfile est inchangé. Séparez les caches par branche ou incluez le hash du lockfile dans la clé d’artefact. Croisez avec préflight des scripts package.json sur Mac distant pour invalider les bonnes couches quand les scripts évoluent.

  • TypeScript : restaurer le répertoire qui contient chaque tsBuildInfoFile ainsi que node_modules/.cache si votre wrapper y stocke des données auxiliaires.
  • Biome : mettre en cache la racine du dépôt où se trouve biome.json et tout dossier interne de cache écrit après le premier passage.
  • Règle de purge : supprimer les fichiers d’info de build lors d’un changement de package.json, de globs workspace ou d’options compilateur.

05 CI et CD sur Mac distant

Ordonnez les jobs du signal le moins coûteux au plus coûteux : installation des dépendances, puis Biome, puis tsc --noEmit incrémental, tests unitaires, bundlers, enfin smoke et contrôles pré-déploiement. La phase CD ne doit pas promouvoir un build qui a sauté la vérification de types alors que Biome est vert : Biome n’implémente pas le contrôle sémantique complet des types.

Pour les monorepos, placez la restauration du cache distant (registry, Turbo, etc.) avant les étapes Biome/tsc afin que les chemins résolus soient stables ; voir encore la checklist pnpm et miroir de registre.

06 Runbook exécutable en cinq étapes

  1. Épingler les versions Biome et TypeScript dans le lockfile et les imprimer dans l’en-tête du journal CI.
  2. Exécuter biome ci . avec un biome.json versionné à la racine ; échouer sur toute dérive de formatage.
  3. Lancer tsc -p tsconfig.json --incremental --noEmit (ou tsc -b avec références) et publier tsbuildinfo comme artefact de cache clé par branche et lockfile.
  4. Consigner le temps mural et la saturation CPU ; si les deux étapes dépassent ensemble environ quatre-vingts pourcent de CPU pendant dix minutes, scindez-les en deux jobs de workflow.
  5. En cas d’échec, joindre les cinquante premiers diagnostics de chaque outil au ticket pour éviter de relancer toute la suite à l’aveugle.

07 Trois étapes d’acceptation avant livraison

Étape A : sur le SHA de release exact, exécuter Biome et tsc incrémental avec caches froids une fois pour prouver la reproductibilité. Étape B : une seconde exécution à cache chaud doit être sensiblement plus rapide (visez au moins trente pour cent) ; sinon la clé d’artefact est probablement incorrecte. Étape C : enchaîner le parcours smoke documenté dans le runbook CD avant le tag ; en cas d’échec, corréler avec la clé de cache utilisée.

Cibles parlantes : garder la vérification de types incrémentale sous environ cinq minutes pour un monorepo moyen, Biome sous environ quatre-vingt-dix secondes pour un méga-dépôt une fois le cache tiède, et toujours réserver deux CPU logiques au système sur hôtes partagés.
À retenir

Traitez biome.json et tsc --incremental comme des portes complémentaires, persistez leurs artefacts avec des clés strictes, et plafonnez le parallélisme sur les Mac distants pour garder SSH utilisable. Le bloc d’acceptation en trois étapes attrape les tsbuildinfo périmés avant les utilisateurs.

Pour aller plus loin : parcourez l’accueil MacWww pour le contexte produit, comparez les forfaits et tarifs de location Apple Silicon, et ouvrez le centre d’aide (SSH, VNC, automatisation). L’index du blog regroupe d’autres recettes CI pour le front.

Mac Mini M4 dédié

Biome et tsc incrémental sur Mac loué

Apple Silicon stable, chemins macOS réels et débit pour enchaîner les étapes CI en parallèle maîtrisé. Consultez les tarifs sans compte, puis suivez l’aide pour brancher vos runners SSH.

Lint + types Mac distant 24/7
Louer un M4 pour la CI