Added comments

This commit is contained in:
2026-04-17 11:09:46 +02:00
parent f3f4d30071
commit 39d5344d82
11 changed files with 272 additions and 99 deletions

View File

@@ -1,55 +1,82 @@
// You need a valid credentials for Docker Hub
// You need https://plugins.jenkins.io/docker-workflow/ on your jenkins instance
// Necessites credencials vàlides per a Docker Hub
// Necessites https://plugins.jenkins.io/docker-workflow/ instal·lat a la teva instància Jenkins
pipeline {
// Defineix l'agent on s'executarà el pipeline
agent {
node {
label 'docker' //Agent needs to have Docker Engine installed
label 'docker' // L'agent ha de tenir Docker Engine instal·lat
}
}
// Defineix variables d'entorn disponibles per a tot el pipeline
environment {
// Usuari de Docker Hub
DOCKER_HUB_USER='guillemhs'
// Nom de la imatge Docker amb format: usuari/nom-imatge
IMAGE_NAME="${DOCKER_HUB_USER}/jenkins-debian-13-agent"
// ID de les credencials de Docker Hub guardades a Jenkins
REGISTRY_CRED_ID='docker-credentials'
// Executem una comanda shell per obtenir la data actual i la guardem com a variable
// Executem una comanda shell per obtenir la data actual (format YYYY.MM.DD)
// returnStdout: true retorna l'output de la comanda
// trim() elimina espais en blanc
DATA = sh(returnStdout: true, script: 'date +%Y.%m.%d').trim()
// Crea un tag combinant la data i el número de build (ex: 2026.04.17.5)
TAG="${DATA}.${env.BUILD_NUMBER}"
}
// Defineix les etapes principals del pipeline
stages {
// Etapa 1: Descarrega el codi del repositori
stage('Checkout') {
steps {
// Get some code from a GIT repository
// Clona el codi del repositori Git
checkout scm
}
}
// Etapa 2: Construeix la imatge Docker
stage('Docker Build') {
steps {
script{
echo "Build image ..."
// Construeix la imatge Docker usant el Dockerfile especificat
// -f DockerfileAgentDebian: Especifica el Dockerfile per a Debian
// .: Usa el directori actual com a context de construcció
docker.build("${IMAGE_NAME}:${TAG}","-f DockerfileAgentDebian .")
}
}
}
// Etapa 3: Publica la imatge a Docker Hub
stage('Docker Push')
{
steps{
script{
// Autenticació amb Docker Hub usant les credencials guardades
docker.withRegistry('',REGISTRY_CRED_ID){
// Obté la referència de la imatge construïda
def app = docker.image("${IMAGE_NAME}:${TAG}")
echo "Pushing image to Docker Hub ..."
// Publica la imatge amb el tag de data i build number
app.push("${TAG}")
// Publica la imatge amb el tag 'latest' (versió més recent)
app.push("latest")
}
}
}
}
}
// Accions a executar sempre al final del pipeline
post{
always{
//cleanWs()
// cleanWs() comentat: Podria limpiar l'espai de treball si es descomentar
// Elimina la imatge Docker local amb el tag específic (|| true ignora errors)
sh "docker rmi ${IMAGE_NAME}:${TAG} || true"
// Elimina la imatge Docker local amb el tag 'latest'
sh "docker rmi ${IMAGE_NAME}:latest || true"
}
}