diff --git a/014-input-approval.groovy b/014-input-approval.groovy new file mode 100644 index 0000000..63875ea --- /dev/null +++ b/014-input-approval.groovy @@ -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' + } + } + } +}