Passer au contenu principal

Pipeline CI

La CI s’exécute à chaque push vers main et sur chaque pull request. Elle utilise un ciblage intelligent pour ignorer les jobs coûteux lorsque seules des zones non liées ont changé.

Vue d’ensemble des jobs

JobObjectifQuand il s’exécute
preflightDétecter les changements de documentation uniquement, les portées modifiées, les extensions modifiées, et construire le manifeste CIToujours sur les pushes et PR non brouillons
security-fastDétection de clés privées, audit des workflows via zizmor, audit des dépendances de productionToujours sur les pushes et PR non brouillons
build-artifactsConstruire dist/ et l’interface utilisateur de contrôle une fois, puis téléverser des artefacts réutilisables pour les jobs en avalChangements pertinents pour Node
checks-fast-coreVoies Linux rapides de correction, comme les vérifications groupées/plugin-contrat/protocoleChangements pertinents pour Node
checks-fast-extensionsAgréger les voies fragmentées d’extensions après la fin de checks-fast-extensions-shardChangements pertinents pour Node
extension-fastTests ciblés uniquement pour les plugins intégrés modifiésLorsque des changements d’extension sont détectés
checkPorte locale principale dans la CI : pnpm check plus pnpm build:strict-smokeChangements pertinents pour Node
check-additionalGardes d’architecture et de limites, ainsi que le harnais de régression de surveillance de la gatewayChangements pertinents pour Node
build-smokeTests smoke de la CLI buildée et smoke de mémoire au démarrageChangements pertinents pour Node
checksVoies Linux Node plus lourdes : tests complets, tests de canaux et compatibilité Node 22 uniquement sur pushChangements pertinents pour Node
check-docsFormatage de la documentation, lint et vérifications de liens cassésDocumentation modifiée
skills-pythonRuff + pytest pour les Skills adossées à PythonChangements pertinents pour les Skills Python
checks-windowsVoies de test spécifiques à WindowsChangements pertinents pour Windows
macos-nodeVoie de test TypeScript sur macOS utilisant les artefacts buildés partagésChangements pertinents pour macOS
macos-swiftLint, build et tests Swift pour l’application macOSChangements pertinents pour macOS
androidMatrice de build et de test AndroidChangements pertinents pour Android

Ordre d’échec rapide

Les jobs sont ordonnés de sorte que les vérifications peu coûteuses échouent avant l’exécution des plus coûteuses :
  1. preflight décide quelles voies existent réellement. La logique docs-scope et changed-scope correspond à des étapes à l’intérieur de ce job, pas à des jobs autonomes.
  2. security-fast, check, check-additional, check-docs et skills-python échouent rapidement sans attendre les jobs plus lourds d’artefacts et de matrice de plateformes.
  3. build-artifacts se chevauche avec les voies Linux rapides afin que les consommateurs en aval puissent démarrer dès que la build partagée est prête.
  4. Les voies plus lourdes de plateforme et d’exécution se déploient ensuite : checks-fast-core, checks-fast-extensions, extension-fast, checks, checks-windows, macos-node, macos-swift et android.
La logique de portée se trouve dans scripts/ci-changed-scope.mjs et est couverte par des tests unitaires dans src/scripts/ci-changed-scope.test.ts. Le workflow distinct install-smoke réutilise le même script de portée via son propre job preflight. Il calcule run_install_smoke à partir du signal plus étroit changed-smoke, de sorte que le smoke Docker/install ne s’exécute que pour les changements pertinents pour l’installation, le packaging et les conteneurs. Sur les pushes, la matrice checks ajoute la voie compat-node22 réservée aux pushes. Sur les pull requests, cette voie est ignorée et la matrice reste centrée sur les voies normales de test/canal.

Exécuteurs

ExécuteurJobs
blacksmith-16vcpu-ubuntu-2404preflight, security-fast, build-artifacts, vérifications Linux, vérifications docs, Skills Python, android
blacksmith-32vcpu-windows-2025checks-windows
macos-latestmacos-node, macos-swift

Équivalents locaux

pnpm check          # types + lint + format
pnpm build:strict-smoke
pnpm test:gateway:watch-regression
pnpm test           # tests vitest
pnpm test:channels
pnpm check:docs     # format docs + lint + liens cassés
pnpm build          # construit dist lorsque les voies CI artifact/build-smoke sont concernées