summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorZuul <zuul@review.openstack.org>2018-11-14 23:52:09 +0000
committerGerrit Code Review <review@openstack.org>2018-11-14 23:52:09 +0000
commit3958ed592375a91d7d4a6028b1a773d94c897ba6 (patch)
tree3e9137c3303dbfcc296cc931e5e6531506fa691d
parent8c99e569b50cb33286750d8a4919dba6bd6b267d (diff)
parentb7ee539bc53f7519bb310981c19b2a6a291fcf36 (diff)
downloadpython-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.py41
-rw-r--r--tests/builders/fixtures/docker-pull-image-full.xml12
-rw-r--r--tests/builders/fixtures/docker-pull-image-full.yaml5
-rw-r--r--tests/builders/fixtures/docker-pull-image-minimal.xml12
-rw-r--r--tests/builders/fixtures/docker-pull-image-minimal.yaml2
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