From 5e37be88ae4175d055ad0a384e98a2610854ec8e Mon Sep 17 00:00:00 2001 From: Kris De Volder Date: Wed, 21 Dec 2016 13:57:49 -0800 Subject: [PATCH] Concourse: basic support for 'do' attribute --- .../vscode/concourse/PipelineYmlSchema.java | 5 ++++- .../src/main/resources/desc/DoStep/do.md | 14 +++++++++++++ .../concourse/PipelineYamlEditorTest.java | 20 ++++++++++++++++++- 3 files changed, 37 insertions(+), 2 deletions(-) create mode 100644 vscode-extensions/vscode-concourse/src/main/resources/desc/DoStep/do.md 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 8e29256cf..b7334cdaf 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 @@ -120,15 +120,18 @@ public class PipelineYmlSchema implements YamlSchema { prop(taskStep, "output_mapping", t_string_params); YBeanType aggregateStep = f.ybean("AggregateStep"); + YBeanType doStep = f.ybean("DoStep"); YBeanType[] stepTypes = { getStep, putStep, taskStep, - aggregateStep + aggregateStep, + doStep }; YBeanUnionType step = f.yunion("Step", stepTypes); prop(aggregateStep, "aggregate", f.yseq(step)); + prop(doStep, "do", f.yseq(step)); // shared properties applicable for any type of Step: prop(step, "on_success", step); diff --git a/vscode-extensions/vscode-concourse/src/main/resources/desc/DoStep/do.md b/vscode-extensions/vscode-concourse/src/main/resources/desc/DoStep/do.md new file mode 100644 index 000000000..8d8d7247e --- /dev/null +++ b/vscode-extensions/vscode-concourse/src/main/resources/desc/DoStep/do.md @@ -0,0 +1,14 @@ +Run steps in series. + + do: [step] + +Simply performs the given steps serially, with the same semantics as if they were at the top level step listing. + +This can be used to perform multiple steps serially in the branch of an `aggregate` step: + + plan: + - aggregate: + - task: unit + - do: + - get: something-else + - task: something-else-unit \ No newline at end of file diff --git a/vscode-extensions/vscode-concourse/src/test/java/org/springframework/ide/vscode/concourse/PipelineYamlEditorTest.java b/vscode-extensions/vscode-concourse/src/test/java/org/springframework/ide/vscode/concourse/PipelineYamlEditorTest.java index 8759b57cc..7b936d75d 100644 --- a/vscode-extensions/vscode-concourse/src/test/java/org/springframework/ide/vscode/concourse/PipelineYamlEditorTest.java +++ b/vscode-extensions/vscode-concourse/src/test/java/org/springframework/ide/vscode/concourse/PipelineYamlEditorTest.java @@ -135,6 +135,9 @@ public class PipelineYamlEditorTest { "aggregate:\n" + " - <*>" , // ============== + "do:\n" + + " - <*>" + , // ============== "get: <*>" , // ============== "put: <*>" @@ -261,7 +264,22 @@ public class PipelineYamlEditorTest { editor.assertHoverContains("aggregate", "Performs the given steps in parallel"); } - + + @Test + public void doStepHovers() throws Exception { + Editor editor; + + editor = harness.newEditor( + "jobs:\n" + + "- name: some-job\n" + + " plan:\n" + + " - do:\n" + + " - get: some-resource\n" + ); + + editor.assertHoverContains("do", "performs the given steps serially"); + } + @Test public void reconcileSimpleTypes() throws Exception { Editor editor;