Files
WorldCraft_Discord_Bot/Jenkinsfile
2020-11-14 12:25:17 +01:00

42 lines
1.2 KiB
Groovy
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
pipeline {
agent any
stages {
stage('Build Docker Image') {
steps {
sh 'docker build -t worldcraftdiscordbot:latest .'
sh "docker tag worldcraftdiscordbot:latest worldcraftdiscordbot:v${env.BUILD_ID}"
}
}
stage('Publish') {
steps {
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'''
}
}
}
}