Chuyển đến nội dung chính

CI Pipeline

CI chạy trên mọi lần đẩy (push) vào main và mọi yêu cầu kéo (pull request). Nó sử dụng phạm vi thông minh để bỏ qua các công việc tốn kém khi chỉ có những khu vực không liên quan bị thay đổi.

Tổng quan công việc

Công việcMục đíchKhi nào chạy
docs-scopePhát hiện thay đổi chỉ trong tài liệuLuôn luôn
changed-scopePhát hiện khu vực nào đã thay đổi (node/macos/android/windows)Thay đổi không liên quan đến tài liệu
checkKiểm tra kiểu TypeScript, lint, định dạngThay đổi không liên quan đến tài liệu, node
check-docsKiểm tra lint Markdown + liên kết hỏngThay đổi tài liệu
secretsPhát hiện rò rỉ bí mậtLuôn luôn
build-artifactsXây dựng dist một lần, chia sẻ với release-checkĐẩy vào main, thay đổi node
release-checkXác thực nội dung npm packĐẩy vào main sau khi xây dựng
checksKiểm tra Node + kiểm tra giao thức trên PRs; Bun tương thích khi đẩyThay đổi không liên quan đến tài liệu, node
compat-node22Tương thích với runtime Node tối thiểu được hỗ trợĐẩy vào main, thay đổi node
checks-windowsKiểm tra đặc thù cho WindowsThay đổi không liên quan đến tài liệu, liên quan đến Windows
macosLint/Xây dựng/kiểm tra Swift + kiểm tra TSPRs với thay đổi macos
androidXây dựng Gradle + kiểm traThay đổi không liên quan đến tài liệu, android

Thứ tự thất bại nhanh

Các công việc được sắp xếp để các kiểm tra rẻ tiền thất bại trước khi các công việc đắt tiền chạy:
  1. docs-scope + changed-scope + check + secrets (chạy song song, cổng rẻ tiền trước)
  2. PRs: checks (Kiểm tra Node trên Linux chia thành 2 phần), checks-windows, macos, android
  3. Đẩy vào main: build-artifacts + release-check + Bun tương thích + compat-node22
Logic phạm vi nằm trong scripts/ci-changed-scope.mjs và được kiểm tra bằng unit test trong src/scripts/ci-changed-scope.test.ts.

Runners

RunnerCông việc
blacksmith-16vcpu-ubuntu-2404Hầu hết các công việc trên Linux, bao gồm phát hiện phạm vi
blacksmith-32vcpu-windows-2025checks-windows
macos-latestmacos, ios

Lệnh tương đương cục bộ

pnpm check          # kiểm tra kiểu + lint + định dạng
pnpm test           # kiểm tra bằng vitest
pnpm check:docs     # định dạng tài liệu + lint + liên kết hỏng
pnpm release:check  # xác thực npm pack
Last modified on March 22, 2026