CI Pipeline

CI ทำงานทุกครั้งที่ push ไปที่ main และทุก pull request มันใช้ขอบเขตอัจฉริยะเพื่อข้ามงานที่มีค่าใช้จ่ายสูงเมื่อมีเพียงเอกสารหรือโค้ด native เท่านั้นที่เปลี่ยนแปลง

ภาพรวมของงาน

งานวัตถุประสงค์เมื่อมันทำงาน
docs-scopeตรวจจับการเปลี่ยนแปลงเฉพาะเอกสารเสมอ
changed-scopeตรวจจับพื้นที่ที่เปลี่ยนแปลง (node/macos/android)PR ที่ไม่ใช่เอกสาร
checkประเภท TypeScript, lint, formatการเปลี่ยนแปลงที่ไม่ใช่เอกสาร
check-docsMarkdown lint + ตรวจสอบลิงก์เสียเอกสารเปลี่ยนแปลง
code-analysisตรวจสอบเกณฑ์ LOC (1000 บรรทัด)เฉพาะ PR
secretsตรวจจับความลับที่รั่วไหลเสมอ
build-artifactsสร้าง dist ครั้งเดียว แชร์กับงานอื่นไม่ใช่เอกสาร, การเปลี่ยนแปลง node
release-checkตรวจสอบเนื้อหา npm packหลังจาก build
checksการทดสอบ Node/Bun + ตรวจสอบโปรโตคอลไม่ใช่เอกสาร, การเปลี่ยนแปลง node
checks-windowsการทดสอบเฉพาะ Windowsไม่ใช่เอกสาร, การเปลี่ยนแปลง node
macosSwift lint/build/test + การทดสอบ TSPR พร้อมการเปลี่ยนแปลง macos
androidGradle build + การทดสอบไม่ใช่เอกสาร, การเปลี่ยนแปลง android

ลำดับ Fail-Fast

งานถูกจัดลำดับให้การตรวจสอบที่ถูกล้มเหลวก่อนที่งานที่มีค่าใช้จ่ายสูงจะทำงาน:

  1. docs-scope + code-analysis + check (แบบขนาน, ~1-2 นาที)
  2. build-artifacts (บล็อกโดยด้านบน)
  3. checks, checks-windows, macos, android (บล็อกโดย build)

Runners

Runnerงาน
blacksmith-16vcpu-ubuntu-2404งาน Linux ส่วนใหญ่ รวมถึงการตรวจจับขอบเขต
blacksmith-16vcpu-windows-2025checks-windows
macos-latestmacos, ios

คำสั่งที่เทียบเท่าในโลคัล

bash
pnpm check          # types + lint + format
pnpm test           # vitest tests
pnpm check:docs     # docs format + lint + broken links
pnpm release:check  # validate npm pack