diff options
author | Zuul <zuul@review.openstack.org> | 2018-11-14 23:52:09 +0000 |
---|---|---|
committer | Gerrit Code Review <review@openstack.org> | 2018-11-14 23:52:09 +0000 |
commit | 3958ed592375a91d7d4a6028b1a773d94c897ba6 (patch) | |
tree | 3e9137c3303dbfcc296cc931e5e6531506fa691d | |
parent | 8c99e569b50cb33286750d8a4919dba6bd6b267d (diff) | |
parent | b7ee539bc53f7519bb310981c19b2a6a291fcf36 (diff) | |
download | python-jenkins-job-builder-3958ed592375a91d7d4a6028b1a773d94c897ba6.tar.gz python-jenkins-job-builder-3958ed592375a91d7d4a6028b1a773d94c897ba6.tar.xz python-jenkins-job-builder-3958ed592375a91d7d4a6028b1a773d94c897ba6.zip |
Merge "docker-pull-image: Pull Docker image from Docker Hub/Registry"
-rw-r--r-- | jenkins_jobs/modules/builders.py | 41 | ||||
-rw-r--r-- | tests/builders/fixtures/docker-pull-image-full.xml | 12 | ||||
-rw-r--r-- | tests/builders/fixtures/docker-pull-image-full.yaml | 5 | ||||
-rw-r--r-- | tests/builders/fixtures/docker-pull-image-minimal.xml | 12 | ||||
-rw-r--r-- | tests/builders/fixtures/docker-pull-image-minimal.yaml | 2 |
5 files changed, 72 insertions, 0 deletions
diff --git a/jenkins_jobs/modules/builders.py b/jenkins_jobs/modules/builders.py index 1cad4f5a..7e532ae4 100644 --- a/jenkins_jobs/modules/builders.py +++ b/jenkins_jobs/modules/builders.py @@ -4048,6 +4048,47 @@ def docker_build_publish(parse, xml_parent, data): registry, registry_data, mappings, fail_required=True) +def docker_pull_image(registry, xml_parent, data): + """yaml: docker-pull-image + Provides integration between Jenkins and Docker Hub, utilizing a + Docker Hub hook to trigger one (or more) Jenkins job(s). + Requires the Jenkins :jenkins-wiki:`CloudBees Docker Hub Notification + <CloudBees+Docker+Hub+Notification>`. + + :arg str image: Image ID on DockerHub (default '') + :arg str docker-registry-url: URL to the Docker registry + you are using (default '') + :arg str credentials-id: Registry credentials (default '') + + Minimal example: + + .. literalinclude:: + /../../tests/builders/fixtures/docker-pull-image-minimal.yaml + + Full example: + + .. literalinclude:: + /../../tests/builders/fixtures/docker-pull-image-full.yaml + """ + docker_pull_image = XML.SubElement( + xml_parent, 'org.jenkinsci.plugins.registry.' + 'notification.DockerPullImageBuilder') + docker_pull_image.set('plugin', 'dockerhub-notification') + registry = XML.SubElement(docker_pull_image, 'registry') + registry.set('plugin', 'docker-commons') + mapping = [ + ('image', 'image', ''), + ] + helpers.convert_mapping_to_xml( + docker_pull_image, data, mapping, fail_required=False) + registry_mapping = [ + ('docker-registry-url', 'url', ''), + ('credentials-id', 'credentialsId', ''), + ] + helpers.convert_mapping_to_xml( + registry, data, registry_mapping, fail_required=False) + + def build_name_setter(registry, xml_parent, data): """yaml: build-name-setter Define Build Name Setter options which allows your build name to be diff --git a/tests/builders/fixtures/docker-pull-image-full.xml b/tests/builders/fixtures/docker-pull-image-full.xml new file mode 100644 index 00000000..81f5d415 --- /dev/null +++ b/tests/builders/fixtures/docker-pull-image-full.xml @@ -0,0 +1,12 @@ +<?xml version="1.0" encoding="utf-8"?> +<project> + <builders> + <org.jenkinsci.plugins.registry.notification.DockerPullImageBuilder plugin="dockerhub-notification"> + <registry plugin="docker-commons"> + <url>https://index.docker.io/v1/</url> + <credentialsId>71e4f29c-162b-40d0-85d9-3ddfba2911a0</credentialsId> + </registry> + <image>test-image-id</image> + </org.jenkinsci.plugins.registry.notification.DockerPullImageBuilder> + </builders> +</project> diff --git a/tests/builders/fixtures/docker-pull-image-full.yaml b/tests/builders/fixtures/docker-pull-image-full.yaml new file mode 100644 index 00000000..653be383 --- /dev/null +++ b/tests/builders/fixtures/docker-pull-image-full.yaml @@ -0,0 +1,5 @@ +builders: + - docker-pull-image: + image: test-image-id + docker-registry-url: https://index.docker.io/v1/ + credentials-id: 71e4f29c-162b-40d0-85d9-3ddfba2911a0 diff --git a/tests/builders/fixtures/docker-pull-image-minimal.xml b/tests/builders/fixtures/docker-pull-image-minimal.xml new file mode 100644 index 00000000..0c379258 --- /dev/null +++ b/tests/builders/fixtures/docker-pull-image-minimal.xml @@ -0,0 +1,12 @@ +<?xml version="1.0" encoding="utf-8"?> +<project> + <builders> + <org.jenkinsci.plugins.registry.notification.DockerPullImageBuilder plugin="dockerhub-notification"> + <registry plugin="docker-commons"> + <url/> + <credentialsId/> + </registry> + <image/> + </org.jenkinsci.plugins.registry.notification.DockerPullImageBuilder> + </builders> +</project> diff --git a/tests/builders/fixtures/docker-pull-image-minimal.yaml b/tests/builders/fixtures/docker-pull-image-minimal.yaml new file mode 100644 index 00000000..c0db1d24 --- /dev/null +++ b/tests/builders/fixtures/docker-pull-image-minimal.yaml @@ -0,0 +1,2 @@ +builders: + - docker-pull-image |