docker-ckan/Jenkinsfile

85 lines
2.5 KiB
Groovy

pipeline {
agent {
label 'agent-docker-harbor'
}
environment {
projectname = "d4science-ckan"
hubname = "harbor.d4science.org"
registryUrl = "https://harbor.d4science.org"
registryCredential = 'harbor-d4science-ckan'
CKAN_REPO = "gitea@code-repo.d4science.org:D4ScienceCatalogue/docker-ckan.git"
//CATALOG RELATED VARIABLES
CKAN_THEME_BRANCH = "ckan-dev"
CKAN_IMAGE_BRANCH = "dev_ckan_2.10.5"
CKAN_IMAGE_TAG = "latest"
}
stages {
stage('Set IMAGE NAME') {
steps {
script {
env.CKAN_IMAGE_NAME = "${CKAN_IMAGE_BRANCH}-${env.CKAN_THEME_BRANCH}"
echo "IMAGE NAME = ${env.CKAN_IMAGE_NAME}"
}
}
}
stage('Build Docker Image') {
steps {
script {
sh """
docker build -t $hubname/$projectname/${env.CKAN_IMAGE_NAME}:${env.CKAN_IMAGE_TAG} ./ckan --build-arg CACHEBUST=\$(date +%s) --build-arg THEME_BRANCH=${env.CKAN_THEME_NAME}
"""
}
}
}
stage('Login Harbor') {
steps{
script {
withCredentials([usernamePassword(credentialsId: registryCredential, usernameVariable: 'HARBOR_USER', passwordVariable: 'HARBOR_PASS')]) {
sh 'docker login $registryUrl -u $HARBOR_USER -p $HARBOR_PASS'
}
}
}
}
stage('Push Image') {
steps{
script {
sh "docker push $hubname/$projectname/${env.CKAN_IMAGE_NAME}:${env.CKAN_IMAGE_TAG}"
}
}
}
}
// post-build actions
post {
success {
echo 'The docker pipeline worked!'
slackSend channel: '#notifications_jenkins_prod',
color: '#36a64f',
message: "SUCCESS: *${env.JOB_NAME}* build #${env.BUILD_NUMBER} completed successfully. URL: ${env.BUILD_URL}"
}
failure {
echo 'The docker pipeline has failed'
slackSend channel: '#notifications_jenkins_prod',
color: '#d90000',
message: "FAILURE: *${env.JOB_NAME}* build #${env.BUILD_NUMBER} failed. URL: ${env.BUILD_URL}"
}
aborted {
slackSend channel: '#notifications_jenkins_prod',
color: '#FFD700',
message: "ABORTED: *${env.JOB_NAME}* build #${env.BUILD_NUMBER} was aborted. URL: ${env.BUILD_URL}"
}
}
}