diff --git a/vscode-extensions/vscode-concourse/src/main/java/org/springframework/ide/vscode/concourse/PipelineYmlSchema.java b/vscode-extensions/vscode-concourse/src/main/java/org/springframework/ide/vscode/concourse/PipelineYmlSchema.java index 064e1fcab..108bfe74b 100644 --- a/vscode-extensions/vscode-concourse/src/main/java/org/springframework/ide/vscode/concourse/PipelineYmlSchema.java +++ b/vscode-extensions/vscode-concourse/src/main/java/org/springframework/ide/vscode/concourse/PipelineYmlSchema.java @@ -194,6 +194,7 @@ public class PipelineYmlSchema implements YamlSchema { addProp(task, "outputs", f.yseq(t_output)); addProp(task, "run", t_command).isRequired(true); addProp(task, "params", t_string_params); + task.requireOneOf("image_resource", "image"); YBeanType getStep = f.ybean("GetStep"); addProp(getStep, "get", t_resource_name); diff --git a/vscode-extensions/vscode-concourse/src/test/java/org/springframework/ide/vscode/concourse/ConcourseEditorTest.java b/vscode-extensions/vscode-concourse/src/test/java/org/springframework/ide/vscode/concourse/ConcourseEditorTest.java index 4554beddc..42e140bcd 100644 --- a/vscode-extensions/vscode-concourse/src/test/java/org/springframework/ide/vscode/concourse/ConcourseEditorTest.java +++ b/vscode-extensions/vscode-concourse/src/test/java/org/springframework/ide/vscode/concourse/ConcourseEditorTest.java @@ -1675,8 +1675,10 @@ public class ConcourseEditorTest { "params: the-params\n" ); editor.assertProblems( + "image_resource|Only one of [image_resource, image] should be defined", "name|Unknown property", "bogus-source-prop|Unknown property", + "image|Only one of [image_resource, image] should be defined", "path: path/to/input|'name' is required", "path: path/to/output|'name' is required", "the-params|Expecting a 'Map'" @@ -1768,8 +1770,10 @@ public class ConcourseEditorTest { " params: the-params" ); editor.assertProblems( + "image_resource|Only one of [image_resource, image] should be defined", "name|Unknown property", "bogus-source-prop|Unknown property", + "image|Only one of [image_resource, image] should be defined", "path: path/to/input|'name' is required", "path: path/to/output|'name' is required", "the-params|Expecting a 'Map'"