diff --git a/lexicons/pipeline/pipeline.json b/lexicons/pipeline/pipeline.json index 9c1138b565..5a756302a3 100644 --- a/lexicons/pipeline/pipeline.json +++ b/lexicons/pipeline/pipeline.json @@ -151,7 +151,7 @@ "name", "engine", "clone", - "raw" + "rest" ], "properties": { "name": { @@ -164,8 +164,12 @@ "type": "ref", "ref": "#cloneOpts" }, - "raw": { - "type": "string" + "rest": { + "type": "union", + "closed": false, + "refs": [ + "#nixeryWorkflowFields" + ] } } }, @@ -202,6 +206,78 @@ "type": "string" } } + }, + "commandStep": { + "type": "object", + "required": [ + "name", + "command" + ], + "properties": { + "name": { + "type": "string" + }, + "command": { + "type": "string" + }, + "environment": { + "type": "array", + "items": { + "type": "ref", + "ref": "#pair" + } + } + } + }, + + "nixeryWorkflowFields": { + "type": "object", + "required": [ + "dependencies", + "steps", + "environment" + ], + "properties": { + "dependencies": { + "type": "array", + "items": { + "type": "ref", + "ref": "#nixeryDependency" + } + }, + "steps": { + "type": "array", + "items": { + "type": "ref", + "ref": "#commandStep" + } + }, + "environment": { + "type": "array", + "items": { + "type": "ref", + "ref": "#pair" + } + } + } + }, + "nixeryDependency": { + "type": "object", + "required": [ + "registry", + "packages" + ], + "properties": { + "registry": { + "type": "string" + }, + "packages": { + "type": "array", + "items": { + "type": "string" + } + } + } } } }