79 lines
2.5 KiB
Groovy
79 lines
2.5 KiB
Groovy
pipeline {
|
|
environment {
|
|
DOCKERFILE = 'Dockerfile'
|
|
APP_NAME = 'sslproxy'
|
|
APP_PORT = '80'
|
|
WORKDIR = 'dockerfiles/services/sslproxy'
|
|
DOCKER_HOST = 'dkhost:2376'
|
|
}
|
|
|
|
agent { label 'docker' }
|
|
options {
|
|
buildDiscarder(logRotator(numToKeepStr: '2'))
|
|
}
|
|
triggers {
|
|
cron('@weekly')
|
|
}
|
|
|
|
stages {
|
|
stage('prepare') {
|
|
steps {
|
|
checkout scm
|
|
// git credentialsId: 'f1f58215-c789-44a2-9b72-50e4425cb061', url: 'ssh://git@git.xai-corp.net:10022/xai-corp.net/provisioning.git'
|
|
|
|
sh 'ls'
|
|
}
|
|
}
|
|
|
|
stage('build') {
|
|
steps {
|
|
dir(WORKDIR) {
|
|
sh "xai build"
|
|
// script {
|
|
// docker.withRegistry('http://dkregistry.xai-corp.net:5000', 'b11d7f1a-81ac-4daf-8842-56afc0d2370e') {
|
|
// def customImage = docker.build("dkregistry.xai-corp.net:5000/sslproxy:2.1", "-f ${DOCKERFILE} .")
|
|
// customImage.push()
|
|
// }
|
|
// }
|
|
}
|
|
}
|
|
}
|
|
|
|
stage('deploy') {
|
|
steps {
|
|
dir(WORKDIR) {
|
|
withDockerRegistry(credentialsId: 'b11d7f1a-81ac-4daf-8842-56afc0d2370e', url: 'http://dkregistry.xai-corp.net:5000') {
|
|
sh """
|
|
export DOCKER_HOST=${DOCKER_HOST}
|
|
docker stack deploy --with-registry-auth --prune -c docker-compose-prod.yml sslproxy
|
|
(cd ../ && chmod +x ./scaleout.sh && ./scaleout.sh sslproxy_app 30)
|
|
"""
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
stage('smoke tests') {
|
|
steps {
|
|
dir(WORKDIR) {
|
|
sleep 10
|
|
sh "curl -If https://git.xai-corp.net/"
|
|
}
|
|
}
|
|
post {
|
|
failure {
|
|
dir(WORKDIR) {
|
|
withDockerRegistry(credentialsId: 'b11d7f1a-81ac-4daf-8842-56afc0d2370e', url: 'http://dkregistry.xai-corp.net:5000') {
|
|
sh """
|
|
export DOCKER_HOST=${DOCKER_HOST}
|
|
docker service rollback sslproxy_app
|
|
"""
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
}
|
|
}
|