diff --git a/vscode-extensions/vscode-concourse/src/main/resources/desc/DockerImageGetParams/rootfs.md b/vscode-extensions/vscode-concourse/src/main/resources/desc/DockerImageGetParams/rootfs.md new file mode 100644 index 000000000..f812e427c --- /dev/null +++ b/vscode-extensions/vscode-concourse/src/main/resources/desc/DockerImageGetParams/rootfs.md @@ -0,0 +1 @@ +*Optional.* Place a `.tar` file of the image in the destination. \ No newline at end of file diff --git a/vscode-extensions/vscode-concourse/src/main/resources/desc/DockerImageGetParams/save.md b/vscode-extensions/vscode-concourse/src/main/resources/desc/DockerImageGetParams/save.md new file mode 100644 index 000000000..bcf7fe797 --- /dev/null +++ b/vscode-extensions/vscode-concourse/src/main/resources/desc/DockerImageGetParams/save.md @@ -0,0 +1 @@ +*Optional.* Place a `docker save`d image in the destination. \ No newline at end of file diff --git a/vscode-extensions/vscode-concourse/src/main/resources/desc/DockerImageGetParams/skip_download.md b/vscode-extensions/vscode-concourse/src/main/resources/desc/DockerImageGetParams/skip_download.md new file mode 100644 index 000000000..a1b7ed4b7 --- /dev/null +++ b/vscode-extensions/vscode-concourse/src/main/resources/desc/DockerImageGetParams/skip_download.md @@ -0,0 +1,2 @@ +*Optional.* Skip `docker pull` of image. Artifacts based +on the image will not be present. \ 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 640788f3f..f803be0a3 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 @@ -1123,7 +1123,7 @@ public class PipelineYamlEditorTest { } - @Test public void dockerImageResourceSourceReconcile() throws Exception { + @Test public void dockerImageResourceSourceReconcileAndHovers() throws Exception { Editor editor; editor = harness.newEditor( @@ -1172,52 +1172,7 @@ public class PipelineYamlEditorTest { "bogus_ca_certs_prop|Unknown property", //ca_certs "bogus_client_cert_prop|Unknown property" //client_certs ); - } - @Test public void dockerImageResourceSourceHovers() throws Exception { - Editor editor; - - editor = harness.newEditor( - "resources:\n" + - "- name: my-docker-image\n" + - " type: docker-image\n" + - " source:\n" + - " tag: latest\n" - ); - editor.assertProblems("tag: latest|'repository' is required"); - - editor = harness.newEditor( - "resources:\n" + - "- name: my-docker-image\n" + - " type: docker-image\n" + - " source:\n" + - " repository: kdvolder/sts4-build-env\n" + - " tag: latest\n" + - " username: kdvolder\n" + - " password: {{docker_password}}\n" + - " aws_access_key_id: {{aws_access_key}}\n" + - " aws_secret_access_key: {{aws_secret_key}}\n" + - " insecure_registries: no-list\n" + - " registry_mirror: https://my-docker-registry.com\n" + - " ca_certs:\n" + - " - domain: example.com:443\n" + - " cert: |\n" + - " -----BEGIN CERTIFICATE-----\n" + - " ...\n" + - " -----END CERTIFICATE-----\n" + - " bogus_ca_certs_prop: bad\n" + - " client_certs:\n" + - " - domain: example.com:443\n" + - " cert: |\n" + - " -----BEGIN CERTIFICATE-----\n" + - " ...\n" + - " -----END CERTIFICATE-----\n" + - " key: |\n" + - " -----BEGIN RSA PRIVATE KEY-----\n" + - " ...\n" + - " -----END RSA PRIVATE KEY-----\n" + - " bogus_client_cert_prop: bad\n" - ); editor.assertHoverContains("repository", "The name of the repository"); editor.assertHoverContains("tag", "The tag to track"); editor.assertHoverContains("username", "username to authenticate"); @@ -1230,6 +1185,34 @@ public class PipelineYamlEditorTest { editor.assertHoverContains("client_certs", "Each entry specifies the x509 certificate and key"); } + @Test public void dockerImageResourceGetParamsReconcileAndHovers() throws Exception { + Editor editor; + + editor = harness.newEditor( + "resources:\n" + + "- name: my-docker-image\n" + + " type: docker-image\n" + + "jobs:\n" + + "- name: a-job\n" + + " plan:\n" + + " - get: my-docker-image\n" + + " params:\n" + + " save: save-it\n" + + " rootfs: tar-it\n" + + " skip_download: skip-it\n" + ); + + editor.assertProblems( + "save-it|'boolean'", + "tar-it|'boolean'", + "skip-it|'boolean'" + ); + + editor.assertHoverContains("save", "docker save"); + editor.assertHoverContains("rootfs", "a `.tar` file of the image"); + editor.assertHoverContains("skip_download", "Skip `docker pull`"); + } + ////////////////////////////////////////////////////////////////////////////// private void assertContextualCompletions(String conText, String textBefore, String... textAfter) throws Exception {