forked from CatalogueRevamping/docker-ckan
85 lines
2.5 KiB
Groovy
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}"
|
|
}
|
|
}
|
|
|
|
}
|