intellitester 0.2.11 → 0.2.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{chunk-VOGZ7IFW.js → chunk-BYSKHSJB.js} +198 -206
- package/dist/chunk-BYSKHSJB.js.map +1 -0
- package/dist/{chunk-ZWHIDROO.cjs → chunk-UM7RXADM.cjs} +198 -206
- package/dist/chunk-UM7RXADM.cjs.map +1 -0
- package/dist/cli/index.cjs +34 -34
- package/dist/cli/index.js +1 -1
- package/dist/index.cjs +28 -28
- package/dist/index.js +1 -1
- package/package.json +3 -2
- package/schemas/intellitester.config.schema.json +210 -204
- package/schemas/pipeline.schema.json +292 -0
- package/schemas/test.schema.json +355 -204
- package/schemas/workflow.schema.json +135 -104
- package/dist/chunk-VOGZ7IFW.js.map +0 -1
- package/dist/chunk-ZWHIDROO.cjs.map +0 -1
|
@@ -0,0 +1,292 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"description": "Schema for IntelliTester pipeline files that orchestrate multiple workflows",
|
|
4
|
+
"type": "object",
|
|
5
|
+
"properties": {
|
|
6
|
+
"name": {
|
|
7
|
+
"description": "The name of the pipeline",
|
|
8
|
+
"type": "string",
|
|
9
|
+
"minLength": 1
|
|
10
|
+
},
|
|
11
|
+
"platform": {
|
|
12
|
+
"description": "The platform to run the pipeline on",
|
|
13
|
+
"default": "web",
|
|
14
|
+
"type": "string",
|
|
15
|
+
"enum": [
|
|
16
|
+
"web",
|
|
17
|
+
"android",
|
|
18
|
+
"ios"
|
|
19
|
+
]
|
|
20
|
+
},
|
|
21
|
+
"config": {
|
|
22
|
+
"description": "Pipeline-level configuration that applies to all workflows",
|
|
23
|
+
"type": "object",
|
|
24
|
+
"properties": {
|
|
25
|
+
"web": {
|
|
26
|
+
"description": "Web platform configuration for the pipeline",
|
|
27
|
+
"type": "object",
|
|
28
|
+
"properties": {
|
|
29
|
+
"baseUrl": {
|
|
30
|
+
"description": "Base URL for all workflows in this pipeline",
|
|
31
|
+
"type": "string",
|
|
32
|
+
"minLength": 1,
|
|
33
|
+
"format": "uri"
|
|
34
|
+
},
|
|
35
|
+
"browser": {
|
|
36
|
+
"description": "Browser to use for all web tests",
|
|
37
|
+
"type": "string",
|
|
38
|
+
"enum": [
|
|
39
|
+
"chromium",
|
|
40
|
+
"firefox",
|
|
41
|
+
"webkit"
|
|
42
|
+
]
|
|
43
|
+
},
|
|
44
|
+
"headless": {
|
|
45
|
+
"description": "Run browser in headless mode",
|
|
46
|
+
"type": "boolean"
|
|
47
|
+
}
|
|
48
|
+
},
|
|
49
|
+
"additionalProperties": false
|
|
50
|
+
},
|
|
51
|
+
"appwrite": {
|
|
52
|
+
"description": "Appwrite backend configuration for the pipeline",
|
|
53
|
+
"type": "object",
|
|
54
|
+
"properties": {
|
|
55
|
+
"endpoint": {
|
|
56
|
+
"description": "Appwrite API endpoint",
|
|
57
|
+
"type": "string",
|
|
58
|
+
"minLength": 1,
|
|
59
|
+
"format": "uri"
|
|
60
|
+
},
|
|
61
|
+
"projectId": {
|
|
62
|
+
"description": "Appwrite project ID",
|
|
63
|
+
"type": "string",
|
|
64
|
+
"minLength": 1
|
|
65
|
+
},
|
|
66
|
+
"apiKey": {
|
|
67
|
+
"description": "Appwrite API key",
|
|
68
|
+
"type": "string",
|
|
69
|
+
"minLength": 1
|
|
70
|
+
},
|
|
71
|
+
"cleanup": {
|
|
72
|
+
"description": "Enable automatic cleanup of created resources",
|
|
73
|
+
"default": true,
|
|
74
|
+
"type": "boolean"
|
|
75
|
+
},
|
|
76
|
+
"cleanupOnFailure": {
|
|
77
|
+
"description": "Clean up resources even when workflows fail",
|
|
78
|
+
"default": true,
|
|
79
|
+
"type": "boolean"
|
|
80
|
+
}
|
|
81
|
+
},
|
|
82
|
+
"required": [
|
|
83
|
+
"endpoint",
|
|
84
|
+
"projectId",
|
|
85
|
+
"apiKey",
|
|
86
|
+
"cleanup",
|
|
87
|
+
"cleanupOnFailure"
|
|
88
|
+
],
|
|
89
|
+
"additionalProperties": false
|
|
90
|
+
},
|
|
91
|
+
"cleanup": {
|
|
92
|
+
"description": "Resource cleanup configuration",
|
|
93
|
+
"type": "object",
|
|
94
|
+
"properties": {
|
|
95
|
+
"provider": {
|
|
96
|
+
"description": "Cleanup provider to use",
|
|
97
|
+
"type": "string"
|
|
98
|
+
},
|
|
99
|
+
"parallel": {
|
|
100
|
+
"description": "Run cleanup tasks in parallel",
|
|
101
|
+
"default": false,
|
|
102
|
+
"type": "boolean"
|
|
103
|
+
},
|
|
104
|
+
"retries": {
|
|
105
|
+
"description": "Number of retry attempts for failed cleanup operations",
|
|
106
|
+
"default": 3,
|
|
107
|
+
"type": "number",
|
|
108
|
+
"minimum": 1,
|
|
109
|
+
"maximum": 10
|
|
110
|
+
},
|
|
111
|
+
"types": {
|
|
112
|
+
"description": "Map resource types to cleanup handler methods",
|
|
113
|
+
"type": "object",
|
|
114
|
+
"propertyNames": {
|
|
115
|
+
"type": "string"
|
|
116
|
+
},
|
|
117
|
+
"additionalProperties": {
|
|
118
|
+
"type": "string"
|
|
119
|
+
}
|
|
120
|
+
},
|
|
121
|
+
"handlers": {
|
|
122
|
+
"description": "Explicit paths to custom cleanup handler files",
|
|
123
|
+
"type": "array",
|
|
124
|
+
"items": {
|
|
125
|
+
"type": "string"
|
|
126
|
+
}
|
|
127
|
+
},
|
|
128
|
+
"discover": {
|
|
129
|
+
"description": "Auto-discovery configuration for cleanup handlers",
|
|
130
|
+
"type": "object",
|
|
131
|
+
"properties": {
|
|
132
|
+
"enabled": {
|
|
133
|
+
"description": "Enable auto-discovery of cleanup handlers",
|
|
134
|
+
"default": true,
|
|
135
|
+
"type": "boolean"
|
|
136
|
+
},
|
|
137
|
+
"paths": {
|
|
138
|
+
"description": "Directories to search for cleanup handlers",
|
|
139
|
+
"default": [
|
|
140
|
+
"./tests/cleanup"
|
|
141
|
+
],
|
|
142
|
+
"type": "array",
|
|
143
|
+
"items": {
|
|
144
|
+
"type": "string"
|
|
145
|
+
}
|
|
146
|
+
},
|
|
147
|
+
"pattern": {
|
|
148
|
+
"description": "Glob pattern for handler files",
|
|
149
|
+
"default": "**/*.ts",
|
|
150
|
+
"type": "string"
|
|
151
|
+
}
|
|
152
|
+
},
|
|
153
|
+
"required": [
|
|
154
|
+
"enabled",
|
|
155
|
+
"paths",
|
|
156
|
+
"pattern"
|
|
157
|
+
],
|
|
158
|
+
"additionalProperties": false
|
|
159
|
+
},
|
|
160
|
+
"on_failure": {
|
|
161
|
+
"description": "Run cleanup even if pipeline fails",
|
|
162
|
+
"default": true,
|
|
163
|
+
"type": "boolean"
|
|
164
|
+
}
|
|
165
|
+
},
|
|
166
|
+
"required": [
|
|
167
|
+
"parallel",
|
|
168
|
+
"retries",
|
|
169
|
+
"on_failure"
|
|
170
|
+
],
|
|
171
|
+
"additionalProperties": {}
|
|
172
|
+
},
|
|
173
|
+
"webServer": {
|
|
174
|
+
"description": "Configuration for starting a web server before workflows",
|
|
175
|
+
"type": "object",
|
|
176
|
+
"properties": {
|
|
177
|
+
"command": {
|
|
178
|
+
"description": "Command to start the web server",
|
|
179
|
+
"type": "string",
|
|
180
|
+
"minLength": 1
|
|
181
|
+
},
|
|
182
|
+
"auto": {
|
|
183
|
+
"description": "Auto-detect server start command from package.json",
|
|
184
|
+
"type": "boolean"
|
|
185
|
+
},
|
|
186
|
+
"url": {
|
|
187
|
+
"description": "URL to wait for before starting workflows",
|
|
188
|
+
"type": "string",
|
|
189
|
+
"minLength": 1,
|
|
190
|
+
"format": "uri"
|
|
191
|
+
},
|
|
192
|
+
"reuseExistingServer": {
|
|
193
|
+
"description": "Use existing server if already running at the URL",
|
|
194
|
+
"default": true,
|
|
195
|
+
"type": "boolean"
|
|
196
|
+
},
|
|
197
|
+
"timeout": {
|
|
198
|
+
"description": "Timeout in milliseconds to wait for server to start",
|
|
199
|
+
"default": 30000,
|
|
200
|
+
"type": "integer",
|
|
201
|
+
"exclusiveMinimum": 0,
|
|
202
|
+
"maximum": 9007199254740991
|
|
203
|
+
}
|
|
204
|
+
},
|
|
205
|
+
"required": [
|
|
206
|
+
"url",
|
|
207
|
+
"reuseExistingServer",
|
|
208
|
+
"timeout"
|
|
209
|
+
],
|
|
210
|
+
"additionalProperties": false
|
|
211
|
+
}
|
|
212
|
+
},
|
|
213
|
+
"additionalProperties": false
|
|
214
|
+
},
|
|
215
|
+
"on_failure": {
|
|
216
|
+
"description": "Default failure handling for workflows",
|
|
217
|
+
"default": "skip",
|
|
218
|
+
"type": "string",
|
|
219
|
+
"enum": [
|
|
220
|
+
"skip",
|
|
221
|
+
"fail",
|
|
222
|
+
"ignore"
|
|
223
|
+
]
|
|
224
|
+
},
|
|
225
|
+
"cleanup_on_failure": {
|
|
226
|
+
"description": "Run cleanup even when pipeline fails",
|
|
227
|
+
"default": true,
|
|
228
|
+
"type": "boolean"
|
|
229
|
+
},
|
|
230
|
+
"workflows": {
|
|
231
|
+
"description": "List of workflow files to execute in this pipeline",
|
|
232
|
+
"minItems": 1,
|
|
233
|
+
"type": "array",
|
|
234
|
+
"items": {
|
|
235
|
+
"description": "Reference to a workflow file",
|
|
236
|
+
"type": "object",
|
|
237
|
+
"properties": {
|
|
238
|
+
"file": {
|
|
239
|
+
"description": "Path to the workflow file",
|
|
240
|
+
"type": "string",
|
|
241
|
+
"minLength": 1
|
|
242
|
+
},
|
|
243
|
+
"id": {
|
|
244
|
+
"description": "Optional ID for referencing this workflow in dependencies",
|
|
245
|
+
"type": "string",
|
|
246
|
+
"minLength": 1
|
|
247
|
+
},
|
|
248
|
+
"depends_on": {
|
|
249
|
+
"description": "IDs of workflows that must complete before this one",
|
|
250
|
+
"type": "array",
|
|
251
|
+
"items": {
|
|
252
|
+
"type": "string",
|
|
253
|
+
"minLength": 1
|
|
254
|
+
}
|
|
255
|
+
},
|
|
256
|
+
"on_failure": {
|
|
257
|
+
"description": "How to handle failure of this workflow",
|
|
258
|
+
"type": "string",
|
|
259
|
+
"enum": [
|
|
260
|
+
"skip",
|
|
261
|
+
"fail",
|
|
262
|
+
"ignore"
|
|
263
|
+
]
|
|
264
|
+
},
|
|
265
|
+
"variables": {
|
|
266
|
+
"description": "Variables to inject or override for this workflow",
|
|
267
|
+
"type": "object",
|
|
268
|
+
"propertyNames": {
|
|
269
|
+
"type": "string"
|
|
270
|
+
},
|
|
271
|
+
"additionalProperties": {
|
|
272
|
+
"type": "string"
|
|
273
|
+
}
|
|
274
|
+
}
|
|
275
|
+
},
|
|
276
|
+
"required": [
|
|
277
|
+
"file"
|
|
278
|
+
],
|
|
279
|
+
"additionalProperties": false
|
|
280
|
+
}
|
|
281
|
+
}
|
|
282
|
+
},
|
|
283
|
+
"required": [
|
|
284
|
+
"name",
|
|
285
|
+
"platform",
|
|
286
|
+
"on_failure",
|
|
287
|
+
"cleanup_on_failure",
|
|
288
|
+
"workflows"
|
|
289
|
+
],
|
|
290
|
+
"additionalProperties": false,
|
|
291
|
+
"title": "IntelliTester Pipeline Definition"
|
|
292
|
+
}
|