diff --git a/hack/jenkins/job-configs/global.yaml b/hack/jenkins/job-configs/global.yaml
index cda176e487e..179f50213a0 100644
--- a/hack/jenkins/job-configs/global.yaml
+++ b/hack/jenkins/job-configs/global.yaml
@@ -85,6 +85,43 @@
100.0
+# Implements Docker Build and Publish Plugin
+# https://wiki.jenkins-ci.org/display/JENKINS/CloudBees+Docker+Build+and+Publish+plugin
+# From the docs: 'This plugin provides the ability to build projects with a Dockerfile, and publish the resultant
+# tagged image (repo) to the docker registry.'
+#
+# repoName: docker registry repo name to publish the image
+# dockerfilePath: workspace relative path to the 'Dockerfile' to build
+# tag: Tag to apply to the built image
+# credentialsId: Jenkins 'Username with password' credentials ID (hex string) to authenticate to docker registry.
+# Found under http:/credentials -> "Advanced"
+- builder:
+ name: docker-build-publish
+ builders:
+ - raw:
+ xml: |
+
+
+
+ {credentialsId}
+
+ {repoName}
+ true
+ true
+ {dockerfilePath}
+ false
+ false
+ {tag}
+ false
+ true
+ true
+
+ - shell: |
+ #!/bin/bash
+ set -e
+ set -x
+ docker rmi -f {repoName}:{tag}
+
# Default email recipients are set in Jenkins global config
- defaults:
name: global
diff --git a/hack/jenkins/job-configs/node-e2e.yaml b/hack/jenkins/job-configs/node-e2e.yaml
new file mode 100644
index 00000000000..0e9621f3963
--- /dev/null
+++ b/hack/jenkins/job-configs/node-e2e.yaml
@@ -0,0 +1,172 @@
+# Job template to checkout source from github to $WORKSPACE/go/src/{gitbasedir} and build + publish a docker image.
+# - Tags the docker image with 'canary'.
+# - Job is executed daily and when changes are found polling github (every 5m).
+# - Console output is published to google cloud storage.
+#
+# gitproject: name of the project - for display purposes only
+# owner: owner to be notified for job failures. test results are published to owner email
+# repoName: github repo to checkout e.g. kubernetes/kubernetes or google/cadvisor. Must match the docker image repo name where the image will be published.
+# gitbasedir: directory under $WORKSPACE/go/src to checkout source repo to - e.g. k8s.io/kubernetes or github.com/google/cadvisor
+# dockerfilePath: workspace relative path to the 'Dockerfile' to build
+- job-template:
+ name: '{gitproject}-dockercanarybuild-ci'
+ description: 'Build and push {gitproject} docker image.
Test Owner: {owner}.'
+ node: 'node'
+ logrotate:
+ numToKeep: 200
+ node: node
+ builders:
+ - docker-build-publish:
+ repoName: '{repoName}'
+ dockerfilePath: 'go/src/{gitbasedir}/{dockerfilePath}'
+ tag: 'canary'
+ credentialsId: '1f361efb-5b85-4f61-91a7-4ec7fb2a5c23'
+ publishers:
+ - claim-build
+ - gcs-uploader
+ - log-parser
+ - email-ext:
+ recipients: '{owner}'
+ scm:
+ - git:
+ url: 'https://github.com/{repoName}'
+ browser: githubweb
+ browser-url: 'https://github.com/{repoName}'
+ branches:
+ - 'master'
+ skip-tag: true
+ basedir: 'go/src/{gitbasedir}'
+ triggers:
+ - pollscm:
+ cron: 'H/5 * * * *'
+ - timed: '@daily'
+ wrappers:
+ - ansicolor:
+ colormap: xterm
+ - timeout:
+ timeout: 30
+ fail: true
+ - timestamps
+
+# Job template to checkout source from github to $WORKSPACE/go/src/{gitbasedir}, setup go environment variables, and execute a
+# shell script.
+# - Job is executed daily and when changes are found polling github (every 5m).
+# - Console output is published to google cloud storage.
+#
+# gitproject: name of the project - for display purposes only
+# owner: owner to be notified for job failures. test results are published to owner email
+# repoName: github repo to checkout e.g. kubernetes/kubernetes or google/cadvisor
+# gitbasedir: directory under $WORKSPACE/go/src to checkout source repo to - e.g. k8s.io/kubernetes or github.com/google/cadvisor
+# shell: shell to execute from workspace
+- job-template:
+ name: '{gitproject}-gce-e2e-ci'
+ description: '{gitproject} continuous e2e tests.
Test Owner: {owner}.'
+ node: 'node'
+ logrotate:
+ numToKeep: 200
+ node: node
+ builders:
+ - shell: '{shell}'
+ publishers:
+ - claim-build
+ - gcs-uploader
+ - log-parser
+ - email-ext:
+ recipients: '{owner}'
+ scm:
+ - git:
+ url: 'https://github.com/{repoName}'
+ browser: githubweb
+ browser-url: 'https://github.com/{repoName}'
+ branches:
+ - 'master'
+ skip-tag: true
+ basedir: 'go/src/{gitbasedir}'
+ triggers:
+ - pollscm:
+ cron: 'H/5 * * * *'
+ - timed: '@daily'
+ wrappers:
+ - ansicolor:
+ colormap: xterm
+ - timeout:
+ timeout: 30
+ fail: true
+ - timestamps
+ - inject:
+ properties-content: |
+ GOROOT=/usr/local/go
+ GOPATH=$WORKSPACE/go
+ PATH=$PATH:$GOROOT/bin:$WORKSPACE/go/bin
+
+- project:
+ name: node-docker-canary-build
+ repoName: 'google/cadvisor'
+ gitproject:
+ - 'cadvisor':
+ repoName: 'google/cadvisor'
+ gitbasedir: 'github.com/google/cadvisor'
+ dockerfilePath: 'deploy/canary/Dockerfile'
+ owner: 'vishnuk@google.com'
+ - 'heapster':
+ repoName: 'kubernetes/heapster'
+ gitbasedir: 'k8s.io/heapster'
+ dockerfilePath: 'deploy/docker/canary/Dockerfile'
+ owner: 'pszczesniak@google.com'
+ jobs:
+ - '{gitproject}-dockercanarybuild-ci'
+
+- project:
+ name: node-gce-e2e
+ repoName: 'google/cadvisor'
+ gitproject:
+ - 'cadvisor':
+ repoName: 'google/cadvisor'
+ gitbasedir: 'github.com/google/cadvisor'
+ owner: 'vishnuk@google.com'
+ shell: |
+ #!/bin/bash
+ set -e
+ set -x
+ cd go/src/github.com/google/cadvisor
+
+ go get -u github.com/tools/godep
+
+ ./build/presubmit.sh
+ godep go build -tags test github.com/google/cadvisor/integration/runner
+ ./runner --logtostderr --test-retry-count=8 --test-retry-whitelist=integration/runner/retrywhitelist.txt \
+ --ssh-options "-i /home/jenkins/.ssh/google_compute_engine -o UserKnownHostsFile=/dev/null -o IdentitiesOnly=yes -o CheckHostIP=no -o StrictHostKeyChecking=no" \
+ e2e-cadvisor-ubuntu-trusty \
+ e2e-cadvisor-coreos-beta \
+ e2e-cadvisor-container-vm-v20151215 \
+ e2e-cadvisor-container-vm-v20160127 \
+ e2e-cadvisor-rhel-7
+ - 'heapster':
+ repoName: 'kubernetes/heapster'
+ gitbasedir: 'k8s.io/heapster'
+ owner: 'pszczesniak@google.com'
+ shell: |
+ #!/bin/bash
+ set -e
+ set -x
+ cd go/src/k8s.io/heapster
+
+ make test-unit test-integration
+ - 'kubelet':
+ repoName: 'kubernetes/kubernetes'
+ gitbasedir: 'k8s.io/kubernetes'
+ owner: 'pwittroc@google.com'
+ shell: |
+ #!/bin/bash
+ set -e
+ set -x
+ cd go/src/k8s.io/kubernetes
+
+ go get -u github.com/tools/godep
+ go get -u github.com/onsi/ginkgo/ginkgo
+ go get -u github.com/onsi/gomega
+
+ godep go build test/e2e_node/environment/conformance.go
+ godep go run test/e2e_node/runner/run_e2e.go --zone us-central1-f --hosts e2e-node-container-vm-v20151215,e2e-node-coreos-beta.c.kubernetes-jenkins.internal,e2e-node-ubuntu-trusty,e2e-node-ubuntu-trusty-docker1-10 --logtostderr -v 2
+ jobs:
+ - '{gitproject}-gce-e2e-ci'