Update bot with downtime zero

This commit is contained in:
victormylle
2020-11-14 12:25:17 +01:00
parent 79bda0f1fd
commit 09e9c9e026

28
Jenkinsfile vendored
View File

@@ -10,9 +10,31 @@ pipeline {
stage('Publish') {
steps {
sh '"docker stack rm worldcraftdiscordbot"'
sh '"docker stack deploy worldcraftdiscordbot"'
sh '"docker service update worldcraftdiscordbot --image worldcraftdiscordbot:v${env.BUILD_ID}"'
sh '''if [ ! "$(docker ps -q -f name=worldcraftdiscordbot_1)" ]; then
    if [ "$(docker ps -aq -f status=exited -f name=worldcraftdiscordbot_1)" ]; then
        # cleanup
        docker rm worldcraftdiscordbot_1
    fi
    # run your container
    NEW=worldcraftdiscordbot_1
    OLD=worldcraftdiscordbot_2
    docker run -d --name worldcraftdiscordbot_1 --restart unless-stopped worldcraftdiscordbot:v${env.BUILD_ID}
else [ ! "$(docker ps -q -f name=worldcraftdiscordbot_2)" ]; then
    if [ "$(docker ps -aq -f status=exited -f name=worldcraftdiscordbot_2)" ]; then
        # cleanup
        docker rm worldcraftdiscordbot_2
    fi
    NEW=worldcraftdiscordbot_2
    OLD=worldcraftdiscordbot_1
    # run your container
    docker run -d --name $NEW --restart unless-stopped worldcraftdiscordbot:v${env.BUILD_ID}
fi
# remove old container after 3 seconds
if [ "$(docker ps -a -f name=$OLD)" ]; then
    sleep 3s
    docker stop $OLD
fi'''
}
}