feat(ci): stabilize infrastructure and deployment pipeline
This commit is contained in:
44
Jenkinsfile
vendored
Normal file
44
Jenkinsfile
vendored
Normal file
@@ -0,0 +1,44 @@
|
||||
pipeline {
|
||||
agent any
|
||||
environment {
|
||||
DOCKER_HOST = "unix:///var/run/docker.sock"
|
||||
}
|
||||
stages {
|
||||
stage('Build') {
|
||||
steps {
|
||||
// Get Caddy version
|
||||
sh "cp .env.dist .env"
|
||||
// Push portfolio version
|
||||
sh "echo '\nPORTFOLIO_VERSION=${env.BRANCH_NAME}-${env.BUILD_NUMBER}' >> .env"
|
||||
|
||||
echo "Building new portfolio version..."
|
||||
sh "docker compose build"
|
||||
}
|
||||
}
|
||||
stage('Deploy') {
|
||||
// Deploy only master branch
|
||||
when {
|
||||
branch 'master'
|
||||
}
|
||||
steps {
|
||||
echo "Deploy new portfolio version..."
|
||||
sh "docker compose up -d"
|
||||
|
||||
// Update caddy-reverse-proxy cache
|
||||
sh "docker exec caddy-reverse-proxy caddy reload --config /etc/caddy/Caddyfile"
|
||||
|
||||
// Keep updated docker-compose.yml and Caddyfile for safety
|
||||
sh "cp docker-compose.yml /backup-portfolio/docker-compose.yml"
|
||||
sh "docker cp portfolio:/etc/caddy/Caddyfile /backup-portfolio/Caddyfile"
|
||||
}
|
||||
}
|
||||
}
|
||||
post {
|
||||
always {
|
||||
echo "Clean unused image..."
|
||||
sh "docker image prune -f"
|
||||
}
|
||||
success { echo "Success !" }
|
||||
failure { echo "Failed." }
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user