@@ -159,20 +159,38 @@ jobs:
159
159
run : |
160
160
set -e
161
161
terraform init -backend-config="env/${{ inputs.environment }}-backend.hcl" -upgrade
162
- PLAN_CMD="terraform plan -var=image_digest=${{ env.DOCKER_DIGEST }} \
163
- -var=db_secret_arn=${{ env.DB_SECRET_ARN }} \
164
- -var=imported_snapshot=${{ env.SNAPSHOT_ARN }} \
165
- -var-file=env/${{ inputs.environment }}.tfvars \
166
- -var=allowed_egress_cidr_blocks='${{ inputs.egress_cidr }}'"
162
+
163
+ # Build terraform plan arguments as an array
164
+ PLAN_ARGS=(
165
+ "plan"
166
+ "-var=image_digest=${{ env.DOCKER_DIGEST }}"
167
+ "-var=db_secret_arn=${{ env.DB_SECRET_ARN }}"
168
+ "-var=imported_snapshot=${{ env.SNAPSHOT_ARN }}"
169
+ "-var-file=env/${{ inputs.environment }}.tfvars"
170
+ "-var=allowed_egress_cidr_blocks='${{ inputs.egress_cidr }}'"
171
+ )
167
172
168
173
if [ "${{ env.REPLACE_DB_CLUSTER }}" = "true" ]; then
169
- PLAN_CMD="$PLAN_CMD -replace aws_rds_cluster.core"
174
+ PLAN_ARGS+=(" -replace" " aws_rds_cluster.core")
170
175
fi
171
176
172
- PLAN_CMD="$PLAN_CMD -out ${{ runner.temp }}/tfplan"
173
- eval "$PLAN_CMD" | tee ${{ runner.temp }}/tf_stdout
177
+ # Add output file argument
178
+ PLAN_ARGS+=("-out" "${{ runner.temp }}/tfplan")
179
+
180
+ terraform "${PLAN_ARGS[@]}" | tee ${{ runner.temp }}/tf_stdout
181
+
182
+ # Capture the exit code of the terraform command
183
+ EXIT_CODE=${PIPESTATUS[0]}
184
+ # Check if the command was successful
185
+ if [ $EXIT_CODE -ne 0 ]; then
186
+ echo "Terraform plan failed with exit code $EXIT_CODE"
187
+ echo "Plan output:"
188
+ cat ${{ runner.temp }}/tf_stdout
189
+ exit $EXIT_CODE
190
+ fi
174
191
175
- echo "$PLAN_CMD"
192
+ echo "Plan cmd: $PLAN_CMD"
193
+ echo "Cidr input: ${{ inputs.egress_cidr }}"
176
194
177
195
- name : Upload artifact
178
196
uses : actions/upload-artifact@v4
0 commit comments