feat(ack): bind test env to deployer and add regression mode
ACK 0.19.0 hands test-environment deploys to the deployer skill, documents bug-fix as a first-class scenario, and adds docs/ack/regression.yaml harvest plus a /ack regression run.
This commit is contained in:
@@ -0,0 +1,92 @@
|
||||
{
|
||||
"$schema": "http://json-schema.org/draft-07/schema#",
|
||||
"$id": "https://git.yumee.top/laily/skills/skills/ack/templates/regression.schema.json",
|
||||
"title": "ACK project regression catalog",
|
||||
"description": "docs/ack/regression.yaml 的权威结构。用例是给 Test worker 的可观测信号说明书,不是可执行 DSL。",
|
||||
"type": "object",
|
||||
"required": ["version", "updatedAt", "project", "cases"],
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"version": { "type": "integer", "const": 1 },
|
||||
"updatedAt": { "type": "string" },
|
||||
"project": {
|
||||
"type": "object",
|
||||
"required": ["name"],
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"name": { "type": "string", "minLength": 1, "pattern": "\\S" }
|
||||
}
|
||||
},
|
||||
"cases": {
|
||||
"type": "array",
|
||||
"items": { "$ref": "#/definitions/case" }
|
||||
}
|
||||
},
|
||||
"definitions": {
|
||||
"caseId": {
|
||||
"type": "string",
|
||||
"pattern": "^REG-[A-Za-z0-9][A-Za-z0-9-]*$"
|
||||
},
|
||||
"stringList": {
|
||||
"type": "array",
|
||||
"minItems": 1,
|
||||
"items": { "type": "string", "minLength": 1, "pattern": "\\S" }
|
||||
},
|
||||
"relativePath": {
|
||||
"type": "string",
|
||||
"minLength": 1,
|
||||
"pattern": "^(?!/)(?!.*(?:^|/)\\.\\.(?:/|$))[A-Za-z0-9._/-]+$"
|
||||
},
|
||||
"expectedSignal": {
|
||||
"type": "object",
|
||||
"required": ["kind", "value"],
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"kind": {
|
||||
"type": "string",
|
||||
"enum": ["visible-text", "api-status", "api-field", "url", "interaction"]
|
||||
},
|
||||
"value": { "type": "string", "minLength": 1, "pattern": "\\S" }
|
||||
}
|
||||
},
|
||||
"case": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"id",
|
||||
"title",
|
||||
"status",
|
||||
"source",
|
||||
"suite",
|
||||
"surface",
|
||||
"setup",
|
||||
"steps",
|
||||
"expected"
|
||||
],
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"id": { "$ref": "#/definitions/caseId" },
|
||||
"title": { "type": "string", "minLength": 1, "pattern": "\\S" },
|
||||
"status": { "type": "string", "enum": ["active", "retired"] },
|
||||
"source": {
|
||||
"type": "object",
|
||||
"required": ["taskId", "kind"],
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"taskId": { "type": "string", "minLength": 1, "pattern": "\\S" },
|
||||
"kind": { "type": "string", "enum": ["feature", "bug"] }
|
||||
}
|
||||
},
|
||||
"suite": { "type": "string", "enum": ["smoke", "full"] },
|
||||
"surface": { "type": "string", "enum": ["browser", "api"] },
|
||||
"setup": { "type": "string", "minLength": 1, "pattern": "\\S" },
|
||||
"steps": { "$ref": "#/definitions/stringList" },
|
||||
"expected": {
|
||||
"type": "array",
|
||||
"minItems": 1,
|
||||
"items": { "$ref": "#/definitions/expectedSignal" }
|
||||
},
|
||||
"automationRef": { "$ref": "#/definitions/relativePath" }
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user