V28 · CI

Tách offline gate và emulator-aware gate.

CI v28 không coi skip/dry-run là bằng chứng integration thật cho production release.

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."
}
policy

npm run policy:test && npm run policy:matrix

{
  "id": "policy",
  "command": "npm run policy:test && npm run policy:matrix",
  "gate": "offline"
}
firestore-schema

npm run firestore:schema

{
  "id": "firestore-schema",
  "command": "npm run firestore:schema",
  "gate": "offline"
}
rules-integration

npm run firestore:rules:test:v28:live

{
  "id": "rules-integration",
  "command": "npm run firestore:rules:test:v28:live",
  "gate": "emulator-aware"
}
admin-seed

npm run firestore:seed:admin:v28:live

{
  "id": "admin-seed",
  "command": "npm run firestore:seed:admin:v28:live",
  "gate": "emulator-aware"
}
api-smoke

npm run firebase:e2e:smoke:v28:live

{
  "id": "api-smoke",
  "command": "npm run firebase:e2e:smoke:v28:live",
  "gate": "emulator-aware"
}
adapter-export

npm run adapter:test && npm run export:demo

{
  "id": "adapter-export",
  "command": "npm run adapter:test && npm run export:demo",
  "gate": "offline"
}
quality

npm run ci:v28:check

{
  "id": "quality",
  "command": "npm run ci:v28:check",
  "gate": "offline"
}