Repository navigation
feat: ensure non-interactive mode is set for Terraform commands - #303
Closed
mericstam (mericstam) wants to merge 13 commits into
Closed
mericstam (mericstam) wants to merge 13 commits into
mericstam (mericstam) wants to merge 13 commits into
Conversation
…terraform commands
Contributor
There was a problem hiding this comment.
Pull request overview
This pull request updates the Azure Pipelines Terraform task implementations (v4 and v5) to consistently run Terraform in non-interactive mode by ensuring -input=false is present for init, plan, apply, and destroy, and updates the associated L0 test fixtures to match the new CLI invocations.
Changes:
- Inject
-input=falseinto Terraform command options forinit,plan,apply, anddestroyin bothTerraformTaskV4andTerraformTaskV5. - Update numerous v4/v5 L0 test fixtures to expect the new command lines (and, in several places, updated
terraform providersoutput). - Remove some L0 scenarios around “additional args without -auto-approve” and adjust test/dependency artifacts.
Reviewed changes
Copilot reviewed 212 out of 236 changed files in this pull request and generated 5 comments.
Show a summary per file
| File | Description |
|---|---|
| views/terraform-plan/src/services/plan-formatter.ts | (Included in PR file list) |
| views/terraform-plan/src/services/attachments.ts | (Included in PR file list) |
| views/terraform-plan/src/plan-summary-tab/terraform-plan-formatter.scss | (Included in PR file list) |
| views/terraform-plan/src/plan-summary-tab/plan-summary-tab.tsx | (Included in PR file list) |
| views/terraform-plan/src/plan-summary-tab/plan-summary-tab.scss | (Included in PR file list) |
| Tasks/TerraformTask/TerraformTaskV5/src/base-terraform-command-handler.ts | Add -input=false injection for init/plan/apply/destroy |
| Tasks/TerraformTask/TerraformTaskV4/src/base-terraform-command-handler.ts | Add -input=false injection for init/plan/apply/destroy |
| Tasks/TerraformTask/TerraformTaskV4/src/terraform.ts | Adds logging of full Terraform command/args (needs gating/removal) |
| Tasks/TerraformTask/TerraformTaskV5/Tests/L0.ts | Removes several L0 cases for “without -auto-approve” scenarios |
| Tasks/TerraformTask/TerraformTaskV5/Tests/package-lock.json | Updates npm lockfile format/version |
| Tasks/TerraformTask/TerraformTaskV5/Tests/PlanTests/GCP/GCPPlanSuccessNoAdditionalArgs.ts | Update expected plan command to include -input=false |
| Tasks/TerraformTask/TerraformTaskV5/Tests/PlanTests/GCP/GCPPlanSuccessAdditionalArgs.ts | Update expected plan command to include -input=false |
| Tasks/TerraformTask/TerraformTaskV5/Tests/PlanTests/GCP/GCPPlanFailInvalidWorkingDirectory.ts | Update expected plan command permutations incl. -input=false |
| Tasks/TerraformTask/TerraformTaskV5/Tests/PlanTests/GCP/GCPPlanFailEmptyWorkingDirectory.ts | Update expected plan command permutations incl. -input=false |
| Tasks/TerraformTask/TerraformTaskV5/Tests/PlanTests/Azure/AzurePlanSuccessNoAdditionalArgs.ts | Update expected plan command permutations incl. -input=false |
| Tasks/TerraformTask/TerraformTaskV5/Tests/PlanTests/Azure/AzurePlanSuccessAdditionalArgs.ts | Expand expected plan permutations incl. -input=false |
| Tasks/TerraformTask/TerraformTaskV5/Tests/PlanTests/Azure/AzurePlanFailInvalidWorkingDirectory.ts | Update expected plan permutations incl. -input=false |
| Tasks/TerraformTask/TerraformTaskV5/Tests/PlanTests/Azure/AzurePlanFailEmptyWorkingDirectory.ts | Update expected plan permutations incl. -input=false |
| Tasks/TerraformTask/TerraformTaskV5/Tests/PlanTests/AWS/AWSPlanSuccessNoAdditionalArgs.ts | Update expected plan command to include -input=false |
| Tasks/TerraformTask/TerraformTaskV5/Tests/PlanTests/AWS/AWSPlanSuccessAdditionalArgs.ts | Update expected plan command to include -input=false |
| Tasks/TerraformTask/TerraformTaskV5/Tests/PlanTests/AWS/AWSPlanFailInvalidWorkingDirectory.ts | Update expected plan permutations incl. -input=false |
| Tasks/TerraformTask/TerraformTaskV5/Tests/PlanTests/AWS/AWSPlanFailEmptyWorkingDirectory.ts | Update expected plan permutations incl. -input=false |
| Tasks/TerraformTask/TerraformTaskV5/Tests/InitTests/GCP/GCPInitSuccessNoAdditionalArgs.ts | Update expected init command to include -input=false |
| Tasks/TerraformTask/TerraformTaskV5/Tests/InitTests/GCP/GCPInitSuccessEmptyWorkingDir.ts | Update expected init command permutations incl. -input=false |
| Tasks/TerraformTask/TerraformTaskV5/Tests/InitTests/GCP/GCPInitSuccessAdditionalArgs.ts | Update expected init command permutations incl. -input=false |
| Tasks/TerraformTask/TerraformTaskV5/Tests/InitTests/GCP/GCPInitFailInvalidWorkingDirectory.ts | Update expected init command permutations incl. -input=false |
| Tasks/TerraformTask/TerraformTaskV5/Tests/InitTests/Azure/AzureInitSuccessNoAdditionalArgsAndDefaultSettings.ts | Update expected init command to include -input=false |
| Tasks/TerraformTask/TerraformTaskV5/Tests/InitTests/Azure/AzureInitSuccessNoAdditionalArgs.ts | Update expected init command to include -input=false |
| Tasks/TerraformTask/TerraformTaskV5/Tests/InitTests/Azure/AzureInitSuccessMissingAuthenticationScheme.ts | Update expected init command to include -input=false |
| Tasks/TerraformTask/TerraformTaskV5/Tests/InitTests/Azure/AzureInitSuccessMalformedAuthenticationScheme.ts | Update expected init command to include -input=false |
| Tasks/TerraformTask/TerraformTaskV5/Tests/InitTests/Azure/AzureInitSuccessLowerCaseAuthenticationScheme.ts | Update expected init command to include -input=false |
| Tasks/TerraformTask/TerraformTaskV5/Tests/InitTests/Azure/AzureInitSuccessEmptyWorkingDir.ts | Update expected init command permutations incl. -input=false |
| Tasks/TerraformTask/TerraformTaskV5/Tests/InitTests/Azure/AzureInitSuccessAuthenticationSchemeWorkloadIdentityFederationAndIDTokenFallback.ts | Add webapi mock + include -input=false in expected init |
| Tasks/TerraformTask/TerraformTaskV5/Tests/InitTests/Azure/AzureInitSuccessAuthenticationSchemeWorkloadIdentityFederationAndDefaultSettings.ts | Add webapi mock + include -input=false in expected init |
| Tasks/TerraformTask/TerraformTaskV5/Tests/InitTests/Azure/AzureInitSuccessAuthenticationSchemeWorkloadIdentityFederationAndCLIFlags.ts | Add webapi mock + include -input=false in expected init |
| Tasks/TerraformTask/TerraformTaskV5/Tests/InitTests/Azure/AzureInitSuccessAuthenticationSchemeWorkloadIdentityFederation.ts | Add webapi mock + include -input=false in expected init |
| Tasks/TerraformTask/TerraformTaskV5/Tests/InitTests/Azure/AzureInitSuccessAuthenticationSchemeManagedServiceIdentityAndDefaultSettings.ts | Update expected init command to include -input=false |
| Tasks/TerraformTask/TerraformTaskV5/Tests/InitTests/Azure/AzureInitSuccessAuthenticationSchemeManagedServiceIdentity.ts | Update expected init command to include -input=false |
| Tasks/TerraformTask/TerraformTaskV5/Tests/InitTests/Azure/AzureInitSuccessAdditionalArgs.ts | Update expected init command permutations incl. -input=false |
| Tasks/TerraformTask/TerraformTaskV5/Tests/InitTests/Azure/AzureInitFailInvalidWorkingDirectory.ts | Update expected init command permutations incl. -input=false |
| Tasks/TerraformTask/TerraformTaskV5/Tests/InitTests/AWS/AWSInitSuccessNoAdditionalArgs.ts | Update expected init command to include -input=false |
| Tasks/TerraformTask/TerraformTaskV5/Tests/InitTests/AWS/AWSInitSuccessEmptyWorkingDir.ts | Update expected init command permutations incl. -input=false |
| Tasks/TerraformTask/TerraformTaskV5/Tests/InitTests/AWS/AWSInitSuccessAdditionalArgs.ts | Update expected init command to include -input=false |
| Tasks/TerraformTask/TerraformTaskV5/Tests/InitTests/AWS/AWSInitFailInvalidWorkingDirectory.ts | Update expected init command permutations incl. -input=false |
| Tasks/TerraformTask/TerraformTaskV5/Tests/ApplyTests/GCP/GCPApplySuccessNoAdditionalArgs.ts | Update expected apply command to include -input=false |
| Tasks/TerraformTask/TerraformTaskV5/Tests/ApplyTests/GCP/GCPApplySuccessAdditionalArgsWithoutAutoApproveL0.ts | Deleted test entrypoint |
| Tasks/TerraformTask/TerraformTaskV5/Tests/ApplyTests/GCP/GCPApplySuccessAdditionalArgsWithoutAutoApprove.ts | Deleted test harness |
| Tasks/TerraformTask/TerraformTaskV5/Tests/ApplyTests/GCP/GCPApplySuccessAdditionalArgsWithAutoApprove.ts | Expand expected apply permutations incl. -input=false |
| Tasks/TerraformTask/TerraformTaskV5/Tests/ApplyTests/GCP/GCPApplyFailInvalidWorkingDirectory.ts | Update expected apply permutations incl. -input=false |
| Tasks/TerraformTask/TerraformTaskV5/Tests/ApplyTests/GCP/GCPApplyFailEmptyWorkingDirectory.ts | Update expected apply permutations incl. -input=false |
| Tasks/TerraformTask/TerraformTaskV5/Tests/ApplyTests/Azure/AzureApplySuccessNoAdditionalArgs.ts | Update expected apply command to include -input=false |
| Tasks/TerraformTask/TerraformTaskV5/Tests/ApplyTests/Azure/AzureApplySuccessAuthenticationSchemeWorkloadIdentityFederation.ts | Add webapi mock + expected apply permutations incl. -input=false |
| Tasks/TerraformTask/TerraformTaskV5/Tests/ApplyTests/Azure/AzureApplySuccessAuthenticationSchemeManagedServiceIdentity.ts | Update expected apply command to include -input=false |
| Tasks/TerraformTask/TerraformTaskV5/Tests/ApplyTests/Azure/AzureApplySuccessAdditionalArgsWithoutAutoApproveL0.ts | Deleted test entrypoint |
| Tasks/TerraformTask/TerraformTaskV5/Tests/ApplyTests/Azure/AzureApplySuccessAdditionalArgsWithoutAutoApprove.ts | Deleted test harness |
| Tasks/TerraformTask/TerraformTaskV5/Tests/ApplyTests/Azure/AzureApplySuccessAdditionalArgsWithAutoApprove.ts | Expand expected apply permutations incl. -input=false |
| Tasks/TerraformTask/TerraformTaskV5/Tests/ApplyTests/Azure/AzureApplyFailInvalidWorkingDirectory.ts | Update expected apply permutations incl. -input=false |
| Tasks/TerraformTask/TerraformTaskV5/Tests/ApplyTests/Azure/AzureApplyFailEmptyWorkingDirectory.ts | Update expected apply permutations incl. -input=false |
| Tasks/TerraformTask/TerraformTaskV5/Tests/ApplyTests/AWS/AWSApplySuccessNoAdditionalArgs.ts | Update expected apply command to include -input=false |
| Tasks/TerraformTask/TerraformTaskV5/Tests/ApplyTests/AWS/AWSApplySuccessAdditionalArgsWithoutAutoApproveL0.ts | Deleted test entrypoint |
| Tasks/TerraformTask/TerraformTaskV5/Tests/ApplyTests/AWS/AWSApplySuccessAdditionalArgsWithoutAutoApprove.ts | Deleted test harness |
| Tasks/TerraformTask/TerraformTaskV5/Tests/ApplyTests/AWS/AWSApplySuccessAdditionalArgsWithAutoApprove.ts | Expand expected apply permutations incl. -input=false |
| Tasks/TerraformTask/TerraformTaskV5/Tests/ApplyTests/AWS/AWSApplyFailInvalidWorkingDirectory.ts | Update expected apply permutations incl. -input=false |
| Tasks/TerraformTask/TerraformTaskV5/Tests/ApplyTests/AWS/AWSApplyFailEmptyWorkingDirectory.ts | Update expected apply permutations incl. -input=false |
| Tasks/TerraformTask/TerraformTaskV5/Tests/DestroyTests/GCP/GCPDestroySuccessNoAdditionalArgs.ts | Update expected destroy command to include -input=false |
| Tasks/TerraformTask/TerraformTaskV5/Tests/DestroyTests/GCP/GCPDestroySuccessAdditionalArgsWithoutAutoApproveL0.ts | Deleted test entrypoint |
| Tasks/TerraformTask/TerraformTaskV5/Tests/DestroyTests/GCP/GCPDestroySuccessAdditionalArgsWithoutAutoApprove.ts | Deleted test harness |
| Tasks/TerraformTask/TerraformTaskV5/Tests/DestroyTests/GCP/GCPDestroySuccessAdditionalArgsWithAutoApprove.ts | Expand expected destroy permutations incl. -input=false |
| Tasks/TerraformTask/TerraformTaskV5/Tests/DestroyTests/GCP/GCPDestroyFailInvalidWorkingDirectory.ts | Update expected destroy permutations incl. -input=false |
| Tasks/TerraformTask/TerraformTaskV5/Tests/DestroyTests/Azure/AzureDestroySuccessNoAdditionalArgs.ts | Update expected destroy command to include -input=false |
| Tasks/TerraformTask/TerraformTaskV5/Tests/DestroyTests/Azure/AzureDestroySuccessAdditionalArgsWithoutAutoApproveL0.ts | Deleted test entrypoint |
| Tasks/TerraformTask/TerraformTaskV5/Tests/DestroyTests/Azure/AzureDestroySuccessAdditionalArgsWithoutAutoApprove.ts | Deleted test harness |
| Tasks/TerraformTask/TerraformTaskV5/Tests/DestroyTests/Azure/AzureDestroySuccessAdditionalArgsWithAutoApprove.ts | Expand expected destroy permutations incl. -input=false |
| Tasks/TerraformTask/TerraformTaskV5/Tests/DestroyTests/Azure/AzureDestroyFailInvalidWorkingDirectory.ts | Update expected destroy permutations incl. -input=false |
| Tasks/TerraformTask/TerraformTaskV5/Tests/DestroyTests/AWS/AWSDestroySuccessNoAdditionalArgs.ts | Update expected destroy command to include -input=false |
| Tasks/TerraformTask/TerraformTaskV5/Tests/DestroyTests/AWS/AWSDestroySuccessAdditionalArgsWithoutAutoApproveL0.ts | Deleted test entrypoint |
| Tasks/TerraformTask/TerraformTaskV5/Tests/DestroyTests/AWS/AWSDestroySuccessAdditionalArgsWithoutAutoApprove.ts | Deleted test harness |
| Tasks/TerraformTask/TerraformTaskV5/Tests/DestroyTests/AWS/AWSDestroySuccessAdditionalArgsWithAutoApprove.ts | Expand expected destroy permutations incl. -input=false |
| Tasks/TerraformTask/TerraformTaskV5/Tests/DestroyTests/AWS/AWSDestroyFailInvalidWorkingDirectory.ts | Update expected destroy permutations incl. -input=false |
| Tasks/TerraformTask/TerraformTaskV4/Tests/package.json | Add npm metadata for v4 tests |
| Tasks/TerraformTask/TerraformTaskV4/Tests/package-lock.json | Add v4 test lockfile |
| Tasks/TerraformTask/TerraformTaskV4/Tests/L0CompareVersions.ts | Adds v4 compareVersions L0 script |
| Tasks/TerraformTask/TerraformTaskV4/Tests/L0.ts | (Included in PR file list via diff context) |
| Tasks/TerraformTask/TerraformTaskV4/Tests/MultipleProviderTests/SingleProviderNoWarningL0.ts | Normalize import path quoting |
| Tasks/TerraformTask/TerraformTaskV4/Tests/MultipleProviderTests/SingleProviderNoWarning.ts | Add/update harness for provider warning test |
| Tasks/TerraformTask/TerraformTaskV4/Tests/MultipleProviderTests/MultipleProviderWarningL0.ts | Normalize import path quoting |
| Tasks/TerraformTask/TerraformTaskV4/Tests/MultipleProviderTests/MultipleProviderWarning.ts | Add/update harness for provider warning test |
| Tasks/TerraformTask/TerraformTaskV4/Tests/ValidateTests/GCP/GCPValidateSuccessNoAdditionalArgsL0.ts | Normalize import path quoting |
| Tasks/TerraformTask/TerraformTaskV4/Tests/ValidateTests/GCP/GCPValidateSuccessNoAdditionalArgs.ts | Add/update validate harness |
| Tasks/TerraformTask/TerraformTaskV4/Tests/ValidateTests/GCP/GCPValidateSuccessEmptyWorkingDirL0.ts | Normalize import path quoting |
| Tasks/TerraformTask/TerraformTaskV4/Tests/ValidateTests/GCP/GCPValidateSuccessEmptyWorkingDir.ts | Add/update validate harness |
| Tasks/TerraformTask/TerraformTaskV4/Tests/ValidateTests/GCP/GCPValidateSuccessAdditionalArgsL0.ts | Normalize import path quoting |
| Tasks/TerraformTask/TerraformTaskV4/Tests/ValidateTests/GCP/GCPValidateSuccessAdditionalArgs.ts | Add/update validate harness |
| Tasks/TerraformTask/TerraformTaskV4/Tests/ValidateTests/GCP/GCPValidateFailInvalidWorkingDirectoryL0.ts | Normalize import path quoting |
| Tasks/TerraformTask/TerraformTaskV4/Tests/ValidateTests/GCP/GCPValidateFailInvalidWorkingDirectory.ts | Add/update validate harness |
| Tasks/TerraformTask/TerraformTaskV4/Tests/ValidateTests/Azure/AzureValidateSuccessNoAdditionalArgsL0.ts | Normalize import path quoting |
| Tasks/TerraformTask/TerraformTaskV4/Tests/ValidateTests/Azure/AzureValidateSuccessNoAdditionalArgs.ts | Update validate harness inputs |
| Tasks/TerraformTask/TerraformTaskV4/Tests/ValidateTests/Azure/AzureValidateSuccessEmptyWorkingDirL0.ts | Normalize import path quoting |
| Tasks/TerraformTask/TerraformTaskV4/Tests/ValidateTests/Azure/AzureValidateSuccessEmptyWorkingDir.ts | Add/update validate harness |
| Tasks/TerraformTask/TerraformTaskV4/Tests/ValidateTests/Azure/AzureValidateSuccessAdditionalArgsL0.ts | Normalize import path quoting |
| Tasks/TerraformTask/TerraformTaskV4/Tests/ValidateTests/Azure/AzureValidateSuccessAdditionalArgs.ts | Add/update validate harness |
| Tasks/TerraformTask/TerraformTaskV4/Tests/ValidateTests/Azure/AzureValidateFailInvalidWorkingDirectoryL0.ts | Normalize import path quoting |
| Tasks/TerraformTask/TerraformTaskV4/Tests/ValidateTests/Azure/AzureValidateFailInvalidWorkingDirectory.ts | Add/update validate harness |
| Tasks/TerraformTask/TerraformTaskV4/Tests/ValidateTests/AWS/AWSValidateSuccessNoAdditionalArgsL0.ts | Normalize import path quoting |
| Tasks/TerraformTask/TerraformTaskV4/Tests/ValidateTests/AWS/AWSValidateSuccessNoAdditionalArgs.ts | Add/update validate harness |
| Tasks/TerraformTask/TerraformTaskV4/Tests/ValidateTests/AWS/AWSValidateSuccessEmptyWorkingDirL0.ts | Normalize import path quoting |
| Tasks/TerraformTask/TerraformTaskV4/Tests/ValidateTests/AWS/AWSValidateSuccessEmptyWorkingDir.ts | Add/update validate harness |
| Tasks/TerraformTask/TerraformTaskV4/Tests/ValidateTests/AWS/AWSValidateSuccessAdditionalArgsL0.ts | Normalize import path quoting |
| Tasks/TerraformTask/TerraformTaskV4/Tests/ValidateTests/AWS/AWSValidateSuccessAdditionalArgs.ts | Add/update validate harness |
| Tasks/TerraformTask/TerraformTaskV4/Tests/ValidateTests/AWS/AWSValidateFailInvalidWorkingDirectoryL0.ts | Normalize import path quoting |
| Tasks/TerraformTask/TerraformTaskV4/Tests/ValidateTests/AWS/AWSValidateFailInvalidWorkingDirectory.ts | Add/update validate harness |
| Tasks/TerraformTask/TerraformTaskV4/Tests/PlanTests/GCP/GCPPlanSuccessNoAdditionalArgsL0.ts | Normalize import path quoting |
| Tasks/TerraformTask/TerraformTaskV4/Tests/PlanTests/GCP/GCPPlanSuccessNoAdditionalArgs.ts | Update expected plan permutations incl. -input=false |
| Tasks/TerraformTask/TerraformTaskV4/Tests/PlanTests/GCP/GCPPlanSuccessAdditionalArgsL0.ts | Normalize import path quoting |
| Tasks/TerraformTask/TerraformTaskV4/Tests/PlanTests/GCP/GCPPlanSuccessAdditionalArgs.ts | Update expected plan permutations incl. -input=false |
| Tasks/TerraformTask/TerraformTaskV4/Tests/PlanTests/GCP/GCPPlanFailInvalidWorkingDirectoryL0.ts | Normalize import path quoting |
| Tasks/TerraformTask/TerraformTaskV4/Tests/PlanTests/GCP/GCPPlanFailInvalidWorkingDirectory.ts | Update expected plan permutations incl. -input=false |
| Tasks/TerraformTask/TerraformTaskV4/Tests/PlanTests/GCP/GCPPlanFailEmptyWorkingDirectoryL0.ts | Normalize import path quoting |
| Tasks/TerraformTask/TerraformTaskV4/Tests/PlanTests/GCP/GCPPlanFailEmptyWorkingDirectory.ts | Update expected plan permutations incl. -input=false |
| Tasks/TerraformTask/TerraformTaskV4/Tests/PlanTests/Azure/AzurePlanSuccessNoAdditionalArgsL0.ts | Add verbose console logging + normalize import quoting |
| Tasks/TerraformTask/TerraformTaskV4/Tests/PlanTests/Azure/AzurePlanSuccessNoAdditionalArgs.ts | Update expected plan permutations incl. -input=false |
| Tasks/TerraformTask/TerraformTaskV4/Tests/PlanTests/Azure/AzurePlanSuccessAdditionalArgsL0.ts | Add verbose console logging + normalize import quoting |
| Tasks/TerraformTask/TerraformTaskV4/Tests/PlanTests/Azure/AzurePlanSuccessAdditionalArgs.ts | Expand expected plan permutations incl. -input=false |
| Tasks/TerraformTask/TerraformTaskV4/Tests/PlanTests/Azure/AzurePlanFailInvalidWorkingDirectoryL0.ts | Normalize import quoting |
| Tasks/TerraformTask/TerraformTaskV4/Tests/PlanTests/Azure/AzurePlanFailInvalidWorkingDirectory.ts | Update expected plan permutations incl. -input=false |
| Tasks/TerraformTask/TerraformTaskV4/Tests/PlanTests/Azure/AzurePlanFailEmptyWorkingDirectoryL0.ts | Normalize import quoting |
| Tasks/TerraformTask/TerraformTaskV4/Tests/PlanTests/Azure/AzurePlanFailEmptyWorkingDirectory.ts | Update expected plan permutations incl. -input=false |
| Tasks/TerraformTask/TerraformTaskV4/Tests/PlanTests/AWS/AWSPlanSuccessNoAdditionalArgsL0.ts | Normalize import quoting |
| Tasks/TerraformTask/TerraformTaskV4/Tests/PlanTests/AWS/AWSPlanSuccessNoAdditionalArgs.ts | Update expected plan permutations incl. -input=false |
| Tasks/TerraformTask/TerraformTaskV4/Tests/PlanTests/AWS/AWSPlanSuccessAdditionalArgsL0.ts | Normalize import quoting |
| Tasks/TerraformTask/TerraformTaskV4/Tests/PlanTests/AWS/AWSPlanSuccessAdditionalArgs.ts | Update expected plan permutations incl. -input=false |
| Tasks/TerraformTask/TerraformTaskV4/Tests/PlanTests/AWS/AWSPlanFailInvalidWorkingDirectoryL0.ts | Normalize import quoting |
| Tasks/TerraformTask/TerraformTaskV4/Tests/PlanTests/AWS/AWSPlanFailInvalidWorkingDirectory.ts | Update expected plan permutations incl. -input=false |
| Tasks/TerraformTask/TerraformTaskV4/Tests/PlanTests/AWS/AWSPlanFailEmptyWorkingDirectoryL0.ts | Normalize import quoting |
| Tasks/TerraformTask/TerraformTaskV4/Tests/PlanTests/AWS/AWSPlanFailEmptyWorkingDirectory.ts | Update expected plan permutations incl. -input=false |
| Tasks/TerraformTask/TerraformTaskV4/Tests/InitTests/GCP/GCPInitSuccessNoAdditionalArgsL0.ts | Normalize import quoting |
| Tasks/TerraformTask/TerraformTaskV4/Tests/InitTests/GCP/GCPInitSuccessNoAdditionalArgs.ts | Update expected init command to include -input=false |
| Tasks/TerraformTask/TerraformTaskV4/Tests/InitTests/GCP/GCPInitSuccessEmptyWorkingDirL0.ts | Normalize import quoting |
| Tasks/TerraformTask/TerraformTaskV4/Tests/InitTests/GCP/GCPInitSuccessEmptyWorkingDir.ts | Update expected init command to include -input=false |
| Tasks/TerraformTask/TerraformTaskV4/Tests/InitTests/GCP/GCPInitSuccessAdditionalArgsL0.ts | Normalize import quoting |
| Tasks/TerraformTask/TerraformTaskV4/Tests/InitTests/GCP/GCPInitSuccessAdditionalArgs.ts | Update expected init command to include -input=false |
| Tasks/TerraformTask/TerraformTaskV4/Tests/InitTests/GCP/GCPInitFailInvalidWorkingDirectoryL0.ts | Normalize import quoting |
| Tasks/TerraformTask/TerraformTaskV4/Tests/InitTests/GCP/GCPInitFailInvalidWorkingDirectory.ts | Update expected init command to include -input=false |
| Tasks/TerraformTask/TerraformTaskV4/Tests/InitTests/Azure/AzureInitSuccessNoAdditionalArgsL0.ts | Normalize import quoting |
| Tasks/TerraformTask/TerraformTaskV4/Tests/InitTests/Azure/AzureInitSuccessNoAdditionalArgsAndDefaultSettingsL0.ts | Normalize import quoting |
| Tasks/TerraformTask/TerraformTaskV4/Tests/InitTests/Azure/AzureInitSuccessNoAdditionalArgsAndDefaultSettings.ts | Update expected init command to include -input=false |
| Tasks/TerraformTask/TerraformTaskV4/Tests/InitTests/Azure/AzureInitSuccessNoAdditionalArgs.ts | Update expected init command to include -input=false |
| Tasks/TerraformTask/TerraformTaskV4/Tests/InitTests/Azure/AzureInitSuccessMissingAuthenticationSchemeL0.ts | Normalize import quoting |
| Tasks/TerraformTask/TerraformTaskV4/Tests/InitTests/Azure/AzureInitSuccessMissingAuthenticationScheme.ts | Update expected init command to include -input=false |
| Tasks/TerraformTask/TerraformTaskV4/Tests/InitTests/Azure/AzureInitSuccessMalformedAuthenticationSchemeL0.ts | Normalize import quoting |
| Tasks/TerraformTask/TerraformTaskV4/Tests/InitTests/Azure/AzureInitSuccessMalformedAuthenticationScheme.ts | Update expected init command to include -input=false |
| Tasks/TerraformTask/TerraformTaskV4/Tests/InitTests/Azure/AzureInitSuccessLowerCaseAuthenticationSchemeL0.ts | Normalize import quoting |
| Tasks/TerraformTask/TerraformTaskV4/Tests/InitTests/Azure/AzureInitSuccessLowerCaseAuthenticationScheme.ts | Update expected init command to include -input=false |
| Tasks/TerraformTask/TerraformTaskV4/Tests/InitTests/Azure/AzureInitSuccessEmptyWorkingDirL0.ts | Normalize import quoting |
| Tasks/TerraformTask/TerraformTaskV4/Tests/InitTests/Azure/AzureInitSuccessEmptyWorkingDir.ts | Update expected init command to include -input=false |
| Tasks/TerraformTask/TerraformTaskV4/Tests/InitTests/Azure/AzureInitSuccessAuthenticationSchemeWorkloadIdentityFederationL0.ts | Normalize import quoting |
| Tasks/TerraformTask/TerraformTaskV4/Tests/InitTests/Azure/AzureInitSuccessAuthenticationSchemeWorkloadIdentityFederationAndDefaultSettingsL0.ts | Normalize import quoting |
| Tasks/TerraformTask/TerraformTaskV4/Tests/InitTests/Azure/AzureInitSuccessAuthenticationSchemeWorkloadIdentityFederationAndDefaultSettings.ts | Update expected init command to include -input=false |
| Tasks/TerraformTask/TerraformTaskV4/Tests/InitTests/Azure/AzureInitSuccessAuthenticationSchemeWorkloadIdentityFederation.ts | Update expected init command to include -input=false |
| Tasks/TerraformTask/TerraformTaskV4/Tests/InitTests/Azure/AzureInitSuccessAuthenticationSchemeManagedServiceIdentityL0.ts | Normalize import quoting |
| Tasks/TerraformTask/TerraformTaskV4/Tests/InitTests/Azure/AzureInitSuccessAuthenticationSchemeManagedServiceIdentityAndDefaultSettingsL0.ts | Normalize import quoting |
| Tasks/TerraformTask/TerraformTaskV4/Tests/InitTests/Azure/AzureInitSuccessAuthenticationSchemeManagedServiceIdentityAndDefaultSettings.ts | Update expected init command to include -input=false |
| Tasks/TerraformTask/TerraformTaskV4/Tests/InitTests/Azure/AzureInitSuccessAuthenticationSchemeManagedServiceIdentity.ts | Update expected init command to include -input=false |
| Tasks/TerraformTask/TerraformTaskV4/Tests/InitTests/Azure/AzureInitSuccessAdditionalArgsL0.ts | Refactor L0 entrypoint + add console logging |
| Tasks/TerraformTask/TerraformTaskV4/Tests/InitTests/Azure/AzureInitSuccessAdditionalArgs.ts | Update expected init command to include -input=false |
| Tasks/TerraformTask/TerraformTaskV4/Tests/InitTests/Azure/AzureInitFailInvalidWorkingDirectoryL0.ts | Normalize import quoting |
| Tasks/TerraformTask/TerraformTaskV4/Tests/InitTests/Azure/AzureInitFailInvalidWorkingDirectory.ts | Update expected init command to include -input=false |
| Tasks/TerraformTask/TerraformTaskV4/Tests/InitTests/AWS/AWSInitSuccessNoAdditionalArgsL0.ts | Normalize import quoting |
| Tasks/TerraformTask/TerraformTaskV4/Tests/InitTests/AWS/AWSInitSuccessNoAdditionalArgs.ts | Update expected init command to include -input=false |
| Tasks/TerraformTask/TerraformTaskV4/Tests/InitTests/AWS/AWSInitSuccessEmptyWorkingDirL0.ts | Normalize import quoting |
| Tasks/TerraformTask/TerraformTaskV4/Tests/InitTests/AWS/AWSInitSuccessEmptyWorkingDir.ts | Update expected init command to include -input=false |
| Tasks/TerraformTask/TerraformTaskV4/Tests/InitTests/AWS/AWSInitSuccessAdditionalArgsL0.ts | Normalize import quoting |
| Tasks/TerraformTask/TerraformTaskV4/Tests/InitTests/AWS/AWSInitSuccessAdditionalArgs.ts | Update expected init command to include -input=false |
| Tasks/TerraformTask/TerraformTaskV4/Tests/InitTests/AWS/AWSInitFailInvalidWorkingDirectoryL0.ts | Normalize import quoting |
| Tasks/TerraformTask/TerraformTaskV4/Tests/InitTests/AWS/AWSInitFailInvalidWorkingDirectory.ts | Update expected init command to include -input=false |
| Tasks/TerraformTask/TerraformTaskV4/Tests/DestroyTests/** | Update expected destroy commands to include -input=false and delete “WithoutAutoApprove” variants |
| Tasks/TerraformTask/TerraformTaskV4/Tests/ApplyTests/** | Update expected apply commands to include -input=false and delete “WithoutAutoApprove” variants |
| Tasks/TerraformTask/TerraformTaskV4/package.json | Update dependency versions/order |
| Tasks/TerraformTask/TerraformTaskV4/package-lock.json | Update locked dependency metadata (del) |
Files not reviewed (2)
- Tasks/TerraformTask/TerraformTaskV4/package-lock.json: Generated file
- Tasks/TerraformTask/TerraformTaskV5/Tests/package-lock.json: Generated file
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Comment on lines
25
to
29
| terraformToolRunner.arg(command.name); | ||
| if (command.additionalArgs) { | ||
| console.log(`Adding additional args: ${command.additionalArgs}`); | ||
| terraformToolRunner.line(command.additionalArgs); | ||
| } |
Comment on lines
+31
to
+34
| // Debug the full command | ||
| const fullCommand = `terraform ${command.name} ${command.additionalArgs || ''}`; | ||
| console.log(`Full command to be executed: terraform ${command.name} ${command.additionalArgs || ''}`); | ||
| console.log(`Full command to be executed: ${fullCommand}`); |
Comment on lines
219
to
228
| let autoApprove: string = '-auto-approve'; | ||
| let additionalArgs: string = tasks.getInput("commandOptions") || autoApprove; | ||
|
|
||
| let inputFalse: string = '-input=false'; | ||
| let additionalArgs: string = tasks.getInput("commandOptions") || ""; | ||
|
|
||
| if (additionalArgs.includes(inputFalse) === false) { | ||
| additionalArgs = `${inputFalse} ${additionalArgs}`; | ||
| } | ||
| if (additionalArgs.includes(autoApprove) === false) { | ||
| additionalArgs = `${autoApprove} ${additionalArgs}`; | ||
| } |
Comment on lines
219
to
228
| let autoApprove: string = '-auto-approve'; | ||
| let additionalArgs: string = tasks.getInput("commandOptions") || autoApprove; | ||
|
|
||
| let inputFalse: string = '-input=false'; | ||
| let additionalArgs: string = tasks.getInput("commandOptions") || ""; | ||
| if (additionalArgs.includes(inputFalse) === false) { | ||
| additionalArgs = `${inputFalse} ${additionalArgs}`; | ||
| } | ||
|
|
||
| if (additionalArgs.includes(autoApprove) === false) { | ||
| additionalArgs = `${autoApprove} ${additionalArgs}`; | ||
| } |
| assert(tr.stdOutContained('AzureApplySuccessAdditionalArgsWithoutAutoApproveL0 should have succeeded.'), 'Should have printed: AzureApplySuccessAdditionalArgsWithoutAutoApproveL0 should have succeeded.'); | ||
| }, tr); | ||
| }); | ||
| // Removed 'azure apply should succeed with additional args without -auto-approve' test as it's misleading |
Collaborator
Author
|
aborting this, will look into the fixing the flaky tests first |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This pull request updates the Terraform task handlers in both version 4 and version 5 to ensure the
-input=falseflag is consistently added to all Terraform commands (init,plan,apply, anddestroy) if it is not already present in thecommandOptions. This change improves automation by disabling interactive prompts during Terraform execution.Updates to Terraform Task Handlers
Changes in Version 4 (
TerraformTaskV4):initCommand: Added logic to append-input=falsetocommandOptionsif not already present. ([Tasks/TerraformTask/TerraformTaskV4/src/base-terraform-command-handler.tsR77-R84](https://github.com/microsoft/azure-pipelines-terraform/pull/303/files#diff-f68cda4f8181153bf1003884dfec243ab7aedf1a5d0ee95edc94a3952ea06b37R77-R84))planCommand: Ensured-input=falseis appended tocommandOptionsalongside-detailed-exitcode. ([Tasks/TerraformTask/TerraformTaskV4/src/base-terraform-command-handler.tsL156-R163](https://github.com/microsoft/azure-pipelines-terraform/pull/303/files#diff-f68cda4f8181153bf1003884dfec243ab7aedf1a5d0ee95edc94a3952ea06b37L156-R163))applyCommand: Appended-input=falsetoadditionalArgsif missing, ensuring non-interactive execution. ([Tasks/TerraformTask/TerraformTaskV4/src/base-terraform-command-handler.tsL214-R226](https://github.com/microsoft/azure-pipelines-terraform/pull/303/files#diff-f68cda4f8181153bf1003884dfec243ab7aedf1a5d0ee95edc94a3952ea06b37L214-R226))destroyCommand: Added-input=falsetoadditionalArgsif not already included. ([Tasks/TerraformTask/TerraformTaskV4/src/base-terraform-command-handler.tsL236-R252](https://github.com/microsoft/azure-pipelines-terraform/pull/303/files#diff-f68cda4f8181153bf1003884dfec243ab7aedf1a5d0ee95edc94a3952ea06b37L236-R252))Changes in Version 5 (
TerraformTaskV5):initCommand: Same logic as in version 4 to add-input=falsetocommandOptions. ([Tasks/TerraformTask/TerraformTaskV5/src/base-terraform-command-handler.tsR77-R84](https://github.com/microsoft/azure-pipelines-terraform/pull/303/files#diff-1a3717e44dc2d4fb00c77cba4c316848cd4c64b0f043e079b120a96ec8c24839R77-R84))planCommand: Ensured-input=falseis appended tocommandOptionsalongside-detailed-exitcode. ([Tasks/TerraformTask/TerraformTaskV5/src/base-terraform-command-handler.tsL156-R163](https://github.com/microsoft/azure-pipelines-terraform/pull/303/files#diff-1a3717e44dc2d4fb00c77cba4c316848cd4c64b0f043e079b120a96ec8c24839L156-R163))applyCommand: Appended-input=falsetoadditionalArgsif missing, similar to version 4. ([Tasks/TerraformTask/TerraformTaskV5/src/base-terraform-command-handler.tsL214-R226](https://github.com/microsoft/azure-pipelines-terraform/pull/303/files#diff-1a3717e44dc2d4fb00c77cba4c316848cd4c64b0f043e079b120a96ec8c24839L214-R226))destroyCommand: Added-input=falsetoadditionalArgsif not already included. ([Tasks/TerraformTask/TerraformTaskV5/src/base-terraform-command-handler.tsL236-R252](https://github.com/microsoft/azure-pipelines-terraform/pull/303/files#diff-1a3717e44dc2d4fb00c77cba4c316848cd4c64b0f043e079b120a96ec8c24839L236-R252))