Ana içeriğe atla

CI Ardışık Düzeni

CI, main dalına yapılan her push işleminde ve her pull request için çalışır. Yalnızca ilgisiz alanlar değiştiğinde pahalı işleri atlamak için akıllı kapsamlandırma kullanır.

İş Genel Görünümü

İşAmaçNe zaman çalışır
preflightYalnızca dokümantasyon değişikliklerini, değişen kapsamları, değişen extension’ları tespit eder ve CI manifest’ini oluştururDraft olmayan push’larda ve PR’larda her zaman
security-fastÖzel anahtar tespiti, zizmor ile workflow denetimi, production bağımlılık denetimiDraft olmayan push’larda ve PR’larda her zaman
build-artifactsdist/ ve Control UI’ı bir kez derler, sonraki işler için yeniden kullanılabilir artifact’lar yüklerNode ile ilgili değişiklikler
checks-fast-coreBundled/plugin-contract/protocol kontrolleri gibi hızlı Linux doğruluk aşamalarıNode ile ilgili değişiklikler
checks-node-extensionsExtension paketi genelinde tam bundled-plugin test shard’larıNode ile ilgili değişiklikler
checks-node-core-testKanal, bundled, contract ve extension aşamaları hariç olmak üzere çekirdek Node test shard’larıNode ile ilgili değişiklikler
extension-fastYalnızca değişen bundled plugin’ler için odaklı testlerExtension değişiklikleri tespit edildiğinde
checkCI’daki ana yerel geçit: pnpm check artı pnpm build:strict-smokeNode ile ilgili değişiklikler
check-additionalMimari, sınır, import-cycle korumaları ve gateway watch regression harnessNode ile ilgili değişiklikler
build-smokeDerlenmiş CLI smoke testleri ve başlangıç bellek smoke testleriNode ile ilgili değişiklikler
checksKalan Linux Node aşamaları: kanal testleri ve yalnızca push için Node 22 uyumluluğuNode ile ilgili değişiklikler
check-docsDoküman biçimlendirme, lint ve bozuk bağlantı kontrolleriDokümanlar değiştiğinde
skills-pythonPython tabanlı Skills için Ruff + pytestPython-skill ile ilgili değişiklikler
checks-windowsWindows’a özgü test aşamalarıWindows ile ilgili değişiklikler
macos-nodePaylaşılan derlenmiş artifact’ları kullanan macOS TypeScript test aşamasımacOS ile ilgili değişiklikler
macos-swiftmacOS uygulaması için Swift lint, derleme ve testlermacOS ile ilgili değişiklikler
androidAndroid build ve test matrisiAndroid ile ilgili değişiklikler

Fail-Fast Sıralaması

İşler, pahalı olanlar çalışmadan önce ucuz kontroller başarısız olacak şekilde sıralanır:
  1. preflight, hangi aşamaların var olacağına karar verir. docs-scope ve changed-scope mantığı, bağımsız işler değil, bu işin içindeki adımlardır.
  2. security-fast, check, check-additional, check-docs ve skills-python, daha ağır artifact ve platform matrisi işlerini beklemeden hızlıca başarısız olur.
  3. build-artifacts, hızlı Linux aşamalarıyla paralel çalışır; böylece sonraki tüketiciler paylaşılan build hazır olur olmaz başlayabilir.
  4. Daha ağır platform ve çalışma zamanı aşamaları bundan sonra yayılır: checks-fast-core, checks-node-extensions, checks-node-core-test, extension-fast, checks, checks-windows, macos-node, macos-swift ve android.
Kapsam mantığı scripts/ci-changed-scope.mjs içinde bulunur ve src/scripts/ci-changed-scope.test.ts içindeki birim testlerle kapsanır. Ayrı install-smoke workflow’u, kendi preflight işi aracılığıyla aynı kapsam betiğini yeniden kullanır. run_install_smoke değerini daha dar changed-smoke sinyalinden hesaplar; bu nedenle Docker/install smoke yalnızca install, packaging ve container ile ilgili değişikliklerde çalışır. Push işlemlerinde checks matrisi, yalnızca push için olan compat-node22 aşamasını ekler. Pull request’lerde bu aşama atlanır ve matris normal test/kanal aşamalarına odaklı kalır.

Çalıştırıcılar

Çalıştırıcıİşler
blacksmith-16vcpu-ubuntu-2404preflight, security-fast, build-artifacts, Linux kontrolleri, doküman kontrolleri, Python Skills, android
blacksmith-32vcpu-windows-2025checks-windows
macos-latestmacos-node, macos-swift

Yerel Eşdeğerler

pnpm check          # türler + lint + format
pnpm build:strict-smoke
pnpm check:import-cycles
pnpm test:gateway:watch-regression
pnpm test           # vitest testleri
pnpm test:channels
pnpm check:docs     # doküman formatı + lint + bozuk bağlantılar
pnpm build          # CI artifact/build-smoke aşamaları önemliyse dist derlemesi