alpine/Jenkinsfile

80 lines
3.4 KiB
Text
Raw Normal View History

2020-12-17 23:25:26 +00:00
version = "3.12.3"
2019-10-18 14:06:31 +00:00
project = "alpine"
repo = "zknt"
registry = "reg.zknt.org"
2019-12-19 16:33:59 +00:00
registry_credentials = "6ff44976-23cd-4cc2-902c-de8c340e65e5"
2020-05-31 14:29:11 +00:00
timeStamp = Calendar.getInstance().getTime().format('YYYY-MM-dd',TimeZone.getTimeZone('UTC'))
2019-10-18 14:06:31 +00:00
2018-11-26 17:59:18 +00:00
pipeline {
agent any
2020-10-28 15:46:30 +00:00
stages {
stage('Build image') {
steps {
withDockerRegistry([ credentialsId: registry_credentials, url: "https://"+registry ]) {
script {
def customImage = docker.build(registry+'/'+repo+'/'+project, "--pull --build-arg VERSION=$version --build-arg DATE=$timeStamp .")
customImage.push(version)
customImage.push("latest")
customImage.push("3.12")
def io_registry_credentials = "3deeee3d-6fce-4430-98dd-9b4db56f43f7"
withDockerRegistry([ credentialsId: io_registry_credentials ]) {
def io_registry_image = repo + '/' + project + ':' + version
sh "docker image tag " + registry+'/'+repo+'/'+project+':'+version + ' ' + io_registry_image
sh "docker push " + io_registry_image
2020-10-28 16:46:21 +00:00
sh "docker image tag " + registry+'/'+repo+'/'+project+':'+version + ' ' + io_registry_image.split(/\:/)[0] + ":latest"
sh "docker push " + io_registry_image.split(/\:/)[0] + ":latest"
sh "docker image tag " + registry+'/'+repo+'/'+project+':'+version + ' ' + io_registry_image.split(/\:/)[0] + ":3.12"
sh "docker push " + io_registry_image.split(/\:/)[0] + ":3.12"
2020-10-28 15:46:30 +00:00
}
2019-10-22 08:22:16 +00:00
2020-10-28 15:46:30 +00:00
def quay_credentials= "18fb6f7e-c6bc-4d06-9bf9-08c2af6bfc1a"
withDockerRegistry([ credentialsId: quay_credentials, url: "https://quay.io" ]) {
def quay_image = 'quay.io/' + repo + '/' + project + ':' + version
2020-10-28 16:49:09 +00:00
sh "docker image tag " + registry+'/'+repo+'/'+project+':'+version + ' ' + quay_image
2020-10-28 15:46:30 +00:00
sh "docker push " + quay_image
2020-10-28 16:49:09 +00:00
sh "docker image tag " + registry+'/'+repo+'/'+project+':'+version + ' ' + quay_image.split(/\:/)[0] + ":latest"
2020-10-28 16:51:30 +00:00
sh "docker push " + quay_image.split(/\:/)[0] + ":latest"
2020-10-28 16:49:09 +00:00
sh "docker image tag " + registry+'/'+repo+'/'+project+':'+version + ' ' + quay_image.split(/\:/)[0] + ":3.12"
2020-10-28 16:51:30 +00:00
sh "docker push " + quay_image.split(/\:/)[0] + ":3.12"
2020-10-28 15:46:30 +00:00
}
2019-10-22 08:22:16 +00:00
}
2018-11-26 17:59:18 +00:00
}
}
}
}
2019-10-18 14:06:31 +00:00
post {
always {
2020-11-04 00:55:56 +00:00
sh """docker container prune -f"""
2020-10-28 16:59:20 +00:00
sh """docker image prune -f"""
2020-10-23 17:49:27 +00:00
sh """docker rmi -f \$(docker images -q $registry/$repo/$project:$version)"""
2020-10-29 14:58:19 +00:00
sh """for image in \$(grep FROM Dockerfile | cut -d ' ' -f 2 | grep -vi -e SCRATCH -e bootstrapped | uniq); do docker rmi -f \$(docker images -q \${image}); done"""
2020-10-28 15:46:30 +00:00
emailext body: 'build finished', subject: '[jenkins] docker '+project+'('+version+'): ' + currentBuild.result, to: 'cg@zknt.org', from: 'sysadm@zknt.org', attachLog: true
2019-10-18 14:06:31 +00:00
}
}
2020-10-23 17:49:27 +00:00
options {
buildDiscarder(BuildHistoryManager([
[
conditions: [
BuildResult(matchFailure: true)
],
matchAtMost: 4,
continueAfterMatch: false
],
[
conditions: [
BuildResult(matchSuccess: true)
],
matchAtMost: 4,
continueAfterMatch: false
],
[
conditions: [
BuildResult(matchSuccess: true, matchFailure: true)
],
actions: [DeleteBuild()]
]
]))
}
2018-11-26 17:59:18 +00:00
}