From 464e6db82fb0c387e15e21f81094d84d552ae077 Mon Sep 17 00:00:00 2001 From: richard Date: Sun, 10 Feb 2019 10:43:38 -0500 Subject: [PATCH] make gitea/Jenkinsfile declarative --- dockerfiles/services/gitea/Jenkinsfile | 63 ++++++++++++++++---------- dockerfiles/services/scaleout.sh | 6 +++ 2 files changed, 46 insertions(+), 23 deletions(-) create mode 100644 dockerfiles/services/scaleout.sh diff --git a/dockerfiles/services/gitea/Jenkinsfile b/dockerfiles/services/gitea/Jenkinsfile index 5e4ea28..8012b90 100644 --- a/dockerfiles/services/gitea/Jenkinsfile +++ b/dockerfiles/services/gitea/Jenkinsfile @@ -1,30 +1,47 @@ -node('docker') { - def workdir = 'dockerfiles/services/gitea' - - stage('prepare') { - git credentialsId: 'f1f58215-c789-44a2-9b72-50e4425cb061', url: 'ssh://git@git.xai-corp.net:10022/xai-corp.net/provisioning.git' - sh 'ls' +pipeline { + agent { label 'docker' } + options { + buildDiscarder(logRotator(numToKeepStr: '2')) } - - stage('build') { - dir(workdir) { - sh "DOCKER_HOST=dkhost:2376 docker-compose -f docker-compose.yml pull" - } + triggers { + cron('@weekly') } - - stage('deploy') { - dir(workdir) { - sh """ - docker stack deploy --with-registry-auth --prune -c docker-compose.yml gitea - docker service update gitea_app - """ + stages { + stage('prepare') { + steps { + checkout scm + sh 'ls' + } } - } - stage('smoke tests') { - dir(workdir) { - sleep 60 - sh "curl -If http://dkhost:10080" + stage('build') { + steps { + dir(workdir) { + sh "DOCKER_HOST=${docker_host} docker-compose -f docker-compose.yml pull" + } + } } + + stage('deploy') { + steps { + dir(workdir) { + sh """ + export DOCKER_HOST=${docker_host} + docker stack deploy --with-registry-auth --prune -c docker-compose.yml gitea + ../scaleout.sh gitea_app 180 + """ + } + } + } + + stage('smoke tests') { + steps { + dir(workdir) { + sleep 60 + sh "curl -If http://dkhost:10080" + } + } + } + } } diff --git a/dockerfiles/services/scaleout.sh b/dockerfiles/services/scaleout.sh new file mode 100644 index 0000000..acaf09c --- /dev/null +++ b/dockerfiles/services/scaleout.sh @@ -0,0 +1,6 @@ +#!/usr/bin/env bash + +REPLICA_COUNT=`docker service inspect $1 | jq '.[0].Spec.Mode.Replicated.Replicas'` +./timeout.sh -t $2 docker service scale $1=$(($REPLICA_COUNT*2)) +./timeout.sh -t $2 docker service scale $1=$(($REPLICA_COUNT)) +docker service update -q $1