Ana içeriğe atla

CI Ardışık Düzeni

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

İş Genel Bakışı

İşAmaçNe zaman çalışır
preflightYalnızca dokümantasyon değişikliklerini, değişen kapsamları, değişen eklentileri tespit etmek ve CI manifestini oluşturmakTaslak olmayan push ve PR’lerde her zaman
security-fastÖzel anahtar tespiti, zizmor ile workflow denetimi, üretim bağımlılığı denetimiTaslak olmayan push ve PR’lerde her zaman
build-artifactsdist/ ve Control UI’ı bir kez derlemek, alt işler için yeniden kullanılabilir artifact’ları yüklemekNode ile ilgili değişiklikler
checks-fast-corePaketlenmiş/eklenti-sözleşmesi/protokol denetimleri gibi hızlı Linux doğruluk yollarıNode ile ilgili değişiklikler
checks-fast-extensionschecks-fast-extensions-shard tamamlandıktan sonra eklenti shard yollarını toplamakNode ile ilgili değişiklikler
extension-fastYalnızca değişen paketlenmiş eklentiler için odaklı testlerEklenti değişiklikleri tespit edildiğinde
checkCI’daki ana yerel geçit: pnpm check ve pnpm build:strict-smokeNode ile ilgili değişiklikler
check-additionalMimari ve sınır korumaları ile gateway watch regresyon düzeneğiNode ile ilgili değişiklikler
build-smokeDerlenmiş CLI smoke testleri ve başlangıç bellek smoke testiNode ile ilgili değişiklikler
checksDaha ağır Linux Node yolları: tam testler, kanal testleri ve yalnızca push için Node 22 uyumluluğuNode ile ilgili değişiklikler
check-docsDokümantasyon biçimlendirme, lint ve bozuk bağlantı kontrolleriDokümantasyon değiştiğinde
skills-pythonPython destekli Skills için Ruff + pytestPython Skill ile ilgili değişiklikler
checks-windowsWindows’a özgü test yollarıWindows ile ilgili değişiklikler
macos-nodePaylaşılan derleme artifact’larını kullanan macOS TypeScript test yolumacOS ile ilgili değişiklikler
macos-swiftmacOS uygulaması için Swift lint, derleme ve testlermacOS ile ilgili değişiklikler
androidAndroid derleme ve test matrisiAndroid ile ilgili değişiklikler

Hızlı Başarısız Olma Sırası

İşler, pahalı olanlar çalışmadan önce ucuz kontroller başarısız olacak şekilde sıralanır:
  1. preflight, hangi yolları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 matris işleri beklenmeden hızlıca başarısız olur.
  3. build-artifacts, hızlı Linux yollarıyla çakışacak şekilde çalışır; böylece alt tüketiciler paylaşılan derleme hazır olur olmaz başlayabilir.
  4. Daha ağır platform ve çalışma zamanı yolları bundan sonra yayılır: checks-fast-core, checks-fast-extensions, extension-fast, checks, checks-windows, macos-node, macos-swift ve android.
Kapsam mantığı scripts/ci-changed-scope.mjs içinde yer alır ve src/scripts/ci-changed-scope.test.ts içindeki birim testlerle kapsanır. Ayrı install-smoke workflow’u, aynı kapsam betiğini kendi preflight işi üzerinden yeniden kullanır. run_install_smoke değerini daha dar changed-smoke sinyalinden hesaplar; bu nedenle Docker/install smoke yalnızca kurulum, paketleme ve container ile ilgili değişiklikler için çalışır. Push işlemlerinde checks matrisi yalnızca push için olan compat-node22 yolunu ekler. Pull request’lerde bu yol atlanır ve matris normal test/kanal yolları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ümantasyon kontrolleri, Python Skills, android
blacksmith-32vcpu-windows-2025checks-windows
macos-latestmacos-node, macos-swift

Yerel Eşdeğerler

pnpm check          # türler + lint + biçimlendirme
pnpm build:strict-smoke
pnpm test:gateway:watch-regression
pnpm test           # vitest testleri
pnpm test:channels
pnpm check:docs     # dokümantasyon biçimlendirme + lint + bozuk bağlantılar
pnpm build          # CI artifact/build-smoke yolları önemli olduğunda dist derle