blob: 1d5a950fd2f2c4da7bf1b8b4159a6c8135dc3d69 [file] [log] [blame]
/* 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}"
)
}
}
}