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 f3b505fc8..9708c6121 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 @@ -874,6 +874,8 @@ public class PipelineYmlSchema implements YamlSchema { addProp(get, "bump", f.yenum("SemverBump", "major", "minor", "patch", "final")); addProp(get, "pre", t_ne_string); addProp(get, "pre_without_version", t_boolean); + addProp(get, "build_without_version", t_boolean); + AbstractType put = f.ybean("SemverPutParams"); for (YTypedProperty p : get.getProperties()) { diff --git a/headless-services/concourse-language-server/src/main/resources/desc/SemverGetParams/build_without_version.md b/headless-services/concourse-language-server/src/main/resources/desc/SemverGetParams/build_without_version.md new file mode 100644 index 000000000..38489e364 --- /dev/null +++ b/headless-services/concourse-language-server/src/main/resources/desc/SemverGetParams/build_without_version.md @@ -0,0 +1 @@ +*Optional.* Same as pre_without_version but for build labels. \ 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 a6988b0e1..53b4869c5 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 @@ -3714,8 +3714,8 @@ public class ConcourseEditorTest { editor.assertProblems("version|Unused 'Resource'"); editor.assertHoverContains("openstack", "All openstack configuration"); } - - @Test public void GH_849_build_without_version() throws Exception { + + @Test public void GH_849_pre_without_version() throws Exception { Editor editor = harness.newEditor( "resources:\n" + "- name: test\n" + @@ -3741,7 +3741,38 @@ public class ConcourseEditorTest { ); editor.assertHoverContains("pre_without_version", 1, "PreRelease will be bumped"); - editor.assertHoverContains("pre_without_version", 2, "PreRelease will be bumped"); + editor.assertHoverContains("pre_without_version", 2, "PreRelease will be bumped"); + } + + + @Test public void GH_849_build_without_version() throws Exception { + Editor editor = harness.newEditor( + "resources:\n" + + "- name: test\n" + + " type: semver\n" + + " source:\n" + + " driver: git\n" + + " uri: some-git-url\n" + + " branch: main\n" + + " file: VERSION\n" + + "jobs:\n" + + "- name: test\n" + + " plan:\n" + + " - get: test\n" + + " params:\n" + + " build_without_version: not-a-bool\n" + + " - put: test\n" + + " params:\n" + + " build_without_version: not-b-bool\n" + ); + editor.assertProblems( + "not-a-bool|boolean", + "not-b-bool|boolean" + ); + + editor.assertHoverContains("build_without_version", 1, "Same as pre_without_version but for build labels"); + editor.assertHoverContains("build_without_version", 2, "Same as pre_without_version but for build labels"); + } @Test public void semverResourceGetParamsReconcileAndHovers() throws Exception {