diff --git a/jjb/pipeline/imagebuilder.groovy b/jjb/pipeline/imagebuilder.groovy
new file mode 100644
index 0000000..b86bc22
--- /dev/null
+++ b/jjb/pipeline/imagebuilder.groovy
@@ -0,0 +1,79 @@
+/* imagebuilder pipeline */
+pipeline {
+
+  /* no label, executor is determined by JJB */
+  agent {
+    label "${params.executorNode}"
+  }
+  stages {
+
+    stage('repo') {
+      steps {
+        checkout(changelog: false, \
+          poll: false,
+          scm: [$class: 'RepoScm', \
+            manifestRepositoryUrl: "${params.manifestUrl}", \
+            manifestBranch: "${params.manifestBranch}", \
+            currentBranch: true, \
+            destinationDir: 'cord', \
+            forceSync: true,
+            resetFirst: true, \
+            quiet: true, \
+            jobs: 4, \
+            showAllChanges: true] \
+          )
+      }
+    }
+
+    stage('imagebuilder'){
+      steps {
+        sh '''
+           #!/usr/bin/env bash
+
+           mkdir "$WORKSPACE/image_logs"
+           ib_args=""
+
+           if [[ ${params.force} == 'true' ]]; then
+             ib_args+="--force "
+           fi
+
+           if [[ ${params.build} == 'true' ]]; then
+             ib_args+="--build "
+           fi
+
+           pushd cord/automation-tools/developer
+           ./imagebuilder.py -vv \${ib_args} -c docker_images.yml \
+                             -a "$WORKSPACE/ib_actions.yml" \
+                             -l "$WORKSPACE/ib_logs" \
+                             -g "$WORKSPACE/ib_graph.dot"
+           popd
+           '''
+      }
+    }
+
+    stage('push'){
+       steps {
+         script {
+          def ib_actions = readYaml( file:"$WORKSPACE/ib_actions.yml" )
+
+          withDockerRegistry([credentialsId: 'docker-artifact-push-credentials']) {
+            for(image in ib_actions.ib_built){
+              for(tag in image.tags){
+                push_tag = image.base + ":" + tag
+                echo "Pushing image: " + push_tag
+                docker.image(push_tag).push()
+              }
+            }
+          }
+        }
+      }
+    }
+  }
+
+  post {
+    always {
+      archiveArtifacts artifacts: 'ib_actions.yml, ib_graph.dot, ib_logs/*', fingerprint: true
+      deleteDir()
+    }
+  }
+}
