Approval pipeline
This commit is contained in:
53
014-input-approval.groovy
Normal file
53
014-input-approval.groovy
Normal file
@@ -0,0 +1,53 @@
|
||||
pipeline {
|
||||
agent { label 'terraform' } // ¡CRUCIAL! Debe correr donde está Terraform instalado
|
||||
|
||||
stages {
|
||||
stage('Checkout') {
|
||||
steps {
|
||||
git branch: 'main', url: 'https://git.agile611.com/Agile611/startusingjenkins.git'
|
||||
}
|
||||
}
|
||||
|
||||
stage('Terraform Init') {
|
||||
steps {
|
||||
// Inicializa y descarga el provider 'local'
|
||||
sh 'terraform init'
|
||||
}
|
||||
}
|
||||
|
||||
stage('Terraform Plan') {
|
||||
steps {
|
||||
// Genera el plan y lo guarda en un archivo binario 'tfplan'
|
||||
// -out es vital para asegurar que el apply haga EXACTAMENTE lo que vimos aquí
|
||||
sh 'terraform plan -out=tfplan'
|
||||
|
||||
// Opcional: Mostrar el plan en texto para que el humano lo lea en los logs
|
||||
sh 'terraform show -no-color tfplan'
|
||||
}
|
||||
}
|
||||
|
||||
stage('Aprobación Manual') {
|
||||
steps {
|
||||
script {
|
||||
// Esto pausará el pipeline y mostrará un pop-up en la UI
|
||||
input message: '¿El plan de Terraform parece correcto?', ok: 'Desplegar'
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
stage('Terraform Apply') {
|
||||
steps {
|
||||
// Aplica el plan guardado anteriormente
|
||||
sh 'terraform apply -auto-approve tfplan'
|
||||
}
|
||||
}
|
||||
|
||||
stage('Verificación') {
|
||||
steps {
|
||||
// Comprobamos que el archivo se creó
|
||||
sh 'ls -l mensaje.txt'
|
||||
sh 'cat mensaje.txt'
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user