Langsung ke konten utama

Pipeline CI

CI berjalan pada setiap push ke main dan setiap pull request. Ini menggunakan scoping cerdas untuk melewati job mahal ketika hanya area yang tidak terkait yang berubah.

Ikhtisar Job

JobTujuanKapan dijalankan
preflightMendeteksi perubahan khusus docs, scope yang berubah, extension yang berubah, dan membangun manifest CISelalu pada push dan PR non-draft
security-fastDeteksi private key, audit workflow melalui zizmor, audit dependensi produksiSelalu pada push dan PR non-draft
build-artifactsMembangun dist/ dan UI Control sekali, mengunggah artifact yang dapat digunakan ulang untuk job downstreamPerubahan yang relevan dengan Node
checks-fast-coreLane korektness Linux cepat seperti pemeriksaan bundled/plugin-contract/protocolPerubahan yang relevan dengan Node
checks-fast-extensionsMengagregasi lane shard extension setelah checks-fast-extensions-shard selesaiPerubahan yang relevan dengan Node
extension-fastPengujian terfokus hanya untuk bundled plugin yang berubahSaat perubahan extension terdeteksi
checkGate lokal utama di CI: pnpm check plus pnpm build:strict-smokePerubahan yang relevan dengan Node
check-additionalGuard arsitektur dan boundary plus harness regresi gateway watchPerubahan yang relevan dengan Node
build-smokePengujian smoke CLI hasil build dan smoke memori saat startupPerubahan yang relevan dengan Node
checksLane Node Linux yang lebih berat: pengujian penuh, pengujian channel, dan kompatibilitas Node 22 khusus pushPerubahan yang relevan dengan Node
check-docsPemeriksaan format docs, lint, dan tautan rusakDocs berubah
skills-pythonRuff + pytest untuk Skills berbasis PythonPerubahan yang relevan dengan Skills Python
checks-windowsLane pengujian khusus WindowsPerubahan yang relevan dengan Windows
macos-nodeLane pengujian TypeScript macOS menggunakan artifact build bersamaPerubahan yang relevan dengan macOS
macos-swiftLint, build, dan pengujian Swift untuk aplikasi macOSPerubahan yang relevan dengan macOS
androidMatriks build dan pengujian AndroidPerubahan yang relevan dengan Android

Urutan Fail-Fast

Job diurutkan sehingga pemeriksaan murah gagal sebelum job mahal berjalan:
  1. preflight menentukan lane mana yang ada sama sekali. Logika docs-scope dan changed-scope adalah step di dalam job ini, bukan job terpisah.
  2. security-fast, check, check-additional, check-docs, dan skills-python gagal cepat tanpa menunggu artifact yang lebih berat dan job matriks platform.
  3. build-artifacts berjalan tumpang tindih dengan lane Linux cepat sehingga konsumen downstream dapat mulai segera setelah build bersama siap.
  4. Setelah itu, lane platform dan runtime yang lebih berat menyebar: checks-fast-core, checks-fast-extensions, extension-fast, checks, checks-windows, macos-node, macos-swift, dan android.
Logika scope berada di scripts/ci-changed-scope.mjs dan dicakup oleh unit test di src/scripts/ci-changed-scope.test.ts. Workflow install-smoke yang terpisah menggunakan ulang skrip scope yang sama melalui job preflight miliknya sendiri. Workflow ini menghitung run_install_smoke dari sinyal changed-smoke yang lebih sempit, sehingga smoke Docker/install hanya berjalan untuk perubahan yang relevan dengan install, packaging, dan container. Pada push, matriks checks menambahkan lane compat-node22 khusus push. Pada pull request, lane tersebut dilewati dan matriks tetap fokus pada lane pengujian/channel normal.

Runner

RunnerJob
blacksmith-16vcpu-ubuntu-2404preflight, security-fast, build-artifacts, pemeriksaan Linux, pemeriksaan docs, Skills Python, android
blacksmith-32vcpu-windows-2025checks-windows
macos-latestmacos-node, macos-swift

Padanan Lokal

pnpm check          # types + lint + format
pnpm build:strict-smoke
pnpm test:gateway:watch-regression
pnpm test           # vitest tests
pnpm test:channels
pnpm check:docs     # docs format + lint + broken links
pnpm build          # build dist when CI artifact/build-smoke lanes matter