new-workflow-lexicon.diff
edited
1diff --git a/lexicons/pipeline/pipeline.json b/lexicons/pipeline/pipeline.json
2index 9c1138b565..5a756302a3 100644
3--- a/lexicons/pipeline/pipeline.json
4+++ b/lexicons/pipeline/pipeline.json
5@@ -151,7 +151,7 @@
6 "name",
7 "engine",
8 "clone",
9- "raw"
10+ "rest"
11 ],
12 "properties": {
13 "name": {
14@@ -164,8 +164,12 @@
15 "type": "ref",
16 "ref": "#cloneOpts"
17 },
18- "raw": {
19- "type": "string"
20+ "rest": {
21+ "type": "union",
22+ "closed": false,
23+ "refs": [
24+ "#nixeryWorkflowFields"
25+ ]
26 }
27 }
28 },
29@@ -202,6 +206,78 @@
30 "type": "string"
31 }
32 }
33+ },
34+ "commandStep": {
35+ "type": "object",
36+ "required": [
37+ "name",
38+ "command"
39+ ],
40+ "properties": {
41+ "name": {
42+ "type": "string"
43+ },
44+ "command": {
45+ "type": "string"
46+ },
47+ "environment": {
48+ "type": "array",
49+ "items": {
50+ "type": "ref",
51+ "ref": "#pair"
52+ }
53+ }
54+ }
55+ },
56+
57+ "nixeryWorkflowFields": {
58+ "type": "object",
59+ "required": [
60+ "dependencies",
61+ "steps",
62+ "environment"
63+ ],
64+ "properties": {
65+ "dependencies": {
66+ "type": "array",
67+ "items": {
68+ "type": "ref",
69+ "ref": "#nixeryDependency"
70+ }
71+ },
72+ "steps": {
73+ "type": "array",
74+ "items": {
75+ "type": "ref",
76+ "ref": "#commandStep"
77+ }
78+ },
79+ "environment": {
80+ "type": "array",
81+ "items": {
82+ "type": "ref",
83+ "ref": "#pair"
84+ }
85+ }
86+ }
87+ },
88+ "nixeryDependency": {
89+ "type": "object",
90+ "required": [
91+ "registry",
92+ "packages"
93+ ],
94+ "properties": {
95+ "registry": {
96+ "type": "string"
97+ },
98+ "packages": {
99+ "type": "array",
100+ "items": {
101+ "type": "string"
102+ }
103+ }
104+ }
105 }
106 }
107 }