54 lines
1.6 KiB
Groovy
54 lines
1.6 KiB
Groovy
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'
|
|
}
|
|
}
|
|
}
|
|
}
|