diff --git a/dockerfiles/services/sslproxy/Jenkinsfile b/dockerfiles/services/sslproxy/Jenkinsfile index 22b5ea8..832b31d 100644 --- a/dockerfiles/services/sslproxy/Jenkinsfile +++ b/dockerfiles/services/sslproxy/Jenkinsfile @@ -1,47 +1,73 @@ -node('docker') { - def dockerfile = 'Dockerfile' - def app_name = 'sslproxy' - def app_port = '80' - def workdir = 'dockerfiles/services/sslproxy' - def DOCKER_HOST = 'dkhost:2376' - - stage('prepare') { -// git credentialsId: 'f1f58215-c789-44a2-9b72-50e4425cb061', url: 'ssh://git@git.xai-corp.net:10022/xai-corp.net/provisioning.git' - checkout scm - sh 'ls' +pipeline { + environment { + DOCKERFILE = 'Dockerfile' + APP_NAME = 'sslproxy' + APP_PORT = '80' + WORKDIR = 'dockerfiles/services/sslproxy' + DOCKER_HOST = 'dkhost:2376' } - stage('build') { - dir(workdir) { - 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() - } - - // sh "docker-compose -f docker-compose-prod.yml pull" - } + agent { label 'docker' } + options { + buildDiscarder(logRotator(numToKeepStr: '2')) + } + triggers { + cron('@weekly') } - stage('deploy') { - dir(workdir) { - try { - sh """ - export DOCKER_HOST=${DOCKER_HOST} - docker stack deploy --with-registry-auth --prune -c docker-compose-prod.yml sslproxy - docker service update -q sslproxy_app - """ - sleep 10 - sh "curl -If https://git.xai-corp.net/" - } catch (err) { - echo "Caught: ${err}" - currentBuild.result = 'FAILURE' - sh 'docker service update --rollback sslproxy_app' + 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('smoke tests') { - dir(workdir) { + stage('build') { + steps { + dir(WORKDIR) { + 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) { + 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) { + sh """ + export DOCKER_HOST=${DOCKER_HOST} + docker service rollback sslproxy_app + """ + } + } + } + } + } }