| /* 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/ib_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() |
| } |
| failure { |
| emailext ( |
| subject: "$PROJECT_NAME - Build # $BUILD_NUMBER - $BUILD_STATUS", |
| body: "Check console output at $BUILD_URL to view the results.", |
| to: "${params.failureEmail}" |
| ) |
| } |
| } |
| } |