Tóm tắt
{
"version": "v28",
"jobs": 7,
"offlineJobs": 4,
"emulatorAwareJobs": 3,
"releaseRule": "Không release production nếu emulator-aware gate chỉ chạy ở chế độ skip/dry-run."
}CI v28 không coi skip/dry-run là bằng chứng integration thật cho production release.
{
"version": "v28",
"jobs": 7,
"offlineJobs": 4,
"emulatorAwareJobs": 3,
"releaseRule": "Không release production nếu emulator-aware gate chỉ chạy ở chế độ skip/dry-run."
}{
"id": "policy",
"command": "npm run policy:test && npm run policy:matrix",
"gate": "offline"
}{
"id": "firestore-schema",
"command": "npm run firestore:schema",
"gate": "offline"
}{
"id": "rules-integration",
"command": "npm run firestore:rules:test:v28:live",
"gate": "emulator-aware"
}{
"id": "admin-seed",
"command": "npm run firestore:seed:admin:v28:live",
"gate": "emulator-aware"
}{
"id": "api-smoke",
"command": "npm run firebase:e2e:smoke:v28:live",
"gate": "emulator-aware"
}{
"id": "adapter-export",
"command": "npm run adapter:test && npm run export:demo",
"gate": "offline"
}{
"id": "quality",
"command": "npm run ci:v28:check",
"gate": "offline"
}