dhgfhdf
This commit is contained in:
@@ -1,53 +1,50 @@
|
|||||||
pipeline {
|
pipeline {
|
||||||
|
agent any
|
||||||
|
|
||||||
agent any
|
environment {
|
||||||
|
ASP_ENVIRONMENT = 'Production'
|
||||||
|
}
|
||||||
|
|
||||||
environment {
|
stages {
|
||||||
DOCKER_REGISTRY_URL = credentials('docker-registry-url')
|
stage ('Unit Tests') {
|
||||||
//DOCKER_REGISTRY_USER = credentials('docker-registry-user')
|
|
||||||
//DOCKER_REGISTRY_PASSWORD = credentials('docker-registry-password')
|
|
||||||
|
|
||||||
ASP_ENVIRONMENT = 'Production'
|
|
||||||
}
|
|
||||||
|
|
||||||
stages {
|
|
||||||
|
|
||||||
stage ('Unit Tests') {
|
|
||||||
steps {
|
steps {
|
||||||
script {
|
script {
|
||||||
sh 'dotnet test ./CleanArchitecture/CleanArchitecture.Application.UnitTests'
|
sh 'dotnet test ./CleanArchitecture/CleanArchitecture.Application.UnitTests'
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
stage ('Checkout') {
|
|
||||||
steps {
|
|
||||||
checkout scm
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
stage ('Checkout') {
|
||||||
|
steps {
|
||||||
|
checkout scm
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
stage ('Push to Docker Registry') {
|
stage ('Push to Docker Registry') {
|
||||||
steps {
|
steps {
|
||||||
script {
|
script {
|
||||||
def version = "0.0.${env.BUILD_NUMBER}"
|
def version = "0.0.${env.BUILD_NUMBER}"
|
||||||
def imageName = "clean-architecture-backend:${version}"
|
def imageName = "clean-architecture-backend:${version}"
|
||||||
def fullImageName = "${DOCKER_REGISTRY_URL}/${imageName}"
|
// Aqu<71> usamos las credenciales directamente en el paso withCredentials m<>s abajo
|
||||||
|
|
||||||
// Construir la imagen
|
// Construir la imagen localmente
|
||||||
sh "docker build --build-arg ENVIRONMENT=${ASP_ENVIRONMENT} -t ${imageName} ./CleanArchitecture/"
|
sh "docker build --build-arg ENVIRONMENT=${ASP_ENVIRONMENT} -t ${imageName} ./CleanArchitecture/"
|
||||||
|
|
||||||
// Etiqueta la imagen para Docker Registry y la sube
|
// Iniciar sesi<73>n en el Docker Registry y subir la imagen
|
||||||
docker.withRegistry('https://dockerregistry.alexdev.es', 'dockerregistryalexdev') {
|
withCredentials([string(credentialsId: 'docker-registry-url', variable: 'DOCKER_REGISTRY_URL'),
|
||||||
sh "docker tag ${imageName} ${fullImageName}"
|
usernamePassword(credentialsId: 'docker-registry-creds', usernameVariable: 'DOCKER_REGISTRY_USER', passwordVariable: 'DOCKER_REGISTRY_PASSWORD')]) {
|
||||||
sh "docker push ${fullImageName}"
|
def fullImageName = "${DOCKER_REGISTRY_URL}/${imageName}"
|
||||||
|
docker.withRegistry("${DOCKER_REGISTRY_URL}", 'docker-registry-creds') {
|
||||||
|
sh "docker tag ${imageName} ${fullImageName}"
|
||||||
|
sh "docker push ${fullImageName}"
|
||||||
|
}
|
||||||
|
// Guardamos el nombre completo de la imagen para usarlo en etapas posteriores
|
||||||
|
env.FULL_IMAGE_NAME = fullImageName
|
||||||
}
|
}
|
||||||
|
|
||||||
// Guardar el nombre completo de la imagen para su uso en etapas posteriores
|
|
||||||
env.FULL_IMAGE_NAME = fullImageName
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
stage ('Clean Local Docker Image') {
|
stage ('Clean Local Docker Image') {
|
||||||
steps {
|
steps {
|
||||||
script {
|
script {
|
||||||
@@ -64,23 +61,11 @@ pipeline {
|
|||||||
def deleteUntilVersion = currentVersion - 3
|
def deleteUntilVersion = currentVersion - 3
|
||||||
for (int i = 1; i <= deleteUntilVersion; i++) {
|
for (int i = 1; i <= deleteUntilVersion; i++) {
|
||||||
def tag = "0.0.${i}"
|
def tag = "0.0.${i}"
|
||||||
|
// Este proceso requiere interacci<63>n con la API del Docker Registry,
|
||||||
// Obtener el Docker-Content-Digest
|
// aseg<EFBFBD>rate de tener el proceso de obtenci<63>n de digest y eliminaci<63>n correctamente configurado.
|
||||||
def digest = sh(script: "curl -s -H \"Accept: application/vnd.docker.distribution.manifest.v2+json\" -X GET -u ${DOCKER_REGISTRY_USER}:${DOCKER_REGISTRY_PASSWORD} https://${DOCKER_REGISTRY_URL}/v2/clean-architecture-backend/manifests/${tag} | jq -r '.config.digest'", returnStdout: true).trim()
|
|
||||||
|
|
||||||
// Eliminar la imagen usando el Docker-Content-Digest obtenido
|
|
||||||
sh "curl -s -X DELETE -u ${DOCKER_REGISTRY_USER}:${DOCKER_REGISTRY_PASSWORD} https://${DOCKER_REGISTRY_URL}/v2/clean-architecture-backend/manifests/${digest}"
|
|
||||||
|
|
||||||
echo "Eliminada la versi<73>n ${tag} con digest ${digest}"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
} //stages
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
} //stages
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user