From 054e3e25a09d5cf36d1b293d8b4432d137a03438 Mon Sep 17 00:00:00 2001 From: aboyko Date: Wed, 18 Jan 2023 12:14:28 -0500 Subject: [PATCH] Concourse add `instance_vars` to SetPipelineStep --- .../ide/vscode/concourse/PipelineYmlSchema.java | 3 ++- .../main/resources/desc/SetPipelineStep/instance_vars.md | 5 +++++ .../ide/vscode/concourse/ConcourseEditorTest.java | 7 +++++-- 3 files changed, 12 insertions(+), 3 deletions(-) create mode 100644 headless-services/concourse-language-server/src/main/resources/desc/SetPipelineStep/instance_vars.md diff --git a/headless-services/concourse-language-server/src/main/java/org/springframework/ide/vscode/concourse/PipelineYmlSchema.java b/headless-services/concourse-language-server/src/main/java/org/springframework/ide/vscode/concourse/PipelineYmlSchema.java index 840697041..6d3f0144a 100644 --- a/headless-services/concourse-language-server/src/main/java/org/springframework/ide/vscode/concourse/PipelineYmlSchema.java +++ b/headless-services/concourse-language-server/src/main/java/org/springframework/ide/vscode/concourse/PipelineYmlSchema.java @@ -402,6 +402,7 @@ public class PipelineYmlSchema implements YamlSchema { YBeanType setPipelineStep = f.ybean("SetPipelineStep"); addProp(setPipelineStep, "set_pipeline", t_ne_string); addProp(setPipelineStep, "file", t_ne_string).isRequired(true); + addProp(setPipelineStep, "instance_vars", t_params); addProp(setPipelineStep, "vars", t_params); addProp(setPipelineStep, "var_files", t_strings); @@ -541,7 +542,7 @@ public class PipelineYmlSchema implements YamlSchema { return ssmConfig; case "dummy": YBeanType dummyConfig = f.ybean("DummyConfig"); - addProp(dummyConfig, "vars", t_any).isPrimary(true); + addProp(dummyConfig, "vars", t_params).isPrimary(true); return dummyConfig; case "secretmanager": YBeanType smcConfig = f.ybean("SecretManagerConfig"); diff --git a/headless-services/concourse-language-server/src/main/resources/desc/SetPipelineStep/instance_vars.md b/headless-services/concourse-language-server/src/main/resources/desc/SetPipelineStep/instance_vars.md new file mode 100644 index 000000000..03abeadc5 --- /dev/null +++ b/headless-services/concourse-language-server/src/main/resources/desc/SetPipelineStep/instance_vars.md @@ -0,0 +1,5 @@ +*Optional.* A map of instance vars used to identify [instanced pipelines](https://concourse-ci.org/instanced-pipelines.html). These vars will also be [interpolated into the pipeline config](https://concourse-ci.org/setting-pipelines.html#pipeline-static-vars). + +Note that variables set with this field will not propagate to tasks configured via [task step file](https://concourse-ci.org/task-step.html#schema.task.file). If you want those variables to be determined at the time the pipeline is set, use [task step vars](https://concourse-ci.org/task-step.html#schema.task.vars) as well. + +[Instance pipelines](https://concourse-ci.org/instanced-pipelines.html) are experimental and need to be enabled by setting the `--enable-pipeline-instances` flag on the [web node](https://concourse-ci.org/concourse-web.html). \ No newline at end of file diff --git a/headless-services/concourse-language-server/src/test/java/org/springframework/ide/vscode/concourse/ConcourseEditorTest.java b/headless-services/concourse-language-server/src/test/java/org/springframework/ide/vscode/concourse/ConcourseEditorTest.java index 65e07ae12..219c998ec 100644 --- a/headless-services/concourse-language-server/src/test/java/org/springframework/ide/vscode/concourse/ConcourseEditorTest.java +++ b/headless-services/concourse-language-server/src/test/java/org/springframework/ide/vscode/concourse/ConcourseEditorTest.java @@ -668,6 +668,7 @@ public class ConcourseEditorTest { " - get: my-repo\n" + " - set_pipeline: configure-the-pipeline\n" + " file: my-repo/ci/pipeline.yml\n" + + " instance_vars:\n" + " var_files:\n" + " - my-repo/ci/dev.yml\n" + " vars:\n" + @@ -675,8 +676,9 @@ public class ConcourseEditorTest { ); editor.assertHoverContains("file", "The path to the pipeline's configuration file."); + editor.assertHoverContains("instance_vars", "A map of instance vars used to identify"); editor.assertHoverContains("var_files", "files that will be passed to the pipeline config in the same manner as the --load-vars-from flag"); - editor.assertHoverContains("vars", "A map of template variables to pass to the pipeline config."); + editor.assertHoverContains("vars", 2, "A map of template variables to pass to the pipeline config."); } @Test @@ -6879,7 +6881,8 @@ public class ConcourseEditorTest { "- name: sts4\n" + " type: dummy\n" + " config:\n" + - " vars: east\n" + " vars:\n" + + " k1: v1\n" ); editor.assertProblems();