automated terminal push
This commit is contained in:
28
Jenkinsfile
vendored
28
Jenkinsfile
vendored
@@ -64,8 +64,8 @@ pipeline {
|
||||
withCredentials([[$class: 'AmazonWebServicesCredentialsBinding', credentialsId: env.AWS_CRED_ID]]) {
|
||||
echo "🔄 Checking/Bootstrapping Terraform backend..."
|
||||
dir(tfBackendDir) {
|
||||
try {
|
||||
sh """
|
||||
def exitCode = sh(
|
||||
script: """
|
||||
terraform init \\
|
||||
-var="aws_region=${TF_VAR_aws_region}" \\
|
||||
-var="backend_bucket_name=${TF_BACKEND_BUCKET}" \\
|
||||
@@ -74,15 +74,27 @@ pipeline {
|
||||
-var="aws_region=${TF_VAR_aws_region}" \\
|
||||
-var="backend_bucket_name=${TF_BACKEND_BUCKET}" \\
|
||||
-var="lock_table_name=${TF_DDB_TABLE}"
|
||||
"""
|
||||
""",
|
||||
returnStatus: true
|
||||
)
|
||||
|
||||
if (exitCode == 0) {
|
||||
echo "✅ Terraform backend created successfully"
|
||||
} catch (Exception e) {
|
||||
if (e.getMessage().contains("BucketAlreadyOwnedByYou") ||
|
||||
e.getMessage().contains("Table already exists")) {
|
||||
} else {
|
||||
echo "⚠️ Terraform apply failed, checking if resources already exist..."
|
||||
def bucketCheck = sh(
|
||||
script: "aws s3api head-bucket --bucket ${TF_BACKEND_BUCKET} --region ${TF_VAR_aws_region} 2>/dev/null && echo 'exists' || echo 'missing'",
|
||||
returnStdout: true
|
||||
).trim()
|
||||
def tableCheck = sh(
|
||||
script: "aws dynamodb describe-table --table-name ${TF_DDB_TABLE} --region ${TF_VAR_aws_region} 2>/dev/null && echo 'exists' || echo 'missing'",
|
||||
returnStdout: true
|
||||
).trim()
|
||||
|
||||
if (bucketCheck == "exists" && tableCheck == "exists") {
|
||||
echo "✅ Terraform backend already exists - continuing..."
|
||||
} else {
|
||||
echo "❌ Unexpected error during backend bootstrap: ${e.getMessage()}"
|
||||
throw e
|
||||
error("❌ Backend bootstrap failed and resources don't exist. Manual intervention required.")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user