├── .azure-pipelines ├── azure-pipeline-ci.yml └── azure-pipeline.yml ├── .github └── workflows │ └── unit-test.yml ├── .gitignore ├── .vscode └── launch.json ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md ├── LICENSE ├── README.md ├── SECURITY.md ├── SUPPORT.md ├── Tasks ├── TerraformInstaller │ ├── TerraformInstallerV0 │ │ ├── README.md │ │ ├── Strings │ │ │ └── resources.resjson │ │ │ │ └── en-US │ │ │ │ └── resources.resjson │ │ ├── ThirdPartyNotices.txt │ │ ├── icon.png │ │ ├── icon.svg │ │ ├── make.json │ │ ├── package-lock.json │ │ ├── package.json │ │ ├── src │ │ │ ├── index.ts │ │ │ └── terraform-installer.ts │ │ ├── task.json │ │ ├── task.loc.json │ │ └── tsconfig.json │ └── TerraformInstallerV1 │ │ ├── README.md │ │ ├── Strings │ │ └── resources.resjson │ │ │ └── en-US │ │ │ └── resources.resjson │ │ ├── ThirdPartyNotices.txt │ │ ├── icon.png │ │ ├── icon.svg │ │ ├── make.json │ │ ├── package-lock.json │ │ ├── package.json │ │ ├── src │ │ ├── index.ts │ │ └── terraform-installer.ts │ │ ├── task.json │ │ ├── task.loc.json │ │ └── tsconfig.json └── TerraformTask │ ├── TerraformTaskV1 │ ├── README.md │ ├── Strings │ │ └── resources.resjson │ │ │ └── en-US │ │ │ └── resources.resjson │ ├── Tests │ │ ├── ApplyTests │ │ │ ├── AWS │ │ │ │ ├── AWSApplyFailEmptyWorkingDirectory.ts │ │ │ │ ├── AWSApplyFailEmptyWorkingDirectoryL0.ts │ │ │ │ ├── AWSApplyFailInvalidWorkingDirectory.ts │ │ │ │ ├── AWSApplyFailInvalidWorkingDirectoryL0.ts │ │ │ │ ├── AWSApplySuccessAdditionalArgsWithAutoApprove.ts │ │ │ │ ├── AWSApplySuccessAdditionalArgsWithAutoApproveL0.ts │ │ │ │ ├── AWSApplySuccessAdditionalArgsWithoutAutoApprove.ts │ │ │ │ ├── AWSApplySuccessAdditionalArgsWithoutAutoApproveL0.ts │ │ │ │ ├── AWSApplySuccessNoAdditionalArgs.ts │ │ │ │ └── AWSApplySuccessNoAdditionalArgsL0.ts │ │ │ ├── Azure │ │ │ │ ├── AzureApplyFailEmptyWorkingDirectory.ts │ │ │ │ ├── AzureApplyFailEmptyWorkingDirectoryL0.ts │ │ │ │ ├── AzureApplyFailInvalidWorkingDirectory.ts │ │ │ │ ├── AzureApplyFailInvalidWorkingDirectoryL0.ts │ │ │ │ ├── AzureApplySuccessAdditionalArgsWithAutoApprove.ts │ │ │ │ ├── AzureApplySuccessAdditionalArgsWithAutoApproveL0.ts │ │ │ │ ├── AzureApplySuccessAdditionalArgsWithoutAutoApprove.ts │ │ │ │ ├── AzureApplySuccessAdditionalArgsWithoutAutoApproveL0.ts │ │ │ │ ├── AzureApplySuccessNoAdditionalArgs.ts │ │ │ │ └── AzureApplySuccessNoAdditionalArgsL0.ts │ │ │ └── GCP │ │ │ │ ├── GCPApplyFailEmptyWorkingDirectory.ts │ │ │ │ ├── GCPApplyFailEmptyWorkingDirectoryL0.ts │ │ │ │ ├── GCPApplyFailInvalidWorkingDirectory.ts │ │ │ │ ├── GCPApplyFailInvalidWorkingDirectoryL0.ts │ │ │ │ ├── GCPApplySuccessAdditionalArgsWithAutoApprove.ts │ │ │ │ ├── GCPApplySuccessAdditionalArgsWithAutoApproveL0.ts │ │ │ │ ├── GCPApplySuccessAdditionalArgsWithoutAutoApprove.ts │ │ │ │ ├── GCPApplySuccessAdditionalArgsWithoutAutoApproveL0.ts │ │ │ │ ├── GCPApplySuccessNoAdditionalArgs.ts │ │ │ │ └── GCPApplySuccessNoAdditionalArgsL0.ts │ │ ├── DestroyTests │ │ │ ├── AWS │ │ │ │ ├── AWSDestroyFailInvalidWorkingDirectory.ts │ │ │ │ ├── AWSDestroyFailInvalidWorkingDirectoryL0.ts │ │ │ │ ├── AWSDestroySuccessAdditionalArgsWithAutoApprove.ts │ │ │ │ ├── AWSDestroySuccessAdditionalArgsWithAutoApproveL0.ts │ │ │ │ ├── AWSDestroySuccessAdditionalArgsWithoutAutoApprove.ts │ │ │ │ ├── AWSDestroySuccessAdditionalArgsWithoutAutoApproveL0.ts │ │ │ │ ├── AWSDestroySuccessNoAdditionalArgs.ts │ │ │ │ └── AWSDestroySuccessNoAdditionalArgsL0.ts │ │ │ ├── Azure │ │ │ │ ├── AzureDestroyFailInvalidWorkingDirectory.ts │ │ │ │ ├── AzureDestroyFailInvalidWorkingDirectoryL0.ts │ │ │ │ ├── AzureDestroySuccessAdditionalArgsWithAutoApprove.ts │ │ │ │ ├── AzureDestroySuccessAdditionalArgsWithAutoApproveL0.ts │ │ │ │ ├── AzureDestroySuccessAdditionalArgsWithoutAutoApprove.ts │ │ │ │ ├── AzureDestroySuccessAdditionalArgsWithoutAutoApproveL0.ts │ │ │ │ ├── AzureDestroySuccessNoAdditionalArgs.ts │ │ │ │ └── AzureDestroySuccessNoAdditionalArgsL0.ts │ │ │ └── GCP │ │ │ │ ├── GCPDestroyFailInvalidWorkingDirectory.ts │ │ │ │ ├── GCPDestroyFailInvalidWorkingDirectoryL0.ts │ │ │ │ ├── GCPDestroySuccessAdditionalArgsWithAutoApprove.ts │ │ │ │ ├── GCPDestroySuccessAdditionalArgsWithAutoApproveL0.ts │ │ │ │ ├── GCPDestroySuccessAdditionalArgsWithoutAutoApprove.ts │ │ │ │ ├── GCPDestroySuccessAdditionalArgsWithoutAutoApproveL0.ts │ │ │ │ ├── GCPDestroySuccessNoAdditionalArgs.ts │ │ │ │ └── GCPDestroySuccessNoAdditionalArgsL0.ts │ │ ├── InitTests │ │ │ ├── AWS │ │ │ │ ├── AWSInitFailInvalidWorkingDirectory.ts │ │ │ │ ├── AWSInitFailInvalidWorkingDirectoryL0.ts │ │ │ │ ├── AWSInitSuccessAdditionalArgs.ts │ │ │ │ ├── AWSInitSuccessAdditionalArgsL0.ts │ │ │ │ ├── AWSInitSuccessEmptyWorkingDir.ts │ │ │ │ ├── AWSInitSuccessEmptyWorkingDirL0.ts │ │ │ │ ├── AWSInitSuccessNoAdditionalArgs.ts │ │ │ │ └── AWSInitSuccessNoAdditionalArgsL0.ts │ │ │ ├── Azure │ │ │ │ ├── AzureInitFailInvalidWorkingDirectory.ts │ │ │ │ ├── AzureInitFailInvalidWorkingDirectoryL0.ts │ │ │ │ ├── AzureInitSuccessAdditionalArgs.ts │ │ │ │ ├── AzureInitSuccessAdditionalArgsL0.ts │ │ │ │ ├── AzureInitSuccessEmptyWorkingDir.ts │ │ │ │ ├── AzureInitSuccessEmptyWorkingDirL0.ts │ │ │ │ ├── AzureInitSuccessNoAdditionalArgs.ts │ │ │ │ └── AzureInitSuccessNoAdditionalArgsL0.ts │ │ │ └── GCP │ │ │ │ ├── GCPInitFailInvalidWorkingDirectory.ts │ │ │ │ ├── GCPInitFailInvalidWorkingDirectoryL0.ts │ │ │ │ ├── GCPInitSuccessAdditionalArgs.ts │ │ │ │ ├── GCPInitSuccessAdditionalArgsL0.ts │ │ │ │ ├── GCPInitSuccessEmptyWorkingDir.ts │ │ │ │ ├── GCPInitSuccessEmptyWorkingDirL0.ts │ │ │ │ ├── GCPInitSuccessNoAdditionalArgs.ts │ │ │ │ └── GCPInitSuccessNoAdditionalArgsL0.ts │ │ ├── L0.ts │ │ ├── L0CompareVersions.ts │ │ ├── MultipleProviderTests │ │ │ ├── MultipleProviderWarning.ts │ │ │ ├── MultipleProviderWarningL0.ts │ │ │ ├── SingleProviderNoWarning.ts │ │ │ └── SingleProviderNoWarningL0.ts │ │ ├── PlanTests │ │ │ ├── AWS │ │ │ │ ├── AWSPlanFailEmptyWorkingDirectory.ts │ │ │ │ ├── AWSPlanFailEmptyWorkingDirectoryL0.ts │ │ │ │ ├── AWSPlanFailInvalidWorkingDirectory.ts │ │ │ │ ├── AWSPlanFailInvalidWorkingDirectoryL0.ts │ │ │ │ ├── AWSPlanSuccessAdditionalArgs.ts │ │ │ │ ├── AWSPlanSuccessAdditionalArgsL0.ts │ │ │ │ ├── AWSPlanSuccessNoAdditionalArgs.ts │ │ │ │ └── AWSPlanSuccessNoAdditionalArgsL0.ts │ │ │ ├── Azure │ │ │ │ ├── AzurePlanFailEmptyWorkingDirectory.ts │ │ │ │ ├── AzurePlanFailEmptyWorkingDirectoryL0.ts │ │ │ │ ├── AzurePlanFailInvalidWorkingDirectory.ts │ │ │ │ ├── AzurePlanFailInvalidWorkingDirectoryL0.ts │ │ │ │ ├── AzurePlanSuccessAdditionalArgs.ts │ │ │ │ ├── AzurePlanSuccessAdditionalArgsL0.ts │ │ │ │ ├── AzurePlanSuccessNoAdditionalArgs.ts │ │ │ │ └── AzurePlanSuccessNoAdditionalArgsL0.ts │ │ │ └── GCP │ │ │ │ ├── GCPPlanFailEmptyWorkingDirectory.ts │ │ │ │ ├── GCPPlanFailEmptyWorkingDirectoryL0.ts │ │ │ │ ├── GCPPlanFailInvalidWorkingDirectory.ts │ │ │ │ ├── GCPPlanFailInvalidWorkingDirectoryL0.ts │ │ │ │ ├── GCPPlanSuccessAdditionalArgs.ts │ │ │ │ ├── GCPPlanSuccessAdditionalArgsL0.ts │ │ │ │ ├── GCPPlanSuccessNoAdditionalArgs.ts │ │ │ │ └── GCPPlanSuccessNoAdditionalArgsL0.ts │ │ ├── ValidateTests │ │ │ ├── AWS │ │ │ │ ├── AWSValidateFailInvalidWorkingDirectory.ts │ │ │ │ ├── AWSValidateFailInvalidWorkingDirectoryL0.ts │ │ │ │ ├── AWSValidateSuccessAdditionalArgs.ts │ │ │ │ ├── AWSValidateSuccessAdditionalArgsL0.ts │ │ │ │ ├── AWSValidateSuccessEmptyWorkingDir.ts │ │ │ │ ├── AWSValidateSuccessEmptyWorkingDirL0.ts │ │ │ │ ├── AWSValidateSuccessNoAdditionalArgs.ts │ │ │ │ └── AWSValidateSuccessNoAdditionalArgsL0.ts │ │ │ ├── Azure │ │ │ │ ├── AzureValidateFailInvalidWorkingDirectory.ts │ │ │ │ ├── AzureValidateFailInvalidWorkingDirectoryL0.ts │ │ │ │ ├── AzureValidateSuccessAdditionalArgs.ts │ │ │ │ ├── AzureValidateSuccessAdditionalArgsL0.ts │ │ │ │ ├── AzureValidateSuccessEmptyWorkingDir.ts │ │ │ │ ├── AzureValidateSuccessEmptyWorkingDirL0.ts │ │ │ │ ├── AzureValidateSuccessNoAdditionalArgs.ts │ │ │ │ └── AzureValidateSuccessNoAdditionalArgsL0.ts │ │ │ └── GCP │ │ │ │ ├── GCPValidateFailInvalidWorkingDirectory.ts │ │ │ │ ├── GCPValidateFailInvalidWorkingDirectoryL0.ts │ │ │ │ ├── GCPValidateSuccessAdditionalArgs.ts │ │ │ │ ├── GCPValidateSuccessAdditionalArgsL0.ts │ │ │ │ ├── GCPValidateSuccessEmptyWorkingDir.ts │ │ │ │ ├── GCPValidateSuccessEmptyWorkingDirL0.ts │ │ │ │ ├── GCPValidateSuccessNoAdditionalArgs.ts │ │ │ │ └── GCPValidateSuccessNoAdditionalArgsL0.ts │ │ ├── package-lock.json │ │ └── package.json │ ├── ThirdPartyNotices.txt │ ├── icon.png │ ├── icon.svg │ ├── make.json │ ├── package-lock.json │ ├── package.json │ ├── src │ │ ├── aws-terraform-command-handler.ts │ │ ├── azure-terraform-command-handler.ts │ │ ├── base-terraform-command-handler.ts │ │ ├── gcp-terraform-command-handler.ts │ │ ├── index.ts │ │ ├── parent-handler.ts │ │ ├── terraform-commands.ts │ │ └── terraform.ts │ ├── task.json │ ├── task.loc.json │ └── tsconfig.json │ ├── TerraformTaskV2 │ ├── README.md │ ├── Strings │ │ └── resources.resjson │ │ │ └── en-US │ │ │ └── resources.resjson │ ├── Tests │ │ ├── ApplyTests │ │ │ ├── AWS │ │ │ │ ├── AWSApplyFailEmptyWorkingDirectory.ts │ │ │ │ ├── AWSApplyFailEmptyWorkingDirectoryL0.ts │ │ │ │ ├── AWSApplyFailInvalidWorkingDirectory.ts │ │ │ │ ├── AWSApplyFailInvalidWorkingDirectoryL0.ts │ │ │ │ ├── AWSApplySuccessAdditionalArgsWithAutoApprove.ts │ │ │ │ ├── AWSApplySuccessAdditionalArgsWithAutoApproveL0.ts │ │ │ │ ├── AWSApplySuccessAdditionalArgsWithoutAutoApprove.ts │ │ │ │ ├── AWSApplySuccessAdditionalArgsWithoutAutoApproveL0.ts │ │ │ │ ├── AWSApplySuccessNoAdditionalArgs.ts │ │ │ │ └── AWSApplySuccessNoAdditionalArgsL0.ts │ │ │ ├── Azure │ │ │ │ ├── AzureApplyFailEmptyWorkingDirectory.ts │ │ │ │ ├── AzureApplyFailEmptyWorkingDirectoryL0.ts │ │ │ │ ├── AzureApplyFailInvalidWorkingDirectory.ts │ │ │ │ ├── AzureApplyFailInvalidWorkingDirectoryL0.ts │ │ │ │ ├── AzureApplySuccessAdditionalArgsWithAutoApprove.ts │ │ │ │ ├── AzureApplySuccessAdditionalArgsWithAutoApproveL0.ts │ │ │ │ ├── AzureApplySuccessAdditionalArgsWithoutAutoApprove.ts │ │ │ │ ├── AzureApplySuccessAdditionalArgsWithoutAutoApproveL0.ts │ │ │ │ ├── AzureApplySuccessNoAdditionalArgs.ts │ │ │ │ └── AzureApplySuccessNoAdditionalArgsL0.ts │ │ │ └── GCP │ │ │ │ ├── GCPApplyFailEmptyWorkingDirectory.ts │ │ │ │ ├── GCPApplyFailEmptyWorkingDirectoryL0.ts │ │ │ │ ├── GCPApplyFailInvalidWorkingDirectory.ts │ │ │ │ ├── GCPApplyFailInvalidWorkingDirectoryL0.ts │ │ │ │ ├── GCPApplySuccessAdditionalArgsWithAutoApprove.ts │ │ │ │ ├── GCPApplySuccessAdditionalArgsWithAutoApproveL0.ts │ │ │ │ ├── GCPApplySuccessAdditionalArgsWithoutAutoApprove.ts │ │ │ │ ├── GCPApplySuccessAdditionalArgsWithoutAutoApproveL0.ts │ │ │ │ ├── GCPApplySuccessNoAdditionalArgs.ts │ │ │ │ └── GCPApplySuccessNoAdditionalArgsL0.ts │ │ ├── DestroyTests │ │ │ ├── AWS │ │ │ │ ├── AWSDestroyFailInvalidWorkingDirectory.ts │ │ │ │ ├── AWSDestroyFailInvalidWorkingDirectoryL0.ts │ │ │ │ ├── AWSDestroySuccessAdditionalArgsWithAutoApprove.ts │ │ │ │ ├── AWSDestroySuccessAdditionalArgsWithAutoApproveL0.ts │ │ │ │ ├── AWSDestroySuccessAdditionalArgsWithoutAutoApprove.ts │ │ │ │ ├── AWSDestroySuccessAdditionalArgsWithoutAutoApproveL0.ts │ │ │ │ ├── AWSDestroySuccessNoAdditionalArgs.ts │ │ │ │ └── AWSDestroySuccessNoAdditionalArgsL0.ts │ │ │ ├── Azure │ │ │ │ ├── AzureDestroyFailInvalidWorkingDirectory.ts │ │ │ │ ├── AzureDestroyFailInvalidWorkingDirectoryL0.ts │ │ │ │ ├── AzureDestroySuccessAdditionalArgsWithAutoApprove.ts │ │ │ │ ├── AzureDestroySuccessAdditionalArgsWithAutoApproveL0.ts │ │ │ │ ├── AzureDestroySuccessAdditionalArgsWithoutAutoApprove.ts │ │ │ │ ├── AzureDestroySuccessAdditionalArgsWithoutAutoApproveL0.ts │ │ │ │ ├── AzureDestroySuccessNoAdditionalArgs.ts │ │ │ │ └── AzureDestroySuccessNoAdditionalArgsL0.ts │ │ │ └── GCP │ │ │ │ ├── GCPDestroyFailInvalidWorkingDirectory.ts │ │ │ │ ├── GCPDestroyFailInvalidWorkingDirectoryL0.ts │ │ │ │ ├── GCPDestroySuccessAdditionalArgsWithAutoApprove.ts │ │ │ │ ├── GCPDestroySuccessAdditionalArgsWithAutoApproveL0.ts │ │ │ │ ├── GCPDestroySuccessAdditionalArgsWithoutAutoApprove.ts │ │ │ │ ├── GCPDestroySuccessAdditionalArgsWithoutAutoApproveL0.ts │ │ │ │ ├── GCPDestroySuccessNoAdditionalArgs.ts │ │ │ │ └── GCPDestroySuccessNoAdditionalArgsL0.ts │ │ ├── InitTests │ │ │ ├── AWS │ │ │ │ ├── AWSInitFailInvalidWorkingDirectory.ts │ │ │ │ ├── AWSInitFailInvalidWorkingDirectoryL0.ts │ │ │ │ ├── AWSInitSuccessAdditionalArgs.ts │ │ │ │ ├── AWSInitSuccessAdditionalArgsL0.ts │ │ │ │ ├── AWSInitSuccessEmptyWorkingDir.ts │ │ │ │ ├── AWSInitSuccessEmptyWorkingDirL0.ts │ │ │ │ ├── AWSInitSuccessNoAdditionalArgs.ts │ │ │ │ └── AWSInitSuccessNoAdditionalArgsL0.ts │ │ │ ├── Azure │ │ │ │ ├── AzureInitFailInvalidWorkingDirectory.ts │ │ │ │ ├── AzureInitFailInvalidWorkingDirectoryL0.ts │ │ │ │ ├── AzureInitSuccessAdditionalArgs.ts │ │ │ │ ├── AzureInitSuccessAdditionalArgsL0.ts │ │ │ │ ├── AzureInitSuccessEmptyWorkingDir.ts │ │ │ │ ├── AzureInitSuccessEmptyWorkingDirL0.ts │ │ │ │ ├── AzureInitSuccessNoAdditionalArgs.ts │ │ │ │ └── AzureInitSuccessNoAdditionalArgsL0.ts │ │ │ └── GCP │ │ │ │ ├── GCPInitFailInvalidWorkingDirectory.ts │ │ │ │ ├── GCPInitFailInvalidWorkingDirectoryL0.ts │ │ │ │ ├── GCPInitSuccessAdditionalArgs.ts │ │ │ │ ├── GCPInitSuccessAdditionalArgsL0.ts │ │ │ │ ├── GCPInitSuccessEmptyWorkingDir.ts │ │ │ │ ├── GCPInitSuccessEmptyWorkingDirL0.ts │ │ │ │ ├── GCPInitSuccessNoAdditionalArgs.ts │ │ │ │ └── GCPInitSuccessNoAdditionalArgsL0.ts │ │ ├── L0.ts │ │ ├── L0CompareVersions.ts │ │ ├── MultipleProviderTests │ │ │ ├── MultipleProviderWarning.ts │ │ │ ├── MultipleProviderWarningL0.ts │ │ │ ├── SingleProviderNoWarning.ts │ │ │ └── SingleProviderNoWarningL0.ts │ │ ├── PlanTests │ │ │ ├── AWS │ │ │ │ ├── AWSPlanFailEmptyWorkingDirectory.ts │ │ │ │ ├── AWSPlanFailEmptyWorkingDirectoryL0.ts │ │ │ │ ├── AWSPlanFailInvalidWorkingDirectory.ts │ │ │ │ ├── AWSPlanFailInvalidWorkingDirectoryL0.ts │ │ │ │ ├── AWSPlanSuccessAdditionalArgs.ts │ │ │ │ ├── AWSPlanSuccessAdditionalArgsL0.ts │ │ │ │ ├── AWSPlanSuccessNoAdditionalArgs.ts │ │ │ │ └── AWSPlanSuccessNoAdditionalArgsL0.ts │ │ │ ├── Azure │ │ │ │ ├── AzurePlanFailEmptyWorkingDirectory.ts │ │ │ │ ├── AzurePlanFailEmptyWorkingDirectoryL0.ts │ │ │ │ ├── AzurePlanFailInvalidWorkingDirectory.ts │ │ │ │ ├── AzurePlanFailInvalidWorkingDirectoryL0.ts │ │ │ │ ├── AzurePlanSuccessAdditionalArgs.ts │ │ │ │ ├── AzurePlanSuccessAdditionalArgsL0.ts │ │ │ │ ├── AzurePlanSuccessNoAdditionalArgs.ts │ │ │ │ └── AzurePlanSuccessNoAdditionalArgsL0.ts │ │ │ └── GCP │ │ │ │ ├── GCPPlanFailEmptyWorkingDirectory.ts │ │ │ │ ├── GCPPlanFailEmptyWorkingDirectoryL0.ts │ │ │ │ ├── GCPPlanFailInvalidWorkingDirectory.ts │ │ │ │ ├── GCPPlanFailInvalidWorkingDirectoryL0.ts │ │ │ │ ├── GCPPlanSuccessAdditionalArgs.ts │ │ │ │ ├── GCPPlanSuccessAdditionalArgsL0.ts │ │ │ │ ├── GCPPlanSuccessNoAdditionalArgs.ts │ │ │ │ └── GCPPlanSuccessNoAdditionalArgsL0.ts │ │ ├── ValidateTests │ │ │ ├── AWS │ │ │ │ ├── AWSValidateFailInvalidWorkingDirectory.ts │ │ │ │ ├── AWSValidateFailInvalidWorkingDirectoryL0.ts │ │ │ │ ├── AWSValidateSuccessAdditionalArgs.ts │ │ │ │ ├── AWSValidateSuccessAdditionalArgsL0.ts │ │ │ │ ├── AWSValidateSuccessEmptyWorkingDir.ts │ │ │ │ ├── AWSValidateSuccessEmptyWorkingDirL0.ts │ │ │ │ ├── AWSValidateSuccessNoAdditionalArgs.ts │ │ │ │ └── AWSValidateSuccessNoAdditionalArgsL0.ts │ │ │ ├── Azure │ │ │ │ ├── AzureValidateFailInvalidWorkingDirectory.ts │ │ │ │ ├── AzureValidateFailInvalidWorkingDirectoryL0.ts │ │ │ │ ├── AzureValidateSuccessAdditionalArgs.ts │ │ │ │ ├── AzureValidateSuccessAdditionalArgsL0.ts │ │ │ │ ├── AzureValidateSuccessEmptyWorkingDir.ts │ │ │ │ ├── AzureValidateSuccessEmptyWorkingDirL0.ts │ │ │ │ ├── AzureValidateSuccessNoAdditionalArgs.ts │ │ │ │ └── AzureValidateSuccessNoAdditionalArgsL0.ts │ │ │ └── GCP │ │ │ │ ├── GCPValidateFailInvalidWorkingDirectory.ts │ │ │ │ ├── GCPValidateFailInvalidWorkingDirectoryL0.ts │ │ │ │ ├── GCPValidateSuccessAdditionalArgs.ts │ │ │ │ ├── GCPValidateSuccessAdditionalArgsL0.ts │ │ │ │ ├── GCPValidateSuccessEmptyWorkingDir.ts │ │ │ │ ├── GCPValidateSuccessEmptyWorkingDirL0.ts │ │ │ │ ├── GCPValidateSuccessNoAdditionalArgs.ts │ │ │ │ └── GCPValidateSuccessNoAdditionalArgsL0.ts │ │ ├── package-lock.json │ │ └── package.json │ ├── ThirdPartyNotices.txt │ ├── icon.png │ ├── icon.svg │ ├── make.json │ ├── package-lock.json │ ├── package.json │ ├── src │ │ ├── aws-terraform-command-handler.ts │ │ ├── azure-terraform-command-handler.ts │ │ ├── base-terraform-command-handler.ts │ │ ├── gcp-terraform-command-handler.ts │ │ ├── index.ts │ │ ├── parent-handler.ts │ │ ├── terraform-commands.ts │ │ └── terraform.ts │ ├── task.json │ ├── task.loc.json │ └── tsconfig.json │ ├── TerraformTaskV3 │ ├── README.md │ ├── Strings │ │ └── resources.resjson │ │ │ └── en-US │ │ │ └── resources.resjson │ ├── Tests │ │ ├── ApplyTests │ │ │ ├── AWS │ │ │ │ ├── AWSApplyFailEmptyWorkingDirectory.ts │ │ │ │ ├── AWSApplyFailEmptyWorkingDirectoryL0.ts │ │ │ │ ├── AWSApplyFailInvalidWorkingDirectory.ts │ │ │ │ ├── AWSApplyFailInvalidWorkingDirectoryL0.ts │ │ │ │ ├── AWSApplySuccessAdditionalArgsWithAutoApprove.ts │ │ │ │ ├── AWSApplySuccessAdditionalArgsWithAutoApproveL0.ts │ │ │ │ ├── AWSApplySuccessAdditionalArgsWithoutAutoApprove.ts │ │ │ │ ├── AWSApplySuccessAdditionalArgsWithoutAutoApproveL0.ts │ │ │ │ ├── AWSApplySuccessNoAdditionalArgs.ts │ │ │ │ └── AWSApplySuccessNoAdditionalArgsL0.ts │ │ │ ├── Azure │ │ │ │ ├── AzureApplyFailEmptyWorkingDirectory.ts │ │ │ │ ├── AzureApplyFailEmptyWorkingDirectoryL0.ts │ │ │ │ ├── AzureApplyFailInvalidWorkingDirectory.ts │ │ │ │ ├── AzureApplyFailInvalidWorkingDirectoryL0.ts │ │ │ │ ├── AzureApplySuccessAdditionalArgsWithAutoApprove.ts │ │ │ │ ├── AzureApplySuccessAdditionalArgsWithAutoApproveL0.ts │ │ │ │ ├── AzureApplySuccessAdditionalArgsWithoutAutoApprove.ts │ │ │ │ ├── AzureApplySuccessAdditionalArgsWithoutAutoApproveL0.ts │ │ │ │ ├── AzureApplySuccessNoAdditionalArgs.ts │ │ │ │ └── AzureApplySuccessNoAdditionalArgsL0.ts │ │ │ └── GCP │ │ │ │ ├── GCPApplyFailEmptyWorkingDirectory.ts │ │ │ │ ├── GCPApplyFailEmptyWorkingDirectoryL0.ts │ │ │ │ ├── GCPApplyFailInvalidWorkingDirectory.ts │ │ │ │ ├── GCPApplyFailInvalidWorkingDirectoryL0.ts │ │ │ │ ├── GCPApplySuccessAdditionalArgsWithAutoApprove.ts │ │ │ │ ├── GCPApplySuccessAdditionalArgsWithAutoApproveL0.ts │ │ │ │ ├── GCPApplySuccessAdditionalArgsWithoutAutoApprove.ts │ │ │ │ ├── GCPApplySuccessAdditionalArgsWithoutAutoApproveL0.ts │ │ │ │ ├── GCPApplySuccessNoAdditionalArgs.ts │ │ │ │ └── GCPApplySuccessNoAdditionalArgsL0.ts │ │ ├── DestroyTests │ │ │ ├── AWS │ │ │ │ ├── AWSDestroyFailInvalidWorkingDirectory.ts │ │ │ │ ├── AWSDestroyFailInvalidWorkingDirectoryL0.ts │ │ │ │ ├── AWSDestroySuccessAdditionalArgsWithAutoApprove.ts │ │ │ │ ├── AWSDestroySuccessAdditionalArgsWithAutoApproveL0.ts │ │ │ │ ├── AWSDestroySuccessAdditionalArgsWithoutAutoApprove.ts │ │ │ │ ├── AWSDestroySuccessAdditionalArgsWithoutAutoApproveL0.ts │ │ │ │ ├── AWSDestroySuccessNoAdditionalArgs.ts │ │ │ │ └── AWSDestroySuccessNoAdditionalArgsL0.ts │ │ │ ├── Azure │ │ │ │ ├── AzureDestroyFailInvalidWorkingDirectory.ts │ │ │ │ ├── AzureDestroyFailInvalidWorkingDirectoryL0.ts │ │ │ │ ├── AzureDestroySuccessAdditionalArgsWithAutoApprove.ts │ │ │ │ ├── AzureDestroySuccessAdditionalArgsWithAutoApproveL0.ts │ │ │ │ ├── AzureDestroySuccessAdditionalArgsWithoutAutoApprove.ts │ │ │ │ ├── AzureDestroySuccessAdditionalArgsWithoutAutoApproveL0.ts │ │ │ │ ├── AzureDestroySuccessNoAdditionalArgs.ts │ │ │ │ └── AzureDestroySuccessNoAdditionalArgsL0.ts │ │ │ └── GCP │ │ │ │ ├── GCPDestroyFailInvalidWorkingDirectory.ts │ │ │ │ ├── GCPDestroyFailInvalidWorkingDirectoryL0.ts │ │ │ │ ├── GCPDestroySuccessAdditionalArgsWithAutoApprove.ts │ │ │ │ ├── GCPDestroySuccessAdditionalArgsWithAutoApproveL0.ts │ │ │ │ ├── GCPDestroySuccessAdditionalArgsWithoutAutoApprove.ts │ │ │ │ ├── GCPDestroySuccessAdditionalArgsWithoutAutoApproveL0.ts │ │ │ │ ├── GCPDestroySuccessNoAdditionalArgs.ts │ │ │ │ └── GCPDestroySuccessNoAdditionalArgsL0.ts │ │ ├── InitTests │ │ │ ├── AWS │ │ │ │ ├── AWSInitFailInvalidWorkingDirectory.ts │ │ │ │ ├── AWSInitFailInvalidWorkingDirectoryL0.ts │ │ │ │ ├── AWSInitSuccessAdditionalArgs.ts │ │ │ │ ├── AWSInitSuccessAdditionalArgsL0.ts │ │ │ │ ├── AWSInitSuccessEmptyWorkingDir.ts │ │ │ │ ├── AWSInitSuccessEmptyWorkingDirL0.ts │ │ │ │ ├── AWSInitSuccessNoAdditionalArgs.ts │ │ │ │ └── AWSInitSuccessNoAdditionalArgsL0.ts │ │ │ ├── Azure │ │ │ │ ├── AzureInitFailInvalidWorkingDirectory.ts │ │ │ │ ├── AzureInitFailInvalidWorkingDirectoryL0.ts │ │ │ │ ├── AzureInitSuccessAdditionalArgs.ts │ │ │ │ ├── AzureInitSuccessAdditionalArgsL0.ts │ │ │ │ ├── AzureInitSuccessEmptyWorkingDir.ts │ │ │ │ ├── AzureInitSuccessEmptyWorkingDirL0.ts │ │ │ │ ├── AzureInitSuccessNoAdditionalArgs.ts │ │ │ │ └── AzureInitSuccessNoAdditionalArgsL0.ts │ │ │ └── GCP │ │ │ │ ├── GCPInitFailInvalidWorkingDirectory.ts │ │ │ │ ├── GCPInitFailInvalidWorkingDirectoryL0.ts │ │ │ │ ├── GCPInitSuccessAdditionalArgs.ts │ │ │ │ ├── GCPInitSuccessAdditionalArgsL0.ts │ │ │ │ ├── GCPInitSuccessEmptyWorkingDir.ts │ │ │ │ ├── GCPInitSuccessEmptyWorkingDirL0.ts │ │ │ │ ├── GCPInitSuccessNoAdditionalArgs.ts │ │ │ │ └── GCPInitSuccessNoAdditionalArgsL0.ts │ │ ├── L0.ts │ │ ├── L0CompareVersions.ts │ │ ├── MultipleProviderTests │ │ │ ├── MultipleProviderWarning.ts │ │ │ ├── MultipleProviderWarningL0.ts │ │ │ ├── SingleProviderNoWarning.ts │ │ │ └── SingleProviderNoWarningL0.ts │ │ ├── PlanTests │ │ │ ├── AWS │ │ │ │ ├── AWSPlanFailEmptyWorkingDirectory.ts │ │ │ │ ├── AWSPlanFailEmptyWorkingDirectoryL0.ts │ │ │ │ ├── AWSPlanFailInvalidWorkingDirectory.ts │ │ │ │ ├── AWSPlanFailInvalidWorkingDirectoryL0.ts │ │ │ │ ├── AWSPlanSuccessAdditionalArgs.ts │ │ │ │ ├── AWSPlanSuccessAdditionalArgsL0.ts │ │ │ │ ├── AWSPlanSuccessNoAdditionalArgs.ts │ │ │ │ └── AWSPlanSuccessNoAdditionalArgsL0.ts │ │ │ ├── Azure │ │ │ │ ├── AzurePlanFailEmptyWorkingDirectory.ts │ │ │ │ ├── AzurePlanFailEmptyWorkingDirectoryL0.ts │ │ │ │ ├── AzurePlanFailInvalidWorkingDirectory.ts │ │ │ │ ├── AzurePlanFailInvalidWorkingDirectoryL0.ts │ │ │ │ ├── AzurePlanSuccessAdditionalArgs.ts │ │ │ │ ├── AzurePlanSuccessAdditionalArgsL0.ts │ │ │ │ ├── AzurePlanSuccessNoAdditionalArgs.ts │ │ │ │ └── AzurePlanSuccessNoAdditionalArgsL0.ts │ │ │ └── GCP │ │ │ │ ├── GCPPlanFailEmptyWorkingDirectory.ts │ │ │ │ ├── GCPPlanFailEmptyWorkingDirectoryL0.ts │ │ │ │ ├── GCPPlanFailInvalidWorkingDirectory.ts │ │ │ │ ├── GCPPlanFailInvalidWorkingDirectoryL0.ts │ │ │ │ ├── GCPPlanSuccessAdditionalArgs.ts │ │ │ │ ├── GCPPlanSuccessAdditionalArgsL0.ts │ │ │ │ ├── GCPPlanSuccessNoAdditionalArgs.ts │ │ │ │ └── GCPPlanSuccessNoAdditionalArgsL0.ts │ │ ├── ValidateTests │ │ │ ├── AWS │ │ │ │ ├── AWSValidateFailInvalidWorkingDirectory.ts │ │ │ │ ├── AWSValidateFailInvalidWorkingDirectoryL0.ts │ │ │ │ ├── AWSValidateSuccessAdditionalArgs.ts │ │ │ │ ├── AWSValidateSuccessAdditionalArgsL0.ts │ │ │ │ ├── AWSValidateSuccessEmptyWorkingDir.ts │ │ │ │ ├── AWSValidateSuccessEmptyWorkingDirL0.ts │ │ │ │ ├── AWSValidateSuccessNoAdditionalArgs.ts │ │ │ │ └── AWSValidateSuccessNoAdditionalArgsL0.ts │ │ │ ├── Azure │ │ │ │ ├── AzureValidateFailInvalidWorkingDirectory.ts │ │ │ │ ├── AzureValidateFailInvalidWorkingDirectoryL0.ts │ │ │ │ ├── AzureValidateSuccessAdditionalArgs.ts │ │ │ │ ├── AzureValidateSuccessAdditionalArgsL0.ts │ │ │ │ ├── AzureValidateSuccessEmptyWorkingDir.ts │ │ │ │ ├── AzureValidateSuccessEmptyWorkingDirL0.ts │ │ │ │ ├── AzureValidateSuccessNoAdditionalArgs.ts │ │ │ │ └── AzureValidateSuccessNoAdditionalArgsL0.ts │ │ │ └── GCP │ │ │ │ ├── GCPValidateFailInvalidWorkingDirectory.ts │ │ │ │ ├── GCPValidateFailInvalidWorkingDirectoryL0.ts │ │ │ │ ├── GCPValidateSuccessAdditionalArgs.ts │ │ │ │ ├── GCPValidateSuccessAdditionalArgsL0.ts │ │ │ │ ├── GCPValidateSuccessEmptyWorkingDir.ts │ │ │ │ ├── GCPValidateSuccessEmptyWorkingDirL0.ts │ │ │ │ ├── GCPValidateSuccessNoAdditionalArgs.ts │ │ │ │ └── GCPValidateSuccessNoAdditionalArgsL0.ts │ │ ├── package-lock.json │ │ └── package.json │ ├── ThirdPartyNotices.txt │ ├── icon.png │ ├── icon.svg │ ├── make.json │ ├── package-lock.json │ ├── package.json │ ├── src │ │ ├── aws-terraform-command-handler.ts │ │ ├── azure-terraform-command-handler.ts │ │ ├── base-terraform-command-handler.ts │ │ ├── gcp-terraform-command-handler.ts │ │ ├── index.ts │ │ ├── parent-handler.ts │ │ ├── terraform-commands.ts │ │ └── terraform.ts │ ├── task.json │ ├── task.loc.json │ └── tsconfig.json │ ├── TerraformTaskV4 │ ├── README.md │ ├── Strings │ │ └── resources.resjson │ │ │ └── en-US │ │ │ └── resources.resjson │ ├── Tests │ │ ├── ApplyTests │ │ │ ├── AWS │ │ │ │ ├── AWSApplyFailEmptyWorkingDirectory.ts │ │ │ │ ├── AWSApplyFailEmptyWorkingDirectoryL0.ts │ │ │ │ ├── AWSApplyFailInvalidWorkingDirectory.ts │ │ │ │ ├── AWSApplyFailInvalidWorkingDirectoryL0.ts │ │ │ │ ├── AWSApplySuccessAdditionalArgsWithAutoApprove.ts │ │ │ │ ├── AWSApplySuccessAdditionalArgsWithAutoApproveL0.ts │ │ │ │ ├── AWSApplySuccessAdditionalArgsWithoutAutoApprove.ts │ │ │ │ ├── AWSApplySuccessAdditionalArgsWithoutAutoApproveL0.ts │ │ │ │ ├── AWSApplySuccessNoAdditionalArgs.ts │ │ │ │ └── AWSApplySuccessNoAdditionalArgsL0.ts │ │ │ ├── Azure │ │ │ │ ├── AzureApplyFailEmptyWorkingDirectory.ts │ │ │ │ ├── AzureApplyFailEmptyWorkingDirectoryL0.ts │ │ │ │ ├── AzureApplyFailInvalidWorkingDirectory.ts │ │ │ │ ├── AzureApplyFailInvalidWorkingDirectoryL0.ts │ │ │ │ ├── AzureApplySuccessAdditionalArgsWithAutoApprove.ts │ │ │ │ ├── AzureApplySuccessAdditionalArgsWithAutoApproveL0.ts │ │ │ │ ├── AzureApplySuccessAdditionalArgsWithoutAutoApprove.ts │ │ │ │ ├── AzureApplySuccessAdditionalArgsWithoutAutoApproveL0.ts │ │ │ │ ├── AzureApplySuccessAuthenticationSchemeManagedServiceIdentity.ts │ │ │ │ ├── AzureApplySuccessAuthenticationSchemeManagedServiceIdentityL0.ts │ │ │ │ ├── AzureApplySuccessAuthenticationSchemeWorkloadIdentityFederation.ts │ │ │ │ ├── AzureApplySuccessAuthenticationSchemeWorkloadIdentityFederationL0.ts │ │ │ │ ├── AzureApplySuccessNoAdditionalArgs.ts │ │ │ │ └── AzureApplySuccessNoAdditionalArgsL0.ts │ │ │ └── GCP │ │ │ │ ├── GCPApplyFailEmptyWorkingDirectory.ts │ │ │ │ ├── GCPApplyFailEmptyWorkingDirectoryL0.ts │ │ │ │ ├── GCPApplyFailInvalidWorkingDirectory.ts │ │ │ │ ├── GCPApplyFailInvalidWorkingDirectoryL0.ts │ │ │ │ ├── GCPApplySuccessAdditionalArgsWithAutoApprove.ts │ │ │ │ ├── GCPApplySuccessAdditionalArgsWithAutoApproveL0.ts │ │ │ │ ├── GCPApplySuccessAdditionalArgsWithoutAutoApprove.ts │ │ │ │ ├── GCPApplySuccessAdditionalArgsWithoutAutoApproveL0.ts │ │ │ │ ├── GCPApplySuccessNoAdditionalArgs.ts │ │ │ │ └── GCPApplySuccessNoAdditionalArgsL0.ts │ │ ├── DestroyTests │ │ │ ├── AWS │ │ │ │ ├── AWSDestroyFailInvalidWorkingDirectory.ts │ │ │ │ ├── AWSDestroyFailInvalidWorkingDirectoryL0.ts │ │ │ │ ├── AWSDestroySuccessAdditionalArgsWithAutoApprove.ts │ │ │ │ ├── AWSDestroySuccessAdditionalArgsWithAutoApproveL0.ts │ │ │ │ ├── AWSDestroySuccessAdditionalArgsWithoutAutoApprove.ts │ │ │ │ ├── AWSDestroySuccessAdditionalArgsWithoutAutoApproveL0.ts │ │ │ │ ├── AWSDestroySuccessNoAdditionalArgs.ts │ │ │ │ └── AWSDestroySuccessNoAdditionalArgsL0.ts │ │ │ ├── Azure │ │ │ │ ├── AzureDestroyFailInvalidWorkingDirectory.ts │ │ │ │ ├── AzureDestroyFailInvalidWorkingDirectoryL0.ts │ │ │ │ ├── AzureDestroySuccessAdditionalArgsWithAutoApprove.ts │ │ │ │ ├── AzureDestroySuccessAdditionalArgsWithAutoApproveL0.ts │ │ │ │ ├── AzureDestroySuccessAdditionalArgsWithoutAutoApprove.ts │ │ │ │ ├── AzureDestroySuccessAdditionalArgsWithoutAutoApproveL0.ts │ │ │ │ ├── AzureDestroySuccessNoAdditionalArgs.ts │ │ │ │ └── AzureDestroySuccessNoAdditionalArgsL0.ts │ │ │ └── GCP │ │ │ │ ├── GCPDestroyFailInvalidWorkingDirectory.ts │ │ │ │ ├── GCPDestroyFailInvalidWorkingDirectoryL0.ts │ │ │ │ ├── GCPDestroySuccessAdditionalArgsWithAutoApprove.ts │ │ │ │ ├── GCPDestroySuccessAdditionalArgsWithAutoApproveL0.ts │ │ │ │ ├── GCPDestroySuccessAdditionalArgsWithoutAutoApprove.ts │ │ │ │ ├── GCPDestroySuccessAdditionalArgsWithoutAutoApproveL0.ts │ │ │ │ ├── GCPDestroySuccessNoAdditionalArgs.ts │ │ │ │ └── GCPDestroySuccessNoAdditionalArgsL0.ts │ │ ├── InitTests │ │ │ ├── AWS │ │ │ │ ├── AWSInitFailInvalidWorkingDirectory.ts │ │ │ │ ├── AWSInitFailInvalidWorkingDirectoryL0.ts │ │ │ │ ├── AWSInitSuccessAdditionalArgs.ts │ │ │ │ ├── AWSInitSuccessAdditionalArgsL0.ts │ │ │ │ ├── AWSInitSuccessEmptyWorkingDir.ts │ │ │ │ ├── AWSInitSuccessEmptyWorkingDirL0.ts │ │ │ │ ├── AWSInitSuccessNoAdditionalArgs.ts │ │ │ │ └── AWSInitSuccessNoAdditionalArgsL0.ts │ │ │ ├── Azure │ │ │ │ ├── AzureInitFailInvalidWorkingDirectory.ts │ │ │ │ ├── AzureInitFailInvalidWorkingDirectoryL0.ts │ │ │ │ ├── AzureInitSuccessAdditionalArgs.ts │ │ │ │ ├── AzureInitSuccessAdditionalArgsL0.ts │ │ │ │ ├── AzureInitSuccessAuthenticationSchemeManagedServiceIdentity.ts │ │ │ │ ├── AzureInitSuccessAuthenticationSchemeManagedServiceIdentityAndDefaultSettings.ts │ │ │ │ ├── AzureInitSuccessAuthenticationSchemeManagedServiceIdentityAndDefaultSettingsL0.ts │ │ │ │ ├── AzureInitSuccessAuthenticationSchemeManagedServiceIdentityL0.ts │ │ │ │ ├── AzureInitSuccessAuthenticationSchemeWorkloadIdentityFederation.ts │ │ │ │ ├── AzureInitSuccessAuthenticationSchemeWorkloadIdentityFederationAndDefaultSettings.ts │ │ │ │ ├── AzureInitSuccessAuthenticationSchemeWorkloadIdentityFederationAndDefaultSettingsL0.ts │ │ │ │ ├── AzureInitSuccessAuthenticationSchemeWorkloadIdentityFederationL0.ts │ │ │ │ ├── AzureInitSuccessEmptyWorkingDir.ts │ │ │ │ ├── AzureInitSuccessEmptyWorkingDirL0.ts │ │ │ │ ├── AzureInitSuccessLowerCaseAuthenticationScheme.ts │ │ │ │ ├── AzureInitSuccessLowerCaseAuthenticationSchemeL0.ts │ │ │ │ ├── AzureInitSuccessMalformedAuthenticationScheme.ts │ │ │ │ ├── AzureInitSuccessMalformedAuthenticationSchemeL0.ts │ │ │ │ ├── AzureInitSuccessMissingAuthenticationScheme.ts │ │ │ │ ├── AzureInitSuccessMissingAuthenticationSchemeL0.ts │ │ │ │ ├── AzureInitSuccessNoAdditionalArgs.ts │ │ │ │ ├── AzureInitSuccessNoAdditionalArgsAndDefaultSettings.ts │ │ │ │ ├── AzureInitSuccessNoAdditionalArgsAndDefaultSettingsL0.ts │ │ │ │ └── AzureInitSuccessNoAdditionalArgsL0.ts │ │ │ └── GCP │ │ │ │ ├── GCPInitFailInvalidWorkingDirectory.ts │ │ │ │ ├── GCPInitFailInvalidWorkingDirectoryL0.ts │ │ │ │ ├── GCPInitSuccessAdditionalArgs.ts │ │ │ │ ├── GCPInitSuccessAdditionalArgsL0.ts │ │ │ │ ├── GCPInitSuccessEmptyWorkingDir.ts │ │ │ │ ├── GCPInitSuccessEmptyWorkingDirL0.ts │ │ │ │ ├── GCPInitSuccessNoAdditionalArgs.ts │ │ │ │ └── GCPInitSuccessNoAdditionalArgsL0.ts │ │ ├── L0.ts │ │ ├── L0CompareVersions.ts │ │ ├── MultipleProviderTests │ │ │ ├── MultipleProviderWarning.ts │ │ │ ├── MultipleProviderWarningL0.ts │ │ │ ├── SingleProviderNoWarning.ts │ │ │ └── SingleProviderNoWarningL0.ts │ │ ├── PlanTests │ │ │ ├── AWS │ │ │ │ ├── AWSPlanFailEmptyWorkingDirectory.ts │ │ │ │ ├── AWSPlanFailEmptyWorkingDirectoryL0.ts │ │ │ │ ├── AWSPlanFailInvalidWorkingDirectory.ts │ │ │ │ ├── AWSPlanFailInvalidWorkingDirectoryL0.ts │ │ │ │ ├── AWSPlanSuccessAdditionalArgs.ts │ │ │ │ ├── AWSPlanSuccessAdditionalArgsL0.ts │ │ │ │ ├── AWSPlanSuccessNoAdditionalArgs.ts │ │ │ │ └── AWSPlanSuccessNoAdditionalArgsL0.ts │ │ │ ├── Azure │ │ │ │ ├── AzurePlanFailEmptyWorkingDirectory.ts │ │ │ │ ├── AzurePlanFailEmptyWorkingDirectoryL0.ts │ │ │ │ ├── AzurePlanFailInvalidWorkingDirectory.ts │ │ │ │ ├── AzurePlanFailInvalidWorkingDirectoryL0.ts │ │ │ │ ├── AzurePlanSuccessAdditionalArgs.ts │ │ │ │ ├── AzurePlanSuccessAdditionalArgsL0.ts │ │ │ │ ├── AzurePlanSuccessNoAdditionalArgs.ts │ │ │ │ └── AzurePlanSuccessNoAdditionalArgsL0.ts │ │ │ └── GCP │ │ │ │ ├── GCPPlanFailEmptyWorkingDirectory.ts │ │ │ │ ├── GCPPlanFailEmptyWorkingDirectoryL0.ts │ │ │ │ ├── GCPPlanFailInvalidWorkingDirectory.ts │ │ │ │ ├── GCPPlanFailInvalidWorkingDirectoryL0.ts │ │ │ │ ├── GCPPlanSuccessAdditionalArgs.ts │ │ │ │ ├── GCPPlanSuccessAdditionalArgsL0.ts │ │ │ │ ├── GCPPlanSuccessNoAdditionalArgs.ts │ │ │ │ └── GCPPlanSuccessNoAdditionalArgsL0.ts │ │ ├── ValidateTests │ │ │ ├── AWS │ │ │ │ ├── AWSValidateFailInvalidWorkingDirectory.ts │ │ │ │ ├── AWSValidateFailInvalidWorkingDirectoryL0.ts │ │ │ │ ├── AWSValidateSuccessAdditionalArgs.ts │ │ │ │ ├── AWSValidateSuccessAdditionalArgsL0.ts │ │ │ │ ├── AWSValidateSuccessEmptyWorkingDir.ts │ │ │ │ ├── AWSValidateSuccessEmptyWorkingDirL0.ts │ │ │ │ ├── AWSValidateSuccessNoAdditionalArgs.ts │ │ │ │ └── AWSValidateSuccessNoAdditionalArgsL0.ts │ │ │ ├── Azure │ │ │ │ ├── AzureValidateFailInvalidWorkingDirectory.ts │ │ │ │ ├── AzureValidateFailInvalidWorkingDirectoryL0.ts │ │ │ │ ├── AzureValidateSuccessAdditionalArgs.ts │ │ │ │ ├── AzureValidateSuccessAdditionalArgsL0.ts │ │ │ │ ├── AzureValidateSuccessEmptyWorkingDir.ts │ │ │ │ ├── AzureValidateSuccessEmptyWorkingDirL0.ts │ │ │ │ ├── AzureValidateSuccessNoAdditionalArgs.ts │ │ │ │ └── AzureValidateSuccessNoAdditionalArgsL0.ts │ │ │ └── GCP │ │ │ │ ├── GCPValidateFailInvalidWorkingDirectory.ts │ │ │ │ ├── GCPValidateFailInvalidWorkingDirectoryL0.ts │ │ │ │ ├── GCPValidateSuccessAdditionalArgs.ts │ │ │ │ ├── GCPValidateSuccessAdditionalArgsL0.ts │ │ │ │ ├── GCPValidateSuccessEmptyWorkingDir.ts │ │ │ │ ├── GCPValidateSuccessEmptyWorkingDirL0.ts │ │ │ │ ├── GCPValidateSuccessNoAdditionalArgs.ts │ │ │ │ └── GCPValidateSuccessNoAdditionalArgsL0.ts │ │ ├── package-lock.json │ │ └── package.json │ ├── ThirdPartyNotices.txt │ ├── icon.png │ ├── icon.svg │ ├── make.json │ ├── package-lock.json │ ├── package.json │ ├── src │ │ ├── aws-terraform-command-handler.ts │ │ ├── azure-terraform-command-handler.ts │ │ ├── base-terraform-command-handler.ts │ │ ├── gcp-terraform-command-handler.ts │ │ ├── id-token-generator.ts │ │ ├── index.ts │ │ ├── oci-terraform-command-handler.ts │ │ ├── parent-handler.ts │ │ ├── terraform-commands.ts │ │ └── terraform.ts │ ├── task.json │ └── tsconfig.json │ └── TerraformTaskV5 │ ├── README.md │ ├── Strings │ └── resources.resjson │ │ └── en-US │ │ └── resources.resjson │ ├── Tests │ ├── ApplyTests │ │ ├── AWS │ │ │ ├── AWSApplyFailEmptyWorkingDirectory.ts │ │ │ ├── AWSApplyFailEmptyWorkingDirectoryL0.ts │ │ │ ├── AWSApplyFailInvalidWorkingDirectory.ts │ │ │ ├── AWSApplyFailInvalidWorkingDirectoryL0.ts │ │ │ ├── AWSApplySuccessAdditionalArgsWithAutoApprove.ts │ │ │ ├── AWSApplySuccessAdditionalArgsWithAutoApproveL0.ts │ │ │ ├── AWSApplySuccessAdditionalArgsWithoutAutoApprove.ts │ │ │ ├── AWSApplySuccessAdditionalArgsWithoutAutoApproveL0.ts │ │ │ ├── AWSApplySuccessNoAdditionalArgs.ts │ │ │ └── AWSApplySuccessNoAdditionalArgsL0.ts │ │ ├── Azure │ │ │ ├── AzureApplyFailEmptyWorkingDirectory.ts │ │ │ ├── AzureApplyFailEmptyWorkingDirectoryL0.ts │ │ │ ├── AzureApplyFailInvalidWorkingDirectory.ts │ │ │ ├── AzureApplyFailInvalidWorkingDirectoryL0.ts │ │ │ ├── AzureApplySuccessAdditionalArgsWithAutoApprove.ts │ │ │ ├── AzureApplySuccessAdditionalArgsWithAutoApproveL0.ts │ │ │ ├── AzureApplySuccessAdditionalArgsWithoutAutoApprove.ts │ │ │ ├── AzureApplySuccessAdditionalArgsWithoutAutoApproveL0.ts │ │ │ ├── AzureApplySuccessAuthenticationSchemeManagedServiceIdentity.ts │ │ │ ├── AzureApplySuccessAuthenticationSchemeManagedServiceIdentityL0.ts │ │ │ ├── AzureApplySuccessAuthenticationSchemeWorkloadIdentityFederation.ts │ │ │ ├── AzureApplySuccessAuthenticationSchemeWorkloadIdentityFederationL0.ts │ │ │ ├── AzureApplySuccessNoAdditionalArgs.ts │ │ │ └── AzureApplySuccessNoAdditionalArgsL0.ts │ │ └── GCP │ │ │ ├── GCPApplyFailEmptyWorkingDirectory.ts │ │ │ ├── GCPApplyFailEmptyWorkingDirectoryL0.ts │ │ │ ├── GCPApplyFailInvalidWorkingDirectory.ts │ │ │ ├── GCPApplyFailInvalidWorkingDirectoryL0.ts │ │ │ ├── GCPApplySuccessAdditionalArgsWithAutoApprove.ts │ │ │ ├── GCPApplySuccessAdditionalArgsWithAutoApproveL0.ts │ │ │ ├── GCPApplySuccessAdditionalArgsWithoutAutoApprove.ts │ │ │ ├── GCPApplySuccessAdditionalArgsWithoutAutoApproveL0.ts │ │ │ ├── GCPApplySuccessNoAdditionalArgs.ts │ │ │ └── GCPApplySuccessNoAdditionalArgsL0.ts │ ├── DestroyTests │ │ ├── AWS │ │ │ ├── AWSDestroyFailInvalidWorkingDirectory.ts │ │ │ ├── AWSDestroyFailInvalidWorkingDirectoryL0.ts │ │ │ ├── AWSDestroySuccessAdditionalArgsWithAutoApprove.ts │ │ │ ├── AWSDestroySuccessAdditionalArgsWithAutoApproveL0.ts │ │ │ ├── AWSDestroySuccessAdditionalArgsWithoutAutoApprove.ts │ │ │ ├── AWSDestroySuccessAdditionalArgsWithoutAutoApproveL0.ts │ │ │ ├── AWSDestroySuccessNoAdditionalArgs.ts │ │ │ └── AWSDestroySuccessNoAdditionalArgsL0.ts │ │ ├── Azure │ │ │ ├── AzureDestroyFailInvalidWorkingDirectory.ts │ │ │ ├── AzureDestroyFailInvalidWorkingDirectoryL0.ts │ │ │ ├── AzureDestroySuccessAdditionalArgsWithAutoApprove.ts │ │ │ ├── AzureDestroySuccessAdditionalArgsWithAutoApproveL0.ts │ │ │ ├── AzureDestroySuccessAdditionalArgsWithoutAutoApprove.ts │ │ │ ├── AzureDestroySuccessAdditionalArgsWithoutAutoApproveL0.ts │ │ │ ├── AzureDestroySuccessNoAdditionalArgs.ts │ │ │ └── AzureDestroySuccessNoAdditionalArgsL0.ts │ │ └── GCP │ │ │ ├── GCPDestroyFailInvalidWorkingDirectory.ts │ │ │ ├── GCPDestroyFailInvalidWorkingDirectoryL0.ts │ │ │ ├── GCPDestroySuccessAdditionalArgsWithAutoApprove.ts │ │ │ ├── GCPDestroySuccessAdditionalArgsWithAutoApproveL0.ts │ │ │ ├── GCPDestroySuccessAdditionalArgsWithoutAutoApprove.ts │ │ │ ├── GCPDestroySuccessAdditionalArgsWithoutAutoApproveL0.ts │ │ │ ├── GCPDestroySuccessNoAdditionalArgs.ts │ │ │ └── GCPDestroySuccessNoAdditionalArgsL0.ts │ ├── InitTests │ │ ├── AWS │ │ │ ├── AWSInitFailInvalidWorkingDirectory.ts │ │ │ ├── AWSInitFailInvalidWorkingDirectoryL0.ts │ │ │ ├── AWSInitSuccessAdditionalArgs.ts │ │ │ ├── AWSInitSuccessAdditionalArgsL0.ts │ │ │ ├── AWSInitSuccessEmptyWorkingDir.ts │ │ │ ├── AWSInitSuccessEmptyWorkingDirL0.ts │ │ │ ├── AWSInitSuccessNoAdditionalArgs.ts │ │ │ └── AWSInitSuccessNoAdditionalArgsL0.ts │ │ ├── Azure │ │ │ ├── AzureInitFailInvalidWorkingDirectory.ts │ │ │ ├── AzureInitFailInvalidWorkingDirectoryL0.ts │ │ │ ├── AzureInitSuccessAdditionalArgs.ts │ │ │ ├── AzureInitSuccessAdditionalArgsL0.ts │ │ │ ├── AzureInitSuccessAuthenticationSchemeManagedServiceIdentity.ts │ │ │ ├── AzureInitSuccessAuthenticationSchemeManagedServiceIdentityAndDefaultSettings.ts │ │ │ ├── AzureInitSuccessAuthenticationSchemeManagedServiceIdentityAndDefaultSettingsL0.ts │ │ │ ├── AzureInitSuccessAuthenticationSchemeManagedServiceIdentityL0.ts │ │ │ ├── AzureInitSuccessAuthenticationSchemeWorkloadIdentityFederation.ts │ │ │ ├── AzureInitSuccessAuthenticationSchemeWorkloadIdentityFederationAndCLIFlags.ts │ │ │ ├── AzureInitSuccessAuthenticationSchemeWorkloadIdentityFederationAndCLIFlagsL0.ts │ │ │ ├── AzureInitSuccessAuthenticationSchemeWorkloadIdentityFederationAndDefaultSettings.ts │ │ │ ├── AzureInitSuccessAuthenticationSchemeWorkloadIdentityFederationAndDefaultSettingsL0.ts │ │ │ ├── AzureInitSuccessAuthenticationSchemeWorkloadIdentityFederationAndIDTokenFallback.ts │ │ │ ├── AzureInitSuccessAuthenticationSchemeWorkloadIdentityFederationAndIDTokenFallbackL0.ts │ │ │ ├── AzureInitSuccessAuthenticationSchemeWorkloadIdentityFederationL0.ts │ │ │ ├── AzureInitSuccessEmptyWorkingDir.ts │ │ │ ├── AzureInitSuccessEmptyWorkingDirL0.ts │ │ │ ├── AzureInitSuccessLowerCaseAuthenticationScheme.ts │ │ │ ├── AzureInitSuccessLowerCaseAuthenticationSchemeL0.ts │ │ │ ├── AzureInitSuccessMalformedAuthenticationScheme.ts │ │ │ ├── AzureInitSuccessMalformedAuthenticationSchemeL0.ts │ │ │ ├── AzureInitSuccessMissingAuthenticationScheme.ts │ │ │ ├── AzureInitSuccessMissingAuthenticationSchemeL0.ts │ │ │ ├── AzureInitSuccessNoAdditionalArgs.ts │ │ │ ├── AzureInitSuccessNoAdditionalArgsAndDefaultSettings.ts │ │ │ ├── AzureInitSuccessNoAdditionalArgsAndDefaultSettingsL0.ts │ │ │ └── AzureInitSuccessNoAdditionalArgsL0.ts │ │ └── GCP │ │ │ ├── GCPInitFailInvalidWorkingDirectory.ts │ │ │ ├── GCPInitFailInvalidWorkingDirectoryL0.ts │ │ │ ├── GCPInitSuccessAdditionalArgs.ts │ │ │ ├── GCPInitSuccessAdditionalArgsL0.ts │ │ │ ├── GCPInitSuccessEmptyWorkingDir.ts │ │ │ ├── GCPInitSuccessEmptyWorkingDirL0.ts │ │ │ ├── GCPInitSuccessNoAdditionalArgs.ts │ │ │ └── GCPInitSuccessNoAdditionalArgsL0.ts │ ├── L0.ts │ ├── L0CompareVersions.ts │ ├── MultipleProviderTests │ │ ├── MultipleProviderWarning.ts │ │ ├── MultipleProviderWarningL0.ts │ │ ├── SingleProviderNoWarning.ts │ │ └── SingleProviderNoWarningL0.ts │ ├── PlanTests │ │ ├── AWS │ │ │ ├── AWSPlanFailEmptyWorkingDirectory.ts │ │ │ ├── AWSPlanFailEmptyWorkingDirectoryL0.ts │ │ │ ├── AWSPlanFailInvalidWorkingDirectory.ts │ │ │ ├── AWSPlanFailInvalidWorkingDirectoryL0.ts │ │ │ ├── AWSPlanSuccessAdditionalArgs.ts │ │ │ ├── AWSPlanSuccessAdditionalArgsL0.ts │ │ │ ├── AWSPlanSuccessNoAdditionalArgs.ts │ │ │ └── AWSPlanSuccessNoAdditionalArgsL0.ts │ │ ├── Azure │ │ │ ├── AzurePlanFailEmptyWorkingDirectory.ts │ │ │ ├── AzurePlanFailEmptyWorkingDirectoryL0.ts │ │ │ ├── AzurePlanFailInvalidWorkingDirectory.ts │ │ │ ├── AzurePlanFailInvalidWorkingDirectoryL0.ts │ │ │ ├── AzurePlanSuccessAdditionalArgs.ts │ │ │ ├── AzurePlanSuccessAdditionalArgsL0.ts │ │ │ ├── AzurePlanSuccessNoAdditionalArgs.ts │ │ │ └── AzurePlanSuccessNoAdditionalArgsL0.ts │ │ └── GCP │ │ │ ├── GCPPlanFailEmptyWorkingDirectory.ts │ │ │ ├── GCPPlanFailEmptyWorkingDirectoryL0.ts │ │ │ ├── GCPPlanFailInvalidWorkingDirectory.ts │ │ │ ├── GCPPlanFailInvalidWorkingDirectoryL0.ts │ │ │ ├── GCPPlanSuccessAdditionalArgs.ts │ │ │ ├── GCPPlanSuccessAdditionalArgsL0.ts │ │ │ ├── GCPPlanSuccessNoAdditionalArgs.ts │ │ │ └── GCPPlanSuccessNoAdditionalArgsL0.ts │ ├── ValidateTests │ │ ├── AWS │ │ │ ├── AWSValidateFailInvalidWorkingDirectory.ts │ │ │ ├── AWSValidateFailInvalidWorkingDirectoryL0.ts │ │ │ ├── AWSValidateSuccessAdditionalArgs.ts │ │ │ ├── AWSValidateSuccessAdditionalArgsL0.ts │ │ │ ├── AWSValidateSuccessEmptyWorkingDir.ts │ │ │ ├── AWSValidateSuccessEmptyWorkingDirL0.ts │ │ │ ├── AWSValidateSuccessNoAdditionalArgs.ts │ │ │ └── AWSValidateSuccessNoAdditionalArgsL0.ts │ │ ├── Azure │ │ │ ├── AzureValidateFailInvalidWorkingDirectory.ts │ │ │ ├── AzureValidateFailInvalidWorkingDirectoryL0.ts │ │ │ ├── AzureValidateSuccessAdditionalArgs.ts │ │ │ ├── AzureValidateSuccessAdditionalArgsL0.ts │ │ │ ├── AzureValidateSuccessEmptyWorkingDir.ts │ │ │ ├── AzureValidateSuccessEmptyWorkingDirL0.ts │ │ │ ├── AzureValidateSuccessNoAdditionalArgs.ts │ │ │ └── AzureValidateSuccessNoAdditionalArgsL0.ts │ │ └── GCP │ │ │ ├── GCPValidateFailInvalidWorkingDirectory.ts │ │ │ ├── GCPValidateFailInvalidWorkingDirectoryL0.ts │ │ │ ├── GCPValidateSuccessAdditionalArgs.ts │ │ │ ├── GCPValidateSuccessAdditionalArgsL0.ts │ │ │ ├── GCPValidateSuccessEmptyWorkingDir.ts │ │ │ ├── GCPValidateSuccessEmptyWorkingDirL0.ts │ │ │ ├── GCPValidateSuccessNoAdditionalArgs.ts │ │ │ └── GCPValidateSuccessNoAdditionalArgsL0.ts │ ├── package-lock.json │ └── package.json │ ├── ThirdPartyNotices.txt │ ├── icon.png │ ├── icon.svg │ ├── make.json │ ├── package-lock.json │ ├── package.json │ ├── src │ ├── aws-terraform-command-handler.ts │ ├── azure-terraform-command-handler.ts │ ├── base-terraform-command-handler.ts │ ├── environment-variables.ts │ ├── gcp-terraform-command-handler.ts │ ├── id-token-generator.ts │ ├── index.ts │ ├── oci-terraform-command-handler.ts │ ├── parent-handler.ts │ ├── terraform-commands.ts │ └── terraform.ts │ ├── task.json │ └── tsconfig.json ├── azure-devops-extension.json ├── configs ├── dev.json ├── release.json └── test.json ├── images ├── 1_AWS_service_endpoint.PNG ├── 2_GCP_service_endpoint.PNG ├── 3_Terraform_tool_installer_search.PNG ├── 4_Terraform_tool_installer_inputs.PNG ├── 5_Terraform_search.PNG ├── 6_Terraform_all_inputs.PNG ├── 7_Terraform_plan_apply_destroy.png ├── 8_OCI_service_endpoint.PNG └── icon.png ├── overview.md ├── package-lock.json ├── package.json ├── temp.js ├── tsconfig.json └── webpack.config.js /.github/workflows/unit-test.yml: -------------------------------------------------------------------------------- 1 | --- 2 | name: Unit Testing for TerraformTaskV4 3 | on: 4 | pull_request: 5 | branches: 6 | - main 7 | push: 8 | branches: 9 | - main 10 | workflow_dispatch: 11 | 12 | jobs: 13 | unit-test-v4: 14 | name: Unit Test V4 Task 15 | runs-on: ubuntu-latest 16 | steps: 17 | - name: Checkout 18 | uses: actions/checkout@v2 19 | - name: Run Unit Tests 20 | run: | 21 | cd Tasks/TerraformTask/TerraformTaskV4 22 | npm install -include=dev 23 | npm test 24 | unit-test-v5: 25 | name: Unit Test V5 Task 26 | runs-on: ubuntu-latest 27 | steps: 28 | - name: Checkout 29 | uses: actions/checkout@v2 30 | - name: Run Unit Tests 31 | run: | 32 | cd Tasks/TerraformTask/TerraformTaskV5 33 | npm install -include=dev 34 | npm test 35 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | build 3 | Tasks/**/*.js 4 | .taskkey 5 | configs/self.json 6 | *.vsix 7 | -------------------------------------------------------------------------------- /CODE_OF_CONDUCT.md: -------------------------------------------------------------------------------- 1 | # Microsoft Open Source Code of Conduct 2 | 3 | This project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/). 4 | 5 | Resources: 6 | 7 | - [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/) 8 | - [Microsoft Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) 9 | - Contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with questions or concerns 10 | -------------------------------------------------------------------------------- /SUPPORT.md: -------------------------------------------------------------------------------- 1 | # Support 2 | 3 | ## How to file issues and get help 4 | 5 | This project uses GitHub Issues to track bugs and feature requests. Please search the existing 6 | issues before filing new issues to avoid duplicates. For new issues, file your bug or 7 | feature request as a new Issue. 8 | 9 | 10 | ## Microsoft Support Policy 11 | 12 | Support for this **PROJECT or PRODUCT** is limited to the resources listed above. 13 | -------------------------------------------------------------------------------- /Tasks/TerraformInstaller/TerraformInstallerV0/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-pipelines-terraform/10d175634d36b67da6355d7a1e1648305f1da7a3/Tasks/TerraformInstaller/TerraformInstallerV0/icon.png -------------------------------------------------------------------------------- /Tasks/TerraformInstaller/TerraformInstallerV0/make.json: -------------------------------------------------------------------------------- 1 | { 2 | } 3 | -------------------------------------------------------------------------------- /Tasks/TerraformInstaller/TerraformInstallerV0/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "terraformtask", 3 | "version": "1.0.0", 4 | "description": "", 5 | "main": "index.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1" 8 | }, 9 | "author": "", 10 | "license": "ISC", 11 | "dependencies": { 12 | "azure-pipelines-task-lib": "^3.3.1", 13 | "azure-pipelines-tool-lib": "^1.1.0", 14 | "https-proxy-agent": "^5.0.0", 15 | "node-fetch": "^2.6.7" 16 | }, 17 | "devDependencies": { 18 | "@types/mocha": "^9.1.0", 19 | "@types/node": "^10.17.0", 20 | "@types/q": "^1.5.0", 21 | "typescript": "^4.0.0" 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /Tasks/TerraformInstaller/TerraformInstallerV0/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "ES6", 4 | "module": "commonjs" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /Tasks/TerraformInstaller/TerraformInstallerV1/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-pipelines-terraform/10d175634d36b67da6355d7a1e1648305f1da7a3/Tasks/TerraformInstaller/TerraformInstallerV1/icon.png -------------------------------------------------------------------------------- /Tasks/TerraformInstaller/TerraformInstallerV1/make.json: -------------------------------------------------------------------------------- 1 | { 2 | } 3 | -------------------------------------------------------------------------------- /Tasks/TerraformInstaller/TerraformInstallerV1/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "terraformtask", 3 | "version": "1.0.0", 4 | "description": "", 5 | "main": "index.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1" 8 | }, 9 | "author": "", 10 | "license": "ISC", 11 | "minimumAgentVersion": "2.144.0", 12 | "dependencies": { 13 | "azure-pipelines-task-lib": "^4.1.0", 14 | "azure-pipelines-tool-lib": "^2.0.0-preview", 15 | "https-proxy-agent": "^5.0.0", 16 | "node-fetch": "^2.6.7" 17 | }, 18 | "devDependencies": { 19 | "@types/mocha": "^9.1.0", 20 | "@types/node": "^16.11.39", 21 | "@types/q": "^1.5.0", 22 | "typescript": "^4.0.0" 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /Tasks/TerraformInstaller/TerraformInstallerV1/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "ES6", 4 | "module": "commonjs" 5 | } 6 | } 7 | -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV1/Tests/ApplyTests/AWS/AWSApplyFailEmptyWorkingDirectoryL0.ts: -------------------------------------------------------------------------------- 1 | import { TerraformCommandHandlerAWS } from './../../../src/aws-terraform-command-handler'; 2 | import tl = require('azure-pipelines-task-lib'); 3 | 4 | let terraformCommandHandlerAWS: TerraformCommandHandlerAWS = new TerraformCommandHandlerAWS(); 5 | 6 | export async function run() { 7 | try { 8 | await terraformCommandHandlerAWS.onlyApply(); 9 | } catch(error) { 10 | tl.setResult(tl.TaskResult.Failed, 'AWSApplyFailEmptyWorkingDirectoryL0 should have succeeded but failed with error.'); 11 | } 12 | } 13 | 14 | run(); -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV1/Tests/ApplyTests/AWS/AWSApplyFailInvalidWorkingDirectoryL0.ts: -------------------------------------------------------------------------------- 1 | import { TerraformCommandHandlerAWS } from './../../../src/aws-terraform-command-handler'; 2 | import tl = require('azure-pipelines-task-lib'); 3 | 4 | let terraformCommandHandlerAWS: TerraformCommandHandlerAWS = new TerraformCommandHandlerAWS(); 5 | 6 | export async function run() { 7 | try { 8 | await terraformCommandHandlerAWS.onlyApply(); 9 | } catch(error) { 10 | tl.setResult(tl.TaskResult.Failed, 'AWSApplyFailInvalidWorkingDirectoryL0 should have succeeded but failed with error.'); 11 | } 12 | } 13 | 14 | run(); -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV1/Tests/ApplyTests/AWS/AWSApplySuccessNoAdditionalArgsL0.ts: -------------------------------------------------------------------------------- 1 | import { TerraformCommandHandlerAWS } from './../../../src/aws-terraform-command-handler'; 2 | import tl = require('azure-pipelines-task-lib'); 3 | 4 | let terraformCommandHandlerAWS: TerraformCommandHandlerAWS = new TerraformCommandHandlerAWS(); 5 | 6 | export async function run() { 7 | try { 8 | const response = await terraformCommandHandlerAWS.onlyApply(); 9 | if (response === 0) { 10 | tl.setResult(tl.TaskResult.Succeeded, 'AWSApplySuccessNoAdditionalArgsL0 should have succeeded.'); 11 | } else{ 12 | tl.setResult(tl.TaskResult.Failed, 'AWSApplySuccessNoAdditionalArgsL0 should have succeeded but failed.'); 13 | } 14 | } catch(error) { 15 | tl.setResult(tl.TaskResult.Failed, 'AWSApplySuccessNoAdditionalArgsL0 should have succeeded but failed.'); 16 | } 17 | } 18 | 19 | run(); 20 | -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV1/Tests/ApplyTests/Azure/AzureApplyFailEmptyWorkingDirectoryL0.ts: -------------------------------------------------------------------------------- 1 | import { TerraformCommandHandlerAzureRM } from './../../../src/azure-terraform-command-handler'; 2 | import tl = require('azure-pipelines-task-lib'); 3 | 4 | let terraformCommandHandlerAzureRM: TerraformCommandHandlerAzureRM = new TerraformCommandHandlerAzureRM(); 5 | 6 | export async function run() { 7 | try { 8 | await terraformCommandHandlerAzureRM.onlyApply(); 9 | } catch(error) { 10 | tl.setResult(tl.TaskResult.Failed, 'AzureApplyFailEmptyWorkingDirectoryL0 should have succeeded but failed with error.'); 11 | } 12 | } 13 | 14 | run(); -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV1/Tests/ApplyTests/Azure/AzureApplyFailInvalidWorkingDirectoryL0.ts: -------------------------------------------------------------------------------- 1 | import { TerraformCommandHandlerAzureRM } from './../../../src/azure-terraform-command-handler'; 2 | import tl = require('azure-pipelines-task-lib'); 3 | 4 | let terraformCommandHandlerAzureRM: TerraformCommandHandlerAzureRM = new TerraformCommandHandlerAzureRM(); 5 | 6 | export async function run() { 7 | try { 8 | await terraformCommandHandlerAzureRM.onlyApply(); 9 | } catch(error) { 10 | tl.setResult(tl.TaskResult.Failed, 'AzureApplyFailInvalidWorkingDirectoryL0 should have succeeded but failed with error.'); 11 | } 12 | } 13 | 14 | run(); -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV1/Tests/ApplyTests/GCP/GCPApplyFailEmptyWorkingDirectoryL0.ts: -------------------------------------------------------------------------------- 1 | import { TerraformCommandHandlerGCP } from './../../../src/gcp-terraform-command-handler'; 2 | import tl = require('azure-pipelines-task-lib'); 3 | 4 | let terraformCommandHandlerGCP: TerraformCommandHandlerGCP = new TerraformCommandHandlerGCP(); 5 | 6 | export async function run() { 7 | try { 8 | await terraformCommandHandlerGCP.onlyApply(); 9 | } catch(error) { 10 | tl.setResult(tl.TaskResult.Failed, 'GCPApplyFailEmptyWorkingDirectoryL0 should have succeeded but failed with error.'); 11 | } 12 | } 13 | 14 | run(); -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV1/Tests/ApplyTests/GCP/GCPApplyFailInvalidWorkingDirectoryL0.ts: -------------------------------------------------------------------------------- 1 | import { TerraformCommandHandlerGCP } from './../../../src/gcp-terraform-command-handler'; 2 | import tl = require('azure-pipelines-task-lib'); 3 | 4 | let terraformCommandHandlerGCP: TerraformCommandHandlerGCP = new TerraformCommandHandlerGCP(); 5 | 6 | export async function run() { 7 | try { 8 | await terraformCommandHandlerGCP.onlyApply(); 9 | } catch(error) { 10 | tl.setResult(tl.TaskResult.Failed, 'GCPApplyFailInvalidWorkingDirectoryL0 should have succeeded but failed with error.'); 11 | } 12 | } 13 | 14 | run(); -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV1/Tests/ApplyTests/GCP/GCPApplySuccessNoAdditionalArgsL0.ts: -------------------------------------------------------------------------------- 1 | import { TerraformCommandHandlerGCP } from './../../../src/gcp-terraform-command-handler'; 2 | import tl = require('azure-pipelines-task-lib'); 3 | 4 | let terraformCommandHandlerGCP: TerraformCommandHandlerGCP = new TerraformCommandHandlerGCP(); 5 | 6 | export async function run() { 7 | try { 8 | const response = await terraformCommandHandlerGCP.onlyApply(); 9 | if (response === 0) { 10 | tl.setResult(tl.TaskResult.Succeeded, 'GCPApplySuccessNoAdditionalArgsL0 should have succeeded.'); 11 | } else{ 12 | tl.setResult(tl.TaskResult.Failed, 'GCPApplySuccessNoAdditionalArgsL0 should have succeeded but failed.'); 13 | } 14 | } catch(error) { 15 | tl.setResult(tl.TaskResult.Failed, 'GCPApplySuccessNoAdditionalArgsL0 should have succeeded but failed.'); 16 | } 17 | } 18 | 19 | run(); -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV1/Tests/DestroyTests/AWS/AWSDestroyFailInvalidWorkingDirectoryL0.ts: -------------------------------------------------------------------------------- 1 | import { TerraformCommandHandlerAWS } from './../../../src/aws-terraform-command-handler'; 2 | import tl = require('azure-pipelines-task-lib'); 3 | 4 | let terraformCommandHandlerAWS: TerraformCommandHandlerAWS = new TerraformCommandHandlerAWS(); 5 | 6 | export async function run() { 7 | try { 8 | await terraformCommandHandlerAWS.destroy(); 9 | } catch(error) { 10 | tl.setResult(tl.TaskResult.Failed, 'AWSDestroyFailInvalidWorkingDirectoryL0 should have succeeded but failed with error.'); 11 | } 12 | } 13 | 14 | run(); -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV1/Tests/DestroyTests/Azure/AzureDestroyFailInvalidWorkingDirectoryL0.ts: -------------------------------------------------------------------------------- 1 | import { TerraformCommandHandlerAzureRM } from './../../../src/azure-terraform-command-handler'; 2 | import tl = require('azure-pipelines-task-lib'); 3 | 4 | let terraformCommandHandlerAzureRM: TerraformCommandHandlerAzureRM = new TerraformCommandHandlerAzureRM(); 5 | 6 | export async function run() { 7 | try { 8 | await terraformCommandHandlerAzureRM.destroy(); 9 | } catch(error) { 10 | tl.setResult(tl.TaskResult.Failed, 'AzureDestroyFailInvalidWorkingDirectoryL0 should have succeeded but failed with error.'); 11 | } 12 | } 13 | 14 | run(); -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV1/Tests/DestroyTests/GCP/GCPDestroyFailInvalidWorkingDirectoryL0.ts: -------------------------------------------------------------------------------- 1 | import { TerraformCommandHandlerGCP } from './../../../src/gcp-terraform-command-handler'; 2 | import tl = require('azure-pipelines-task-lib'); 3 | 4 | let terraformCommandHandlerGCP: TerraformCommandHandlerGCP = new TerraformCommandHandlerGCP(); 5 | 6 | export async function run() { 7 | try { 8 | await terraformCommandHandlerGCP.destroy(); 9 | } catch(error) { 10 | tl.setResult(tl.TaskResult.Failed, 'GCPDestroyFailInvalidWorkingDirectoryL0 should have succeeded but failed with error.'); 11 | } 12 | } 13 | 14 | run(); -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV1/Tests/DestroyTests/GCP/GCPDestroySuccessNoAdditionalArgsL0.ts: -------------------------------------------------------------------------------- 1 | import { TerraformCommandHandlerGCP } from './../../../src/gcp-terraform-command-handler'; 2 | import tl = require('azure-pipelines-task-lib'); 3 | 4 | let terraformCommandHandlerGCP: TerraformCommandHandlerGCP = new TerraformCommandHandlerGCP(); 5 | 6 | export async function run() { 7 | try { 8 | const response = await terraformCommandHandlerGCP.destroy(); 9 | if (response === 0) { 10 | tl.setResult(tl.TaskResult.Succeeded, 'GCPDestroySuccessNoAdditionalArgsL0 should have succeeded.'); 11 | } else{ 12 | tl.setResult(tl.TaskResult.Failed, 'GCPDestroySuccessNoAdditionalArgsL0 should have succeeded but failed.'); 13 | } 14 | } catch(error) { 15 | tl.setResult(tl.TaskResult.Failed, 'GCPDestroySuccessNoAdditionalArgsL0 should have succeeded but failed.'); 16 | } 17 | } 18 | 19 | run(); -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV1/Tests/InitTests/AWS/AWSInitFailInvalidWorkingDirectoryL0.ts: -------------------------------------------------------------------------------- 1 | import { TerraformCommandHandlerAWS } from './../../../src/aws-terraform-command-handler'; 2 | import tl = require('azure-pipelines-task-lib'); 3 | 4 | let terraformCommandHandlerAWS: TerraformCommandHandlerAWS = new TerraformCommandHandlerAWS(); 5 | 6 | export async function run() { 7 | try { 8 | await terraformCommandHandlerAWS.init(); 9 | } catch(error) { 10 | tl.setResult(tl.TaskResult.Failed, 'AWSInitFailInvalidWorkingDirectoryL0 should have succeeded but failed.'); 11 | } 12 | } 13 | 14 | run(); 15 | -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV1/Tests/InitTests/AWS/AWSInitSuccessAdditionalArgsL0.ts: -------------------------------------------------------------------------------- 1 | import { TerraformCommandHandlerAWS } from './../../../src/aws-terraform-command-handler'; 2 | import tl = require('azure-pipelines-task-lib'); 3 | 4 | let terraformCommandHandlerAWS: TerraformCommandHandlerAWS = new TerraformCommandHandlerAWS(); 5 | 6 | export async function run() { 7 | try { 8 | const response = await terraformCommandHandlerAWS.init(); 9 | if (response === 0) { 10 | tl.setResult(tl.TaskResult.Succeeded, 'AWSInitSuccessAdditionalArgsL0 should have succeeded.'); 11 | } else{ 12 | tl.setResult(tl.TaskResult.Failed, 'AWSInitSuccessAdditionalArgsL0 should have succeeded but failed.'); 13 | } 14 | } catch(error) { 15 | tl.setResult(tl.TaskResult.Failed, 'AWSInitSuccessAdditionalArgsL0 should have succeeded but failed.'); 16 | } 17 | } 18 | 19 | run(); 20 | -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV1/Tests/InitTests/AWS/AWSInitSuccessEmptyWorkingDirL0.ts: -------------------------------------------------------------------------------- 1 | import { TerraformCommandHandlerAWS } from './../../../src/aws-terraform-command-handler'; 2 | import tl = require('azure-pipelines-task-lib'); 3 | 4 | let terraformCommandHandlerAWS: TerraformCommandHandlerAWS = new TerraformCommandHandlerAWS(); 5 | 6 | export async function run() { 7 | try { 8 | const response = await terraformCommandHandlerAWS.init(); 9 | if (response === 0) { 10 | tl.setResult(tl.TaskResult.Succeeded, 'AWSInitSuccessEmptyWorkingDirL0 should have succeeded.'); 11 | } else{ 12 | tl.setResult(tl.TaskResult.Failed, 'AWSInitSuccessEmptyWorkingDirL0 should have succeeded but failed.'); 13 | } 14 | } catch(error) { 15 | tl.setResult(tl.TaskResult.Failed, 'AWSInitSuccessEmptyWorkingDirL0 should have succeeded but failed.'); 16 | } 17 | } 18 | 19 | run(); 20 | -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV1/Tests/InitTests/AWS/AWSInitSuccessNoAdditionalArgsL0.ts: -------------------------------------------------------------------------------- 1 | import { TerraformCommandHandlerAWS } from './../../../src/aws-terraform-command-handler'; 2 | import tl = require('azure-pipelines-task-lib'); 3 | 4 | let terraformCommandHandlerAWS: TerraformCommandHandlerAWS = new TerraformCommandHandlerAWS(); 5 | 6 | export async function run() { 7 | try { 8 | const response = await terraformCommandHandlerAWS.init(); 9 | if (response === 0) { 10 | tl.setResult(tl.TaskResult.Succeeded, 'AWSInitSuccessNoAdditionalArgsL0 should have succeeded.'); 11 | } else{ 12 | tl.setResult(tl.TaskResult.Failed, 'AWSInitSuccessNoAdditionalArgsL0 should have succeeded but failed.'); 13 | } 14 | } catch(error) { 15 | tl.setResult(tl.TaskResult.Failed, 'AWSInitSuccessNoAdditionalArgsL0 should have succeeded but failed.'); 16 | } 17 | } 18 | 19 | run(); 20 | -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV1/Tests/InitTests/Azure/AzureInitFailInvalidWorkingDirectoryL0.ts: -------------------------------------------------------------------------------- 1 | import { TerraformCommandHandlerAzureRM } from './../../../src/azure-terraform-command-handler'; 2 | import tl = require('azure-pipelines-task-lib'); 3 | 4 | let terraformCommandHandlerAzureRM: TerraformCommandHandlerAzureRM = new TerraformCommandHandlerAzureRM(); 5 | 6 | export async function run() { 7 | try { 8 | await terraformCommandHandlerAzureRM.init(); 9 | } catch(error) { 10 | tl.setResult(tl.TaskResult.Failed, 'AzureInitFailInvalidWorkingDirectoryL0 should have succeeded but failed with error.'); 11 | } 12 | } 13 | 14 | run(); -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV1/Tests/InitTests/GCP/GCPInitFailInvalidWorkingDirectoryL0.ts: -------------------------------------------------------------------------------- 1 | import { TerraformCommandHandlerGCP } from './../../../src/gcp-terraform-command-handler'; 2 | import tl = require('azure-pipelines-task-lib'); 3 | 4 | let terraformCommandHandlerGCP: TerraformCommandHandlerGCP = new TerraformCommandHandlerGCP(); 5 | 6 | export async function run() { 7 | try { 8 | await terraformCommandHandlerGCP.init(); 9 | } catch(error) { 10 | tl.setResult(tl.TaskResult.Failed, 'GCPInitFailInvalidWorkingDirectoryL0 should have succeeded but failed.'); 11 | } 12 | } 13 | 14 | run(); 15 | -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV1/Tests/InitTests/GCP/GCPInitSuccessAdditionalArgsL0.ts: -------------------------------------------------------------------------------- 1 | import { TerraformCommandHandlerGCP } from './../../../src/gcp-terraform-command-handler'; 2 | import tl = require('azure-pipelines-task-lib'); 3 | 4 | let terraformCommandHandlerGCP: TerraformCommandHandlerGCP = new TerraformCommandHandlerGCP(); 5 | 6 | export async function run() { 7 | try { 8 | const response = await terraformCommandHandlerGCP.init(); 9 | if (response === 0) { 10 | tl.setResult(tl.TaskResult.Succeeded, 'GCPInitSuccessAdditionalArgsL0 should have succeeded.'); 11 | } else{ 12 | tl.setResult(tl.TaskResult.Failed, 'GCPInitSuccessAdditionalArgsL0 should have succeeded but failed.'); 13 | } 14 | } catch(error) { 15 | tl.setResult(tl.TaskResult.Failed, 'GCPInitSuccessAdditionalArgsL0 should have succeeded but failed.'); 16 | } 17 | } 18 | 19 | run(); -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV1/Tests/InitTests/GCP/GCPInitSuccessEmptyWorkingDirL0.ts: -------------------------------------------------------------------------------- 1 | import { TerraformCommandHandlerGCP } from './../../../src/gcp-terraform-command-handler'; 2 | import tl = require('azure-pipelines-task-lib'); 3 | 4 | let terraformCommandHandlerGCP: TerraformCommandHandlerGCP = new TerraformCommandHandlerGCP(); 5 | 6 | export async function run() { 7 | try { 8 | const response = await terraformCommandHandlerGCP.init(); 9 | if (response === 0) { 10 | tl.setResult(tl.TaskResult.Succeeded, 'GCPInitSuccessEmptyWorkingDirL0 should have succeeded.'); 11 | } else{ 12 | tl.setResult(tl.TaskResult.Failed, 'GCPInitSuccessEmptyWorkingDirL0 should have succeeded but failed.'); 13 | } 14 | } catch(error) { 15 | tl.setResult(tl.TaskResult.Failed, 'GCPInitSuccessEmptyWorkingDirL0 should have succeeded but failed.'); 16 | } 17 | } 18 | 19 | run(); -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV1/Tests/InitTests/GCP/GCPInitSuccessNoAdditionalArgsL0.ts: -------------------------------------------------------------------------------- 1 | import { TerraformCommandHandlerGCP } from './../../../src/gcp-terraform-command-handler'; 2 | import tl = require('azure-pipelines-task-lib'); 3 | 4 | let terraformCommandHandlerGCP: TerraformCommandHandlerGCP = new TerraformCommandHandlerGCP(); 5 | 6 | export async function run() { 7 | try { 8 | const response = await terraformCommandHandlerGCP.init(); 9 | if (response === 0) { 10 | tl.setResult(tl.TaskResult.Succeeded, 'GCPInitSuccessNoAdditionalArgsL0 should have succeeded.'); 11 | } else{ 12 | tl.setResult(tl.TaskResult.Failed, 'GCPInitSuccessNoAdditionalArgsL0 should have succeeded but failed.'); 13 | } 14 | } catch(error) { 15 | tl.setResult(tl.TaskResult.Failed, 'GCPInitSuccessNoAdditionalArgsL0 should have succeeded but failed.'); 16 | } 17 | } 18 | 19 | run(); -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV1/Tests/MultipleProviderTests/MultipleProviderWarningL0.ts: -------------------------------------------------------------------------------- 1 | import { TerraformCommandHandlerAzureRM } from '../../src/azure-terraform-command-handler'; 2 | import tl = require('azure-pipelines-task-lib'); 3 | 4 | let terraformCommandHandlerAzureRM: TerraformCommandHandlerAzureRM = new TerraformCommandHandlerAzureRM(); 5 | 6 | export async function run() { 7 | try { 8 | await terraformCommandHandlerAzureRM.warnIfMultipleProviders(); 9 | } catch(error) { 10 | tl.setResult(tl.TaskResult.Failed, 'MultipleProviderWarningL0 should have succeeded but failed.'); 11 | } 12 | } 13 | 14 | run(); -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV1/Tests/MultipleProviderTests/SingleProviderNoWarningL0.ts: -------------------------------------------------------------------------------- 1 | import { TerraformCommandHandlerAzureRM } from '../../src/azure-terraform-command-handler'; 2 | import tl = require('azure-pipelines-task-lib'); 3 | 4 | let terraformCommandHandlerAzureRM: TerraformCommandHandlerAzureRM = new TerraformCommandHandlerAzureRM(); 5 | 6 | export async function run() { 7 | try { 8 | await terraformCommandHandlerAzureRM.warnIfMultipleProviders(); 9 | } catch(error) { 10 | tl.setResult(tl.TaskResult.Failed, 'SingleProviderNoWarningL0 should have succeeded but failed.'); 11 | } 12 | } 13 | 14 | run(); -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV1/Tests/PlanTests/AWS/AWSPlanFailEmptyWorkingDirectoryL0.ts: -------------------------------------------------------------------------------- 1 | import { TerraformCommandHandlerAWS } from './../../../src/aws-terraform-command-handler'; 2 | import tl = require('azure-pipelines-task-lib'); 3 | 4 | let terraformCommandHandlerAWS: TerraformCommandHandlerAWS = new TerraformCommandHandlerAWS(); 5 | 6 | export async function run() { 7 | try { 8 | await terraformCommandHandlerAWS.onlyPlan(); 9 | } catch(error) { 10 | tl.setResult(tl.TaskResult.Failed, 'AWSPlanFailEmptyWorkingDirectoryL0 should have succeeded but failed with error.'); 11 | } 12 | } 13 | 14 | run(); -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV1/Tests/PlanTests/AWS/AWSPlanFailInvalidWorkingDirectoryL0.ts: -------------------------------------------------------------------------------- 1 | import { TerraformCommandHandlerAWS } from './../../../src/aws-terraform-command-handler'; 2 | import tl = require('azure-pipelines-task-lib'); 3 | 4 | let terraformCommandHandlerAWS: TerraformCommandHandlerAWS = new TerraformCommandHandlerAWS(); 5 | 6 | export async function run() { 7 | try { 8 | await terraformCommandHandlerAWS.onlyPlan(); 9 | } catch(error) { 10 | tl.setResult(tl.TaskResult.Failed, 'AWSPlanFailInvalidWorkingDirectoryL0 should have succeeded but failed with error.'); 11 | } 12 | } 13 | 14 | run(); -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV1/Tests/PlanTests/AWS/AWSPlanSuccessAdditionalArgsL0.ts: -------------------------------------------------------------------------------- 1 | import { TerraformCommandHandlerAWS } from './../../../src/aws-terraform-command-handler'; 2 | import tl = require('azure-pipelines-task-lib'); 3 | 4 | let terraformCommandHandlerAWS: TerraformCommandHandlerAWS = new TerraformCommandHandlerAWS(); 5 | 6 | export async function run() { 7 | try { 8 | const response = await terraformCommandHandlerAWS.onlyPlan(); 9 | if (response === 0) { 10 | tl.setResult(tl.TaskResult.Succeeded, 'AWSPlanSuccessAdditionalArgsL0 should have succeeded.'); 11 | } else{ 12 | tl.setResult(tl.TaskResult.Failed, 'AWSPlanSuccessAdditionalArgsL0 should have succeeded but failed.'); 13 | } 14 | } catch(error) { 15 | tl.setResult(tl.TaskResult.Failed, 'AWSPlanSuccessAdditionalArgsL0 should have succeeded but failed.'); 16 | } 17 | } 18 | 19 | run(); -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV1/Tests/PlanTests/AWS/AWSPlanSuccessNoAdditionalArgsL0.ts: -------------------------------------------------------------------------------- 1 | import { TerraformCommandHandlerAWS } from './../../../src/aws-terraform-command-handler'; 2 | import tl = require('azure-pipelines-task-lib'); 3 | 4 | let terraformCommandHandlerAWS: TerraformCommandHandlerAWS = new TerraformCommandHandlerAWS(); 5 | 6 | export async function run() { 7 | try { 8 | const response = await terraformCommandHandlerAWS.onlyPlan(); 9 | if (response === 0) { 10 | tl.setResult(tl.TaskResult.Succeeded, 'AWSPlanSuccessNoAdditionalArgsL0 should have succeeded.'); 11 | } else{ 12 | tl.setResult(tl.TaskResult.Failed, 'AWSPlanSuccessNoAdditionalArgsL0 should have succeeded but failed.'); 13 | } 14 | } catch(error) { 15 | tl.setResult(tl.TaskResult.Failed, 'AWSPlanSuccessNoAdditionalArgsL0 should have succeeded but failed.'); 16 | } 17 | } 18 | 19 | run(); -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV1/Tests/PlanTests/Azure/AzurePlanFailEmptyWorkingDirectoryL0.ts: -------------------------------------------------------------------------------- 1 | import { TerraformCommandHandlerAzureRM } from './../../../src/azure-terraform-command-handler'; 2 | import tl = require('azure-pipelines-task-lib'); 3 | 4 | let terraformCommandHandlerAzureRM: TerraformCommandHandlerAzureRM = new TerraformCommandHandlerAzureRM(); 5 | 6 | export async function run() { 7 | try { 8 | await terraformCommandHandlerAzureRM.onlyPlan(); 9 | } catch(error) { 10 | tl.setResult(tl.TaskResult.Failed, 'AzurePlanFailEmptyWorkingDirectoryL0 should have succeeded but failed with error.'); 11 | } 12 | } 13 | 14 | run(); -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV1/Tests/PlanTests/Azure/AzurePlanFailInvalidWorkingDirectoryL0.ts: -------------------------------------------------------------------------------- 1 | import { TerraformCommandHandlerAzureRM } from './../../../src/azure-terraform-command-handler'; 2 | import tl = require('azure-pipelines-task-lib'); 3 | 4 | let terraformCommandHandlerAzureRM: TerraformCommandHandlerAzureRM = new TerraformCommandHandlerAzureRM(); 5 | 6 | export async function run() { 7 | try { 8 | await terraformCommandHandlerAzureRM.onlyPlan(); 9 | } catch(error) { 10 | tl.setResult(tl.TaskResult.Failed, 'AzurePlanFailInvalidWorkingDirectoryL0 should have succeeded but failed with error.'); 11 | } 12 | } 13 | 14 | run(); -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV1/Tests/PlanTests/GCP/GCPPlanFailEmptyWorkingDirectoryL0.ts: -------------------------------------------------------------------------------- 1 | import { TerraformCommandHandlerGCP } from './../../../src/gcp-terraform-command-handler'; 2 | import tl = require('azure-pipelines-task-lib'); 3 | 4 | let terraformCommandHandlerGCP: TerraformCommandHandlerGCP = new TerraformCommandHandlerGCP(); 5 | 6 | export async function run() { 7 | try { 8 | await terraformCommandHandlerGCP.onlyPlan(); 9 | } catch(error) { 10 | tl.setResult(tl.TaskResult.Failed, 'GCPPlanFailEmptyWorkingDirectoryL0 should have succeeded but failed with error.'); 11 | } 12 | } 13 | 14 | run(); -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV1/Tests/PlanTests/GCP/GCPPlanFailInvalidWorkingDirectoryL0.ts: -------------------------------------------------------------------------------- 1 | import { TerraformCommandHandlerGCP } from './../../../src/gcp-terraform-command-handler'; 2 | import tl = require('azure-pipelines-task-lib'); 3 | 4 | let terraformCommandHandlerGCP: TerraformCommandHandlerGCP = new TerraformCommandHandlerGCP(); 5 | 6 | export async function run() { 7 | try { 8 | await terraformCommandHandlerGCP.onlyPlan(); 9 | } catch(error) { 10 | tl.setResult(tl.TaskResult.Failed, 'GCPPlanFailInvalidWorkingDirectoryL0 should have succeeded but failed with error.'); 11 | } 12 | } 13 | 14 | run(); -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV1/Tests/PlanTests/GCP/GCPPlanSuccessAdditionalArgsL0.ts: -------------------------------------------------------------------------------- 1 | import { TerraformCommandHandlerGCP } from './../../../src/gcp-terraform-command-handler'; 2 | import tl = require('azure-pipelines-task-lib'); 3 | 4 | let terraformCommandHandlerGCP: TerraformCommandHandlerGCP = new TerraformCommandHandlerGCP(); 5 | 6 | export async function run() { 7 | try { 8 | const response = await terraformCommandHandlerGCP.onlyPlan(); 9 | if (response === 0) { 10 | tl.setResult(tl.TaskResult.Succeeded, 'GCPPlanSuccessAdditionalArgsL0 should have succeeded.'); 11 | } else{ 12 | tl.setResult(tl.TaskResult.Failed, 'GCPPlanSuccessAdditionalArgsL0 should have succeeded but failed.'); 13 | } 14 | } catch(error) { 15 | tl.setResult(tl.TaskResult.Failed, 'GCPPlanSuccessAdditionalArgsL0 should have succeeded but failed.'); 16 | } 17 | } 18 | 19 | run(); -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV1/Tests/PlanTests/GCP/GCPPlanSuccessNoAdditionalArgsL0.ts: -------------------------------------------------------------------------------- 1 | import { TerraformCommandHandlerGCP } from './../../../src/gcp-terraform-command-handler'; 2 | import tl = require('azure-pipelines-task-lib'); 3 | 4 | let terraformCommandHandlerGCP: TerraformCommandHandlerGCP = new TerraformCommandHandlerGCP(); 5 | 6 | export async function run() { 7 | try { 8 | const response = await terraformCommandHandlerGCP.onlyPlan(); 9 | if (response === 0) { 10 | tl.setResult(tl.TaskResult.Succeeded, 'GCPPlanSuccessNoAdditionalArgsL0 should have succeeded.'); 11 | } else{ 12 | tl.setResult(tl.TaskResult.Failed, 'GCPPlanSuccessNoAdditionalArgsL0 should have succeeded but failed.'); 13 | } 14 | } catch(error) { 15 | tl.setResult(tl.TaskResult.Failed, 'GCPPlanSuccessNoAdditionalArgsL0 should have succeeded but failed.'); 16 | } 17 | } 18 | 19 | run(); -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV1/Tests/ValidateTests/AWS/AWSValidateFailInvalidWorkingDirectoryL0.ts: -------------------------------------------------------------------------------- 1 | import { TerraformCommandHandlerAWS } from './../../../src/aws-terraform-command-handler'; 2 | import tl = require('azure-pipelines-task-lib'); 3 | 4 | let terraformCommandHandlerAWS: TerraformCommandHandlerAWS = new TerraformCommandHandlerAWS(); 5 | 6 | export async function run() { 7 | try { 8 | await terraformCommandHandlerAWS.validate(); 9 | } catch(error) { 10 | tl.setResult(tl.TaskResult.Failed, 'AWSValidateFailInvalidWorkingDirectoryL0 should have succeeded but failed with error.'); 11 | } 12 | } 13 | 14 | run(); -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV1/Tests/ValidateTests/AWS/AWSValidateSuccessAdditionalArgs.ts: -------------------------------------------------------------------------------- 1 | import ma = require('azure-pipelines-task-lib/mock-answer'); 2 | import tmrm = require('azure-pipelines-task-lib/mock-run'); 3 | import path = require('path'); 4 | 5 | let tp = path.join(__dirname, './AWSValidateSuccessAdditionalArgsL0.js'); 6 | let tr: tmrm.TaskMockRunner = new tmrm.TaskMockRunner(tp); 7 | 8 | tr.setInput('provider', 'aws'); 9 | tr.setInput('command', 'validate'); 10 | tr.setInput('commandOptions', '-no-color'); 11 | 12 | let a: ma.TaskLibAnswers = { 13 | "which": { 14 | "terraform": "terraform" 15 | }, 16 | "checkPath": { 17 | "terraform": true 18 | }, 19 | "exec": { 20 | "terraform validate -no-color": { 21 | "code": 0, 22 | "stdout": "Executed Successfully" 23 | } 24 | } 25 | } 26 | 27 | tr.setAnswers(a); 28 | tr.run(); 29 | -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV1/Tests/ValidateTests/AWS/AWSValidateSuccessAdditionalArgsL0.ts: -------------------------------------------------------------------------------- 1 | import { TerraformCommandHandlerAWS } from './../../../src/aws-terraform-command-handler'; 2 | import tl = require('azure-pipelines-task-lib'); 3 | 4 | let terraformCommandHandlerAWS: TerraformCommandHandlerAWS = new TerraformCommandHandlerAWS(); 5 | 6 | export async function run() { 7 | try { 8 | const response = await terraformCommandHandlerAWS.validate(); 9 | if (response === 0) { 10 | tl.setResult(tl.TaskResult.Succeeded, 'AWSValidateSuccessAdditionalArgsL0 should have succeeded.'); 11 | } else{ 12 | tl.setResult(tl.TaskResult.Failed, 'AWSValidateSuccessAdditionalArgsL0 should have succeeded but failed.'); 13 | } 14 | } catch(error) { 15 | tl.setResult(tl.TaskResult.Failed, 'AWSValidateSuccessAdditionalArgsL0 should have succeeded but failed.'); 16 | } 17 | } 18 | 19 | run(); -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV1/Tests/ValidateTests/AWS/AWSValidateSuccessEmptyWorkingDir.ts: -------------------------------------------------------------------------------- 1 | import ma = require('azure-pipelines-task-lib/mock-answer'); 2 | import tmrm = require('azure-pipelines-task-lib/mock-run'); 3 | import path = require('path'); 4 | 5 | let tp = path.join(__dirname, './AWSValidateSuccessEmptyWorkingDirL0.js'); 6 | let tr: tmrm.TaskMockRunner = new tmrm.TaskMockRunner(tp); 7 | 8 | tr.setInput('provider', 'aws'); 9 | tr.setInput('command', 'validate'); 10 | tr.setInput('workingDirectory', 'DummyWorkingDirectory'); 11 | 12 | let a: ma.TaskLibAnswers = { 13 | "which": { 14 | "terraform": "terraform" 15 | }, 16 | "checkPath": { 17 | "terraform": true 18 | }, 19 | "exec": { 20 | "terraform validate": { 21 | "code": 0, 22 | "stdout": "Executed Successfully" 23 | } 24 | } 25 | } 26 | 27 | tr.setAnswers(a); 28 | tr.run(); -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV1/Tests/ValidateTests/AWS/AWSValidateSuccessNoAdditionalArgs.ts: -------------------------------------------------------------------------------- 1 | import ma = require('azure-pipelines-task-lib/mock-answer'); 2 | import tmrm = require('azure-pipelines-task-lib/mock-run'); 3 | import path = require('path'); 4 | 5 | let tp = path.join(__dirname, './AWSValidateSuccessNoAdditionalArgsL0.js'); 6 | let tr: tmrm.TaskMockRunner = new tmrm.TaskMockRunner(tp); 7 | 8 | tr.setInput('provider', 'aws'); 9 | tr.setInput('command', 'validate'); 10 | 11 | let a: ma.TaskLibAnswers = { 12 | "which": { 13 | "terraform": "terraform" 14 | }, 15 | "checkPath": { 16 | "terraform": true 17 | }, 18 | "exec": { 19 | "terraform validate": { 20 | "code": 0, 21 | "stdout": "Executed Successfully" 22 | } 23 | } 24 | } 25 | 26 | tr.setAnswers(a); 27 | tr.run(); -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV1/Tests/ValidateTests/Azure/AzureValidateFailInvalidWorkingDirectoryL0.ts: -------------------------------------------------------------------------------- 1 | import { TerraformCommandHandlerAzureRM } from './../../../src/azure-terraform-command-handler'; 2 | import tl = require('azure-pipelines-task-lib'); 3 | 4 | let terraformCommandHandlerAzureRM: TerraformCommandHandlerAzureRM = new TerraformCommandHandlerAzureRM(); 5 | 6 | export async function run() { 7 | try { 8 | await terraformCommandHandlerAzureRM.validate(); 9 | } catch(error) { 10 | tl.setResult(tl.TaskResult.Failed, 'AzureValidateFailInvalidWorkingDirectoryL0 should have succeeded but failed with error.'); 11 | } 12 | } 13 | 14 | run(); -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV1/Tests/ValidateTests/Azure/AzureValidateSuccessAdditionalArgs.ts: -------------------------------------------------------------------------------- 1 | import ma = require('azure-pipelines-task-lib/mock-answer'); 2 | import tmrm = require('azure-pipelines-task-lib/mock-run'); 3 | import path = require('path'); 4 | 5 | let tp = path.join(__dirname, './AzureValidateSuccessAdditionalArgsL0.js'); 6 | let tr: tmrm.TaskMockRunner = new tmrm.TaskMockRunner(tp); 7 | 8 | tr.setInput('provider', 'azurerm'); 9 | tr.setInput('command', 'validate'); 10 | tr.setInput('commandOptions', '-no-color'); 11 | 12 | let a: ma.TaskLibAnswers = { 13 | "which": { 14 | "terraform": "terraform" 15 | }, 16 | "checkPath": { 17 | "terraform": true 18 | }, 19 | "exec": { 20 | "terraform validate -no-color": { 21 | "code": 0, 22 | "stdout": "Executed Successfully" 23 | } 24 | } 25 | } 26 | 27 | tr.setAnswers(a); 28 | tr.run(); 29 | -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV1/Tests/ValidateTests/Azure/AzureValidateSuccessEmptyWorkingDir.ts: -------------------------------------------------------------------------------- 1 | import ma = require('azure-pipelines-task-lib/mock-answer'); 2 | import tmrm = require('azure-pipelines-task-lib/mock-run'); 3 | import path = require('path'); 4 | 5 | let tp = path.join(__dirname, './AzureValidateSuccessEmptyWorkingDirL0.js'); 6 | let tr: tmrm.TaskMockRunner = new tmrm.TaskMockRunner(tp); 7 | 8 | tr.setInput('provider', 'azurerm'); 9 | tr.setInput('command', 'validate'); 10 | tr.setInput('workingDirectory', 'DummyWorkingDirectory'); 11 | 12 | let a: ma.TaskLibAnswers = { 13 | "which": { 14 | "terraform": "terraform" 15 | }, 16 | "checkPath": { 17 | "terraform": true 18 | }, 19 | "exec": { 20 | "terraform validate": { 21 | "code": 0, 22 | "stdout": "Executed Successfully" 23 | } 24 | } 25 | } 26 | 27 | tr.setAnswers(a); 28 | tr.run(); -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV1/Tests/ValidateTests/Azure/AzureValidateSuccessNoAdditionalArgs.ts: -------------------------------------------------------------------------------- 1 | import ma = require('azure-pipelines-task-lib/mock-answer'); 2 | import tmrm = require('azure-pipelines-task-lib/mock-run'); 3 | import path = require('path'); 4 | 5 | let tp = path.join(__dirname, './AzureValidateSuccessNoAdditionalArgsL0.js'); 6 | let tr: tmrm.TaskMockRunner = new tmrm.TaskMockRunner(tp); 7 | 8 | tr.setInput('provider', 'azurerm'); 9 | tr.setInput('command', 'validate'); 10 | 11 | let a: ma.TaskLibAnswers = { 12 | "which": { 13 | "terraform": "terraform" 14 | }, 15 | "checkPath": { 16 | "terraform": true 17 | }, 18 | "exec": { 19 | "terraform validate": { 20 | "code": 0, 21 | "stdout": "Executed Successfully" 22 | } 23 | } 24 | } 25 | 26 | tr.setAnswers(a); 27 | tr.run(); -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV1/Tests/ValidateTests/GCP/GCPValidateFailInvalidWorkingDirectoryL0.ts: -------------------------------------------------------------------------------- 1 | import { TerraformCommandHandlerGCP } from './../../../src/gcp-terraform-command-handler'; 2 | import tl = require('azure-pipelines-task-lib'); 3 | 4 | let terraformCommandHandlerGCP: TerraformCommandHandlerGCP = new TerraformCommandHandlerGCP(); 5 | 6 | export async function run() { 7 | try { 8 | await terraformCommandHandlerGCP.validate(); 9 | } catch(error) { 10 | tl.setResult(tl.TaskResult.Failed, 'GCPValidateFailInvalidWorkingDirectoryL0 should have succeeded but failed with error.'); 11 | } 12 | } 13 | 14 | run(); -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV1/Tests/ValidateTests/GCP/GCPValidateSuccessAdditionalArgs.ts: -------------------------------------------------------------------------------- 1 | import ma = require('azure-pipelines-task-lib/mock-answer'); 2 | import tmrm = require('azure-pipelines-task-lib/mock-run'); 3 | import path = require('path'); 4 | 5 | let tp = path.join(__dirname, './GCPValidateSuccessAdditionalArgsL0.js'); 6 | let tr: tmrm.TaskMockRunner = new tmrm.TaskMockRunner(tp); 7 | 8 | tr.setInput('provider', 'gcp'); 9 | tr.setInput('command', 'validate'); 10 | tr.setInput('commandOptions', '-no-color'); 11 | 12 | let a: ma.TaskLibAnswers = { 13 | "which": { 14 | "terraform": "terraform" 15 | }, 16 | "checkPath": { 17 | "terraform": true 18 | }, 19 | "exec": { 20 | "terraform validate -no-color": { 21 | "code": 0, 22 | "stdout": "Executed Successfully" 23 | } 24 | } 25 | } 26 | 27 | tr.setAnswers(a); 28 | tr.run(); 29 | -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV1/Tests/ValidateTests/GCP/GCPValidateSuccessAdditionalArgsL0.ts: -------------------------------------------------------------------------------- 1 | import { TerraformCommandHandlerGCP } from './../../../src/gcp-terraform-command-handler'; 2 | import tl = require('azure-pipelines-task-lib'); 3 | 4 | let terraformCommandHandlerGCP: TerraformCommandHandlerGCP = new TerraformCommandHandlerGCP(); 5 | 6 | export async function run() { 7 | try { 8 | const response = await terraformCommandHandlerGCP.validate(); 9 | if (response === 0) { 10 | tl.setResult(tl.TaskResult.Succeeded, 'GCPValidateSuccessAdditionalArgsL0 should have succeeded.'); 11 | } else{ 12 | tl.setResult(tl.TaskResult.Failed, 'GCPValidateSuccessAdditionalArgsL0 should have succeeded but failed.'); 13 | } 14 | } catch(error) { 15 | tl.setResult(tl.TaskResult.Failed, 'GCPValidateSuccessAdditionalArgsL0 should have succeeded but failed.'); 16 | } 17 | } 18 | 19 | run(); -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV1/Tests/ValidateTests/GCP/GCPValidateSuccessEmptyWorkingDir.ts: -------------------------------------------------------------------------------- 1 | import ma = require('azure-pipelines-task-lib/mock-answer'); 2 | import tmrm = require('azure-pipelines-task-lib/mock-run'); 3 | import path = require('path'); 4 | 5 | let tp = path.join(__dirname, './GCPValidateSuccessEmptyWorkingDirL0.js'); 6 | let tr: tmrm.TaskMockRunner = new tmrm.TaskMockRunner(tp); 7 | 8 | tr.setInput('provider', 'gcp'); 9 | tr.setInput('command', 'validate'); 10 | tr.setInput('workingDirectory', 'DummyWorkingDirectory'); 11 | 12 | let a: ma.TaskLibAnswers = { 13 | "which": { 14 | "terraform": "terraform" 15 | }, 16 | "checkPath": { 17 | "terraform": true 18 | }, 19 | "exec": { 20 | "terraform validate": { 21 | "code": 0, 22 | "stdout": "Executed Successfully" 23 | } 24 | } 25 | } 26 | 27 | tr.setAnswers(a); 28 | tr.run(); -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV1/Tests/ValidateTests/GCP/GCPValidateSuccessNoAdditionalArgs.ts: -------------------------------------------------------------------------------- 1 | import ma = require('azure-pipelines-task-lib/mock-answer'); 2 | import tmrm = require('azure-pipelines-task-lib/mock-run'); 3 | import path = require('path'); 4 | 5 | let tp = path.join(__dirname, './GCPValidateSuccessNoAdditionalArgsL0.js'); 6 | let tr: tmrm.TaskMockRunner = new tmrm.TaskMockRunner(tp); 7 | 8 | tr.setInput('provider', 'gcp'); 9 | tr.setInput('command', 'validate'); 10 | 11 | let a: ma.TaskLibAnswers = { 12 | "which": { 13 | "terraform": "terraform" 14 | }, 15 | "checkPath": { 16 | "terraform": true 17 | }, 18 | "exec": { 19 | "terraform validate": { 20 | "code": 0, 21 | "stdout": "Executed Successfully" 22 | } 23 | } 24 | } 25 | 26 | tr.setAnswers(a); 27 | tr.run(); -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV1/Tests/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "terraformtask", 3 | "version": "1.0.0", 4 | "description": "terraform task installer test", 5 | "main": "index.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1" 8 | }, 9 | "repository": { 10 | "type": "git", 11 | "url": "git+ssh://git@github.com/Microsoft/azure-pipelines-tasks.git" 12 | }, 13 | "author": "Microsoft Corporation", 14 | "license": "MIT", 15 | "bugs": { 16 | "url": "https://github.com/Microsoft/azure-pipelines-tasks/issues" 17 | }, 18 | "homepage": "https://github.com/Microsoft/azure-pipelines-tasks#readme", 19 | "dependencies": { 20 | "nock": "13.2.4" 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV1/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-pipelines-terraform/10d175634d36b67da6355d7a1e1648305f1da7a3/Tasks/TerraformTask/TerraformTaskV1/icon.png -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV1/make.json: -------------------------------------------------------------------------------- 1 | { 2 | } 3 | -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV1/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "terraformtask", 3 | "version": "1.0.0", 4 | "description": "", 5 | "main": "index.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1" 8 | }, 9 | "author": "", 10 | "license": "ISC", 11 | "dependencies": { 12 | "azure-pipelines-task-lib": "^3.3.1", 13 | "del": "^6.0.0" 14 | }, 15 | "devDependencies": { 16 | "@types/mocha": "^2.2.48", 17 | "@types/node": "^10.17.0", 18 | "@types/q": "^1.5.0", 19 | "@types/uuid": "^8.3.1", 20 | "typescript": "^4.0.0" 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV1/src/index.ts: -------------------------------------------------------------------------------- 1 | import tasks = require('azure-pipelines-task-lib/task'); 2 | import {ParentCommandHandler} from './parent-handler'; 3 | import path = require('path'); 4 | 5 | async function run() { 6 | tasks.setResourcePath(path.join(__dirname, '..', 'task.json')); 7 | 8 | let parentHandler = new ParentCommandHandler(); 9 | try { 10 | await parentHandler.execute(tasks.getInput("provider"), tasks.getInput("command")); 11 | tasks.setResult(tasks.TaskResult.Succeeded, ""); 12 | } catch (error) { 13 | tasks.setResult(tasks.TaskResult.Failed, error); 14 | } 15 | } 16 | 17 | run(); -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV1/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "ES6", 4 | "module": "commonjs", 5 | "skipLibCheck": true 6 | }, 7 | "exclude": ["Tests"] 8 | } 9 | -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV2/Tests/ApplyTests/AWS/AWSApplyFailEmptyWorkingDirectoryL0.ts: -------------------------------------------------------------------------------- 1 | import { TerraformCommandHandlerAWS } from './../../../src/aws-terraform-command-handler'; 2 | import tl = require('azure-pipelines-task-lib'); 3 | 4 | let terraformCommandHandlerAWS: TerraformCommandHandlerAWS = new TerraformCommandHandlerAWS(); 5 | 6 | export async function run() { 7 | try { 8 | await terraformCommandHandlerAWS.onlyApply(); 9 | } catch(error) { 10 | tl.setResult(tl.TaskResult.Failed, 'AWSApplyFailEmptyWorkingDirectoryL0 should have succeeded but failed with error.'); 11 | } 12 | } 13 | 14 | run(); -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV2/Tests/ApplyTests/AWS/AWSApplyFailInvalidWorkingDirectoryL0.ts: -------------------------------------------------------------------------------- 1 | import { TerraformCommandHandlerAWS } from './../../../src/aws-terraform-command-handler'; 2 | import tl = require('azure-pipelines-task-lib'); 3 | 4 | let terraformCommandHandlerAWS: TerraformCommandHandlerAWS = new TerraformCommandHandlerAWS(); 5 | 6 | export async function run() { 7 | try { 8 | await terraformCommandHandlerAWS.onlyApply(); 9 | } catch(error) { 10 | tl.setResult(tl.TaskResult.Failed, 'AWSApplyFailInvalidWorkingDirectoryL0 should have succeeded but failed with error.'); 11 | } 12 | } 13 | 14 | run(); -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV2/Tests/ApplyTests/AWS/AWSApplySuccessNoAdditionalArgsL0.ts: -------------------------------------------------------------------------------- 1 | import { TerraformCommandHandlerAWS } from './../../../src/aws-terraform-command-handler'; 2 | import tl = require('azure-pipelines-task-lib'); 3 | 4 | let terraformCommandHandlerAWS: TerraformCommandHandlerAWS = new TerraformCommandHandlerAWS(); 5 | 6 | export async function run() { 7 | try { 8 | const response = await terraformCommandHandlerAWS.onlyApply(); 9 | if (response === 0) { 10 | tl.setResult(tl.TaskResult.Succeeded, 'AWSApplySuccessNoAdditionalArgsL0 should have succeeded.'); 11 | } else{ 12 | tl.setResult(tl.TaskResult.Failed, 'AWSApplySuccessNoAdditionalArgsL0 should have succeeded but failed.'); 13 | } 14 | } catch(error) { 15 | tl.setResult(tl.TaskResult.Failed, 'AWSApplySuccessNoAdditionalArgsL0 should have succeeded but failed.'); 16 | } 17 | } 18 | 19 | run(); 20 | -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV2/Tests/ApplyTests/Azure/AzureApplyFailEmptyWorkingDirectoryL0.ts: -------------------------------------------------------------------------------- 1 | import { TerraformCommandHandlerAzureRM } from './../../../src/azure-terraform-command-handler'; 2 | import tl = require('azure-pipelines-task-lib'); 3 | 4 | let terraformCommandHandlerAzureRM: TerraformCommandHandlerAzureRM = new TerraformCommandHandlerAzureRM(); 5 | 6 | export async function run() { 7 | try { 8 | await terraformCommandHandlerAzureRM.onlyApply(); 9 | } catch(error) { 10 | tl.setResult(tl.TaskResult.Failed, 'AzureApplyFailEmptyWorkingDirectoryL0 should have succeeded but failed with error.'); 11 | } 12 | } 13 | 14 | run(); -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV2/Tests/ApplyTests/Azure/AzureApplyFailInvalidWorkingDirectoryL0.ts: -------------------------------------------------------------------------------- 1 | import { TerraformCommandHandlerAzureRM } from './../../../src/azure-terraform-command-handler'; 2 | import tl = require('azure-pipelines-task-lib'); 3 | 4 | let terraformCommandHandlerAzureRM: TerraformCommandHandlerAzureRM = new TerraformCommandHandlerAzureRM(); 5 | 6 | export async function run() { 7 | try { 8 | await terraformCommandHandlerAzureRM.onlyApply(); 9 | } catch(error) { 10 | tl.setResult(tl.TaskResult.Failed, 'AzureApplyFailInvalidWorkingDirectoryL0 should have succeeded but failed with error.'); 11 | } 12 | } 13 | 14 | run(); -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV2/Tests/ApplyTests/GCP/GCPApplyFailEmptyWorkingDirectoryL0.ts: -------------------------------------------------------------------------------- 1 | import { TerraformCommandHandlerGCP } from './../../../src/gcp-terraform-command-handler'; 2 | import tl = require('azure-pipelines-task-lib'); 3 | 4 | let terraformCommandHandlerGCP: TerraformCommandHandlerGCP = new TerraformCommandHandlerGCP(); 5 | 6 | export async function run() { 7 | try { 8 | await terraformCommandHandlerGCP.onlyApply(); 9 | } catch(error) { 10 | tl.setResult(tl.TaskResult.Failed, 'GCPApplyFailEmptyWorkingDirectoryL0 should have succeeded but failed with error.'); 11 | } 12 | } 13 | 14 | run(); -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV2/Tests/ApplyTests/GCP/GCPApplyFailInvalidWorkingDirectoryL0.ts: -------------------------------------------------------------------------------- 1 | import { TerraformCommandHandlerGCP } from './../../../src/gcp-terraform-command-handler'; 2 | import tl = require('azure-pipelines-task-lib'); 3 | 4 | let terraformCommandHandlerGCP: TerraformCommandHandlerGCP = new TerraformCommandHandlerGCP(); 5 | 6 | export async function run() { 7 | try { 8 | await terraformCommandHandlerGCP.onlyApply(); 9 | } catch(error) { 10 | tl.setResult(tl.TaskResult.Failed, 'GCPApplyFailInvalidWorkingDirectoryL0 should have succeeded but failed with error.'); 11 | } 12 | } 13 | 14 | run(); -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV2/Tests/ApplyTests/GCP/GCPApplySuccessNoAdditionalArgsL0.ts: -------------------------------------------------------------------------------- 1 | import { TerraformCommandHandlerGCP } from './../../../src/gcp-terraform-command-handler'; 2 | import tl = require('azure-pipelines-task-lib'); 3 | 4 | let terraformCommandHandlerGCP: TerraformCommandHandlerGCP = new TerraformCommandHandlerGCP(); 5 | 6 | export async function run() { 7 | try { 8 | const response = await terraformCommandHandlerGCP.onlyApply(); 9 | if (response === 0) { 10 | tl.setResult(tl.TaskResult.Succeeded, 'GCPApplySuccessNoAdditionalArgsL0 should have succeeded.'); 11 | } else{ 12 | tl.setResult(tl.TaskResult.Failed, 'GCPApplySuccessNoAdditionalArgsL0 should have succeeded but failed.'); 13 | } 14 | } catch(error) { 15 | tl.setResult(tl.TaskResult.Failed, 'GCPApplySuccessNoAdditionalArgsL0 should have succeeded but failed.'); 16 | } 17 | } 18 | 19 | run(); -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV2/Tests/DestroyTests/AWS/AWSDestroyFailInvalidWorkingDirectoryL0.ts: -------------------------------------------------------------------------------- 1 | import { TerraformCommandHandlerAWS } from './../../../src/aws-terraform-command-handler'; 2 | import tl = require('azure-pipelines-task-lib'); 3 | 4 | let terraformCommandHandlerAWS: TerraformCommandHandlerAWS = new TerraformCommandHandlerAWS(); 5 | 6 | export async function run() { 7 | try { 8 | await terraformCommandHandlerAWS.destroy(); 9 | } catch(error) { 10 | tl.setResult(tl.TaskResult.Failed, 'AWSDestroyFailInvalidWorkingDirectoryL0 should have succeeded but failed with error.'); 11 | } 12 | } 13 | 14 | run(); -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV2/Tests/DestroyTests/Azure/AzureDestroyFailInvalidWorkingDirectoryL0.ts: -------------------------------------------------------------------------------- 1 | import { TerraformCommandHandlerAzureRM } from './../../../src/azure-terraform-command-handler'; 2 | import tl = require('azure-pipelines-task-lib'); 3 | 4 | let terraformCommandHandlerAzureRM: TerraformCommandHandlerAzureRM = new TerraformCommandHandlerAzureRM(); 5 | 6 | export async function run() { 7 | try { 8 | await terraformCommandHandlerAzureRM.destroy(); 9 | } catch(error) { 10 | tl.setResult(tl.TaskResult.Failed, 'AzureDestroyFailInvalidWorkingDirectoryL0 should have succeeded but failed with error.'); 11 | } 12 | } 13 | 14 | run(); -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV2/Tests/DestroyTests/GCP/GCPDestroyFailInvalidWorkingDirectoryL0.ts: -------------------------------------------------------------------------------- 1 | import { TerraformCommandHandlerGCP } from './../../../src/gcp-terraform-command-handler'; 2 | import tl = require('azure-pipelines-task-lib'); 3 | 4 | let terraformCommandHandlerGCP: TerraformCommandHandlerGCP = new TerraformCommandHandlerGCP(); 5 | 6 | export async function run() { 7 | try { 8 | await terraformCommandHandlerGCP.destroy(); 9 | } catch(error) { 10 | tl.setResult(tl.TaskResult.Failed, 'GCPDestroyFailInvalidWorkingDirectoryL0 should have succeeded but failed with error.'); 11 | } 12 | } 13 | 14 | run(); -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV2/Tests/DestroyTests/GCP/GCPDestroySuccessNoAdditionalArgsL0.ts: -------------------------------------------------------------------------------- 1 | import { TerraformCommandHandlerGCP } from './../../../src/gcp-terraform-command-handler'; 2 | import tl = require('azure-pipelines-task-lib'); 3 | 4 | let terraformCommandHandlerGCP: TerraformCommandHandlerGCP = new TerraformCommandHandlerGCP(); 5 | 6 | export async function run() { 7 | try { 8 | const response = await terraformCommandHandlerGCP.destroy(); 9 | if (response === 0) { 10 | tl.setResult(tl.TaskResult.Succeeded, 'GCPDestroySuccessNoAdditionalArgsL0 should have succeeded.'); 11 | } else{ 12 | tl.setResult(tl.TaskResult.Failed, 'GCPDestroySuccessNoAdditionalArgsL0 should have succeeded but failed.'); 13 | } 14 | } catch(error) { 15 | tl.setResult(tl.TaskResult.Failed, 'GCPDestroySuccessNoAdditionalArgsL0 should have succeeded but failed.'); 16 | } 17 | } 18 | 19 | run(); -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV2/Tests/InitTests/AWS/AWSInitFailInvalidWorkingDirectoryL0.ts: -------------------------------------------------------------------------------- 1 | import { TerraformCommandHandlerAWS } from './../../../src/aws-terraform-command-handler'; 2 | import tl = require('azure-pipelines-task-lib'); 3 | 4 | let terraformCommandHandlerAWS: TerraformCommandHandlerAWS = new TerraformCommandHandlerAWS(); 5 | 6 | export async function run() { 7 | try { 8 | await terraformCommandHandlerAWS.init(); 9 | } catch(error) { 10 | tl.setResult(tl.TaskResult.Failed, 'AWSInitFailInvalidWorkingDirectoryL0 should have succeeded but failed.'); 11 | } 12 | } 13 | 14 | run(); 15 | -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV2/Tests/InitTests/AWS/AWSInitSuccessAdditionalArgsL0.ts: -------------------------------------------------------------------------------- 1 | import { TerraformCommandHandlerAWS } from './../../../src/aws-terraform-command-handler'; 2 | import tl = require('azure-pipelines-task-lib'); 3 | 4 | let terraformCommandHandlerAWS: TerraformCommandHandlerAWS = new TerraformCommandHandlerAWS(); 5 | 6 | export async function run() { 7 | try { 8 | const response = await terraformCommandHandlerAWS.init(); 9 | if (response === 0) { 10 | tl.setResult(tl.TaskResult.Succeeded, 'AWSInitSuccessAdditionalArgsL0 should have succeeded.'); 11 | } else{ 12 | tl.setResult(tl.TaskResult.Failed, 'AWSInitSuccessAdditionalArgsL0 should have succeeded but failed.'); 13 | } 14 | } catch(error) { 15 | tl.setResult(tl.TaskResult.Failed, 'AWSInitSuccessAdditionalArgsL0 should have succeeded but failed.'); 16 | } 17 | } 18 | 19 | run(); 20 | -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV2/Tests/InitTests/AWS/AWSInitSuccessEmptyWorkingDirL0.ts: -------------------------------------------------------------------------------- 1 | import { TerraformCommandHandlerAWS } from './../../../src/aws-terraform-command-handler'; 2 | import tl = require('azure-pipelines-task-lib'); 3 | 4 | let terraformCommandHandlerAWS: TerraformCommandHandlerAWS = new TerraformCommandHandlerAWS(); 5 | 6 | export async function run() { 7 | try { 8 | const response = await terraformCommandHandlerAWS.init(); 9 | if (response === 0) { 10 | tl.setResult(tl.TaskResult.Succeeded, 'AWSInitSuccessEmptyWorkingDirL0 should have succeeded.'); 11 | } else{ 12 | tl.setResult(tl.TaskResult.Failed, 'AWSInitSuccessEmptyWorkingDirL0 should have succeeded but failed.'); 13 | } 14 | } catch(error) { 15 | tl.setResult(tl.TaskResult.Failed, 'AWSInitSuccessEmptyWorkingDirL0 should have succeeded but failed.'); 16 | } 17 | } 18 | 19 | run(); 20 | -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV2/Tests/InitTests/AWS/AWSInitSuccessNoAdditionalArgsL0.ts: -------------------------------------------------------------------------------- 1 | import { TerraformCommandHandlerAWS } from './../../../src/aws-terraform-command-handler'; 2 | import tl = require('azure-pipelines-task-lib'); 3 | 4 | let terraformCommandHandlerAWS: TerraformCommandHandlerAWS = new TerraformCommandHandlerAWS(); 5 | 6 | export async function run() { 7 | try { 8 | const response = await terraformCommandHandlerAWS.init(); 9 | if (response === 0) { 10 | tl.setResult(tl.TaskResult.Succeeded, 'AWSInitSuccessNoAdditionalArgsL0 should have succeeded.'); 11 | } else{ 12 | tl.setResult(tl.TaskResult.Failed, 'AWSInitSuccessNoAdditionalArgsL0 should have succeeded but failed.'); 13 | } 14 | } catch(error) { 15 | tl.setResult(tl.TaskResult.Failed, 'AWSInitSuccessNoAdditionalArgsL0 should have succeeded but failed.'); 16 | } 17 | } 18 | 19 | run(); 20 | -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV2/Tests/InitTests/Azure/AzureInitFailInvalidWorkingDirectoryL0.ts: -------------------------------------------------------------------------------- 1 | import { TerraformCommandHandlerAzureRM } from './../../../src/azure-terraform-command-handler'; 2 | import tl = require('azure-pipelines-task-lib'); 3 | 4 | let terraformCommandHandlerAzureRM: TerraformCommandHandlerAzureRM = new TerraformCommandHandlerAzureRM(); 5 | 6 | export async function run() { 7 | try { 8 | await terraformCommandHandlerAzureRM.init(); 9 | } catch(error) { 10 | tl.setResult(tl.TaskResult.Failed, 'AzureInitFailInvalidWorkingDirectoryL0 should have succeeded but failed with error.'); 11 | } 12 | } 13 | 14 | run(); -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV2/Tests/InitTests/GCP/GCPInitFailInvalidWorkingDirectoryL0.ts: -------------------------------------------------------------------------------- 1 | import { TerraformCommandHandlerGCP } from './../../../src/gcp-terraform-command-handler'; 2 | import tl = require('azure-pipelines-task-lib'); 3 | 4 | let terraformCommandHandlerGCP: TerraformCommandHandlerGCP = new TerraformCommandHandlerGCP(); 5 | 6 | export async function run() { 7 | try { 8 | await terraformCommandHandlerGCP.init(); 9 | } catch(error) { 10 | tl.setResult(tl.TaskResult.Failed, 'GCPInitFailInvalidWorkingDirectoryL0 should have succeeded but failed.'); 11 | } 12 | } 13 | 14 | run(); 15 | -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV2/Tests/InitTests/GCP/GCPInitSuccessAdditionalArgsL0.ts: -------------------------------------------------------------------------------- 1 | import { TerraformCommandHandlerGCP } from './../../../src/gcp-terraform-command-handler'; 2 | import tl = require('azure-pipelines-task-lib'); 3 | 4 | let terraformCommandHandlerGCP: TerraformCommandHandlerGCP = new TerraformCommandHandlerGCP(); 5 | 6 | export async function run() { 7 | try { 8 | const response = await terraformCommandHandlerGCP.init(); 9 | if (response === 0) { 10 | tl.setResult(tl.TaskResult.Succeeded, 'GCPInitSuccessAdditionalArgsL0 should have succeeded.'); 11 | } else{ 12 | tl.setResult(tl.TaskResult.Failed, 'GCPInitSuccessAdditionalArgsL0 should have succeeded but failed.'); 13 | } 14 | } catch(error) { 15 | tl.setResult(tl.TaskResult.Failed, 'GCPInitSuccessAdditionalArgsL0 should have succeeded but failed.'); 16 | } 17 | } 18 | 19 | run(); -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV2/Tests/InitTests/GCP/GCPInitSuccessEmptyWorkingDirL0.ts: -------------------------------------------------------------------------------- 1 | import { TerraformCommandHandlerGCP } from './../../../src/gcp-terraform-command-handler'; 2 | import tl = require('azure-pipelines-task-lib'); 3 | 4 | let terraformCommandHandlerGCP: TerraformCommandHandlerGCP = new TerraformCommandHandlerGCP(); 5 | 6 | export async function run() { 7 | try { 8 | const response = await terraformCommandHandlerGCP.init(); 9 | if (response === 0) { 10 | tl.setResult(tl.TaskResult.Succeeded, 'GCPInitSuccessEmptyWorkingDirL0 should have succeeded.'); 11 | } else{ 12 | tl.setResult(tl.TaskResult.Failed, 'GCPInitSuccessEmptyWorkingDirL0 should have succeeded but failed.'); 13 | } 14 | } catch(error) { 15 | tl.setResult(tl.TaskResult.Failed, 'GCPInitSuccessEmptyWorkingDirL0 should have succeeded but failed.'); 16 | } 17 | } 18 | 19 | run(); -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV2/Tests/InitTests/GCP/GCPInitSuccessNoAdditionalArgsL0.ts: -------------------------------------------------------------------------------- 1 | import { TerraformCommandHandlerGCP } from './../../../src/gcp-terraform-command-handler'; 2 | import tl = require('azure-pipelines-task-lib'); 3 | 4 | let terraformCommandHandlerGCP: TerraformCommandHandlerGCP = new TerraformCommandHandlerGCP(); 5 | 6 | export async function run() { 7 | try { 8 | const response = await terraformCommandHandlerGCP.init(); 9 | if (response === 0) { 10 | tl.setResult(tl.TaskResult.Succeeded, 'GCPInitSuccessNoAdditionalArgsL0 should have succeeded.'); 11 | } else{ 12 | tl.setResult(tl.TaskResult.Failed, 'GCPInitSuccessNoAdditionalArgsL0 should have succeeded but failed.'); 13 | } 14 | } catch(error) { 15 | tl.setResult(tl.TaskResult.Failed, 'GCPInitSuccessNoAdditionalArgsL0 should have succeeded but failed.'); 16 | } 17 | } 18 | 19 | run(); -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV2/Tests/MultipleProviderTests/MultipleProviderWarningL0.ts: -------------------------------------------------------------------------------- 1 | import { TerraformCommandHandlerAzureRM } from '../../src/azure-terraform-command-handler'; 2 | import tl = require('azure-pipelines-task-lib'); 3 | 4 | let terraformCommandHandlerAzureRM: TerraformCommandHandlerAzureRM = new TerraformCommandHandlerAzureRM(); 5 | 6 | export async function run() { 7 | try { 8 | await terraformCommandHandlerAzureRM.warnIfMultipleProviders(); 9 | } catch(error) { 10 | tl.setResult(tl.TaskResult.Failed, 'MultipleProviderWarningL0 should have succeeded but failed.'); 11 | } 12 | } 13 | 14 | run(); -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV2/Tests/MultipleProviderTests/SingleProviderNoWarningL0.ts: -------------------------------------------------------------------------------- 1 | import { TerraformCommandHandlerAzureRM } from '../../src/azure-terraform-command-handler'; 2 | import tl = require('azure-pipelines-task-lib'); 3 | 4 | let terraformCommandHandlerAzureRM: TerraformCommandHandlerAzureRM = new TerraformCommandHandlerAzureRM(); 5 | 6 | export async function run() { 7 | try { 8 | await terraformCommandHandlerAzureRM.warnIfMultipleProviders(); 9 | } catch(error) { 10 | tl.setResult(tl.TaskResult.Failed, 'SingleProviderNoWarningL0 should have succeeded but failed.'); 11 | } 12 | } 13 | 14 | run(); -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV2/Tests/PlanTests/AWS/AWSPlanFailEmptyWorkingDirectoryL0.ts: -------------------------------------------------------------------------------- 1 | import { TerraformCommandHandlerAWS } from './../../../src/aws-terraform-command-handler'; 2 | import tl = require('azure-pipelines-task-lib'); 3 | 4 | let terraformCommandHandlerAWS: TerraformCommandHandlerAWS = new TerraformCommandHandlerAWS(); 5 | 6 | export async function run() { 7 | try { 8 | await terraformCommandHandlerAWS.onlyPlan(); 9 | } catch(error) { 10 | tl.setResult(tl.TaskResult.Failed, 'AWSPlanFailEmptyWorkingDirectoryL0 should have succeeded but failed with error.'); 11 | } 12 | } 13 | 14 | run(); -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV2/Tests/PlanTests/AWS/AWSPlanFailInvalidWorkingDirectoryL0.ts: -------------------------------------------------------------------------------- 1 | import { TerraformCommandHandlerAWS } from './../../../src/aws-terraform-command-handler'; 2 | import tl = require('azure-pipelines-task-lib'); 3 | 4 | let terraformCommandHandlerAWS: TerraformCommandHandlerAWS = new TerraformCommandHandlerAWS(); 5 | 6 | export async function run() { 7 | try { 8 | await terraformCommandHandlerAWS.onlyPlan(); 9 | } catch(error) { 10 | tl.setResult(tl.TaskResult.Failed, 'AWSPlanFailInvalidWorkingDirectoryL0 should have succeeded but failed with error.'); 11 | } 12 | } 13 | 14 | run(); -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV2/Tests/PlanTests/AWS/AWSPlanSuccessAdditionalArgsL0.ts: -------------------------------------------------------------------------------- 1 | import { TerraformCommandHandlerAWS } from './../../../src/aws-terraform-command-handler'; 2 | import tl = require('azure-pipelines-task-lib'); 3 | 4 | let terraformCommandHandlerAWS: TerraformCommandHandlerAWS = new TerraformCommandHandlerAWS(); 5 | 6 | export async function run() { 7 | try { 8 | const response = await terraformCommandHandlerAWS.onlyPlan(); 9 | if (response === 0) { 10 | tl.setResult(tl.TaskResult.Succeeded, 'AWSPlanSuccessAdditionalArgsL0 should have succeeded.'); 11 | } else{ 12 | tl.setResult(tl.TaskResult.Failed, 'AWSPlanSuccessAdditionalArgsL0 should have succeeded but failed.'); 13 | } 14 | } catch(error) { 15 | tl.setResult(tl.TaskResult.Failed, 'AWSPlanSuccessAdditionalArgsL0 should have succeeded but failed.'); 16 | } 17 | } 18 | 19 | run(); -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV2/Tests/PlanTests/AWS/AWSPlanSuccessNoAdditionalArgsL0.ts: -------------------------------------------------------------------------------- 1 | import { TerraformCommandHandlerAWS } from './../../../src/aws-terraform-command-handler'; 2 | import tl = require('azure-pipelines-task-lib'); 3 | 4 | let terraformCommandHandlerAWS: TerraformCommandHandlerAWS = new TerraformCommandHandlerAWS(); 5 | 6 | export async function run() { 7 | try { 8 | const response = await terraformCommandHandlerAWS.onlyPlan(); 9 | if (response === 0) { 10 | tl.setResult(tl.TaskResult.Succeeded, 'AWSPlanSuccessNoAdditionalArgsL0 should have succeeded.'); 11 | } else{ 12 | tl.setResult(tl.TaskResult.Failed, 'AWSPlanSuccessNoAdditionalArgsL0 should have succeeded but failed.'); 13 | } 14 | } catch(error) { 15 | tl.setResult(tl.TaskResult.Failed, 'AWSPlanSuccessNoAdditionalArgsL0 should have succeeded but failed.'); 16 | } 17 | } 18 | 19 | run(); -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV2/Tests/PlanTests/Azure/AzurePlanFailEmptyWorkingDirectoryL0.ts: -------------------------------------------------------------------------------- 1 | import { TerraformCommandHandlerAzureRM } from './../../../src/azure-terraform-command-handler'; 2 | import tl = require('azure-pipelines-task-lib'); 3 | 4 | let terraformCommandHandlerAzureRM: TerraformCommandHandlerAzureRM = new TerraformCommandHandlerAzureRM(); 5 | 6 | export async function run() { 7 | try { 8 | await terraformCommandHandlerAzureRM.onlyPlan(); 9 | } catch(error) { 10 | tl.setResult(tl.TaskResult.Failed, 'AzurePlanFailEmptyWorkingDirectoryL0 should have succeeded but failed with error.'); 11 | } 12 | } 13 | 14 | run(); -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV2/Tests/PlanTests/Azure/AzurePlanFailInvalidWorkingDirectoryL0.ts: -------------------------------------------------------------------------------- 1 | import { TerraformCommandHandlerAzureRM } from './../../../src/azure-terraform-command-handler'; 2 | import tl = require('azure-pipelines-task-lib'); 3 | 4 | let terraformCommandHandlerAzureRM: TerraformCommandHandlerAzureRM = new TerraformCommandHandlerAzureRM(); 5 | 6 | export async function run() { 7 | try { 8 | await terraformCommandHandlerAzureRM.onlyPlan(); 9 | } catch(error) { 10 | tl.setResult(tl.TaskResult.Failed, 'AzurePlanFailInvalidWorkingDirectoryL0 should have succeeded but failed with error.'); 11 | } 12 | } 13 | 14 | run(); -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV2/Tests/PlanTests/GCP/GCPPlanFailEmptyWorkingDirectoryL0.ts: -------------------------------------------------------------------------------- 1 | import { TerraformCommandHandlerGCP } from './../../../src/gcp-terraform-command-handler'; 2 | import tl = require('azure-pipelines-task-lib'); 3 | 4 | let terraformCommandHandlerGCP: TerraformCommandHandlerGCP = new TerraformCommandHandlerGCP(); 5 | 6 | export async function run() { 7 | try { 8 | await terraformCommandHandlerGCP.onlyPlan(); 9 | } catch(error) { 10 | tl.setResult(tl.TaskResult.Failed, 'GCPPlanFailEmptyWorkingDirectoryL0 should have succeeded but failed with error.'); 11 | } 12 | } 13 | 14 | run(); -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV2/Tests/PlanTests/GCP/GCPPlanFailInvalidWorkingDirectoryL0.ts: -------------------------------------------------------------------------------- 1 | import { TerraformCommandHandlerGCP } from './../../../src/gcp-terraform-command-handler'; 2 | import tl = require('azure-pipelines-task-lib'); 3 | 4 | let terraformCommandHandlerGCP: TerraformCommandHandlerGCP = new TerraformCommandHandlerGCP(); 5 | 6 | export async function run() { 7 | try { 8 | await terraformCommandHandlerGCP.onlyPlan(); 9 | } catch(error) { 10 | tl.setResult(tl.TaskResult.Failed, 'GCPPlanFailInvalidWorkingDirectoryL0 should have succeeded but failed with error.'); 11 | } 12 | } 13 | 14 | run(); -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV2/Tests/PlanTests/GCP/GCPPlanSuccessAdditionalArgsL0.ts: -------------------------------------------------------------------------------- 1 | import { TerraformCommandHandlerGCP } from './../../../src/gcp-terraform-command-handler'; 2 | import tl = require('azure-pipelines-task-lib'); 3 | 4 | let terraformCommandHandlerGCP: TerraformCommandHandlerGCP = new TerraformCommandHandlerGCP(); 5 | 6 | export async function run() { 7 | try { 8 | const response = await terraformCommandHandlerGCP.onlyPlan(); 9 | if (response === 0) { 10 | tl.setResult(tl.TaskResult.Succeeded, 'GCPPlanSuccessAdditionalArgsL0 should have succeeded.'); 11 | } else{ 12 | tl.setResult(tl.TaskResult.Failed, 'GCPPlanSuccessAdditionalArgsL0 should have succeeded but failed.'); 13 | } 14 | } catch(error) { 15 | tl.setResult(tl.TaskResult.Failed, 'GCPPlanSuccessAdditionalArgsL0 should have succeeded but failed.'); 16 | } 17 | } 18 | 19 | run(); -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV2/Tests/PlanTests/GCP/GCPPlanSuccessNoAdditionalArgsL0.ts: -------------------------------------------------------------------------------- 1 | import { TerraformCommandHandlerGCP } from './../../../src/gcp-terraform-command-handler'; 2 | import tl = require('azure-pipelines-task-lib'); 3 | 4 | let terraformCommandHandlerGCP: TerraformCommandHandlerGCP = new TerraformCommandHandlerGCP(); 5 | 6 | export async function run() { 7 | try { 8 | const response = await terraformCommandHandlerGCP.onlyPlan(); 9 | if (response === 0) { 10 | tl.setResult(tl.TaskResult.Succeeded, 'GCPPlanSuccessNoAdditionalArgsL0 should have succeeded.'); 11 | } else{ 12 | tl.setResult(tl.TaskResult.Failed, 'GCPPlanSuccessNoAdditionalArgsL0 should have succeeded but failed.'); 13 | } 14 | } catch(error) { 15 | tl.setResult(tl.TaskResult.Failed, 'GCPPlanSuccessNoAdditionalArgsL0 should have succeeded but failed.'); 16 | } 17 | } 18 | 19 | run(); -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV2/Tests/ValidateTests/AWS/AWSValidateFailInvalidWorkingDirectoryL0.ts: -------------------------------------------------------------------------------- 1 | import { TerraformCommandHandlerAWS } from './../../../src/aws-terraform-command-handler'; 2 | import tl = require('azure-pipelines-task-lib'); 3 | 4 | let terraformCommandHandlerAWS: TerraformCommandHandlerAWS = new TerraformCommandHandlerAWS(); 5 | 6 | export async function run() { 7 | try { 8 | await terraformCommandHandlerAWS.validate(); 9 | } catch(error) { 10 | tl.setResult(tl.TaskResult.Failed, 'AWSValidateFailInvalidWorkingDirectoryL0 should have succeeded but failed with error.'); 11 | } 12 | } 13 | 14 | run(); -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV2/Tests/ValidateTests/AWS/AWSValidateSuccessAdditionalArgs.ts: -------------------------------------------------------------------------------- 1 | import ma = require('azure-pipelines-task-lib/mock-answer'); 2 | import tmrm = require('azure-pipelines-task-lib/mock-run'); 3 | import path = require('path'); 4 | 5 | let tp = path.join(__dirname, './AWSValidateSuccessAdditionalArgsL0.js'); 6 | let tr: tmrm.TaskMockRunner = new tmrm.TaskMockRunner(tp); 7 | 8 | tr.setInput('provider', 'aws'); 9 | tr.setInput('command', 'validate'); 10 | tr.setInput('commandOptions', '-no-color'); 11 | 12 | let a: ma.TaskLibAnswers = { 13 | "which": { 14 | "terraform": "terraform" 15 | }, 16 | "checkPath": { 17 | "terraform": true 18 | }, 19 | "exec": { 20 | "terraform validate -no-color": { 21 | "code": 0, 22 | "stdout": "Executed Successfully" 23 | } 24 | } 25 | } 26 | 27 | tr.setAnswers(a); 28 | tr.run(); 29 | -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV2/Tests/ValidateTests/AWS/AWSValidateSuccessAdditionalArgsL0.ts: -------------------------------------------------------------------------------- 1 | import { TerraformCommandHandlerAWS } from './../../../src/aws-terraform-command-handler'; 2 | import tl = require('azure-pipelines-task-lib'); 3 | 4 | let terraformCommandHandlerAWS: TerraformCommandHandlerAWS = new TerraformCommandHandlerAWS(); 5 | 6 | export async function run() { 7 | try { 8 | const response = await terraformCommandHandlerAWS.validate(); 9 | if (response === 0) { 10 | tl.setResult(tl.TaskResult.Succeeded, 'AWSValidateSuccessAdditionalArgsL0 should have succeeded.'); 11 | } else{ 12 | tl.setResult(tl.TaskResult.Failed, 'AWSValidateSuccessAdditionalArgsL0 should have succeeded but failed.'); 13 | } 14 | } catch(error) { 15 | tl.setResult(tl.TaskResult.Failed, 'AWSValidateSuccessAdditionalArgsL0 should have succeeded but failed.'); 16 | } 17 | } 18 | 19 | run(); -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV2/Tests/ValidateTests/AWS/AWSValidateSuccessEmptyWorkingDir.ts: -------------------------------------------------------------------------------- 1 | import ma = require('azure-pipelines-task-lib/mock-answer'); 2 | import tmrm = require('azure-pipelines-task-lib/mock-run'); 3 | import path = require('path'); 4 | 5 | let tp = path.join(__dirname, './AWSValidateSuccessEmptyWorkingDirL0.js'); 6 | let tr: tmrm.TaskMockRunner = new tmrm.TaskMockRunner(tp); 7 | 8 | tr.setInput('provider', 'aws'); 9 | tr.setInput('command', 'validate'); 10 | tr.setInput('workingDirectory', 'DummyWorkingDirectory'); 11 | 12 | let a: ma.TaskLibAnswers = { 13 | "which": { 14 | "terraform": "terraform" 15 | }, 16 | "checkPath": { 17 | "terraform": true 18 | }, 19 | "exec": { 20 | "terraform validate": { 21 | "code": 0, 22 | "stdout": "Executed Successfully" 23 | } 24 | } 25 | } 26 | 27 | tr.setAnswers(a); 28 | tr.run(); -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV2/Tests/ValidateTests/AWS/AWSValidateSuccessNoAdditionalArgs.ts: -------------------------------------------------------------------------------- 1 | import ma = require('azure-pipelines-task-lib/mock-answer'); 2 | import tmrm = require('azure-pipelines-task-lib/mock-run'); 3 | import path = require('path'); 4 | 5 | let tp = path.join(__dirname, './AWSValidateSuccessNoAdditionalArgsL0.js'); 6 | let tr: tmrm.TaskMockRunner = new tmrm.TaskMockRunner(tp); 7 | 8 | tr.setInput('provider', 'aws'); 9 | tr.setInput('command', 'validate'); 10 | 11 | let a: ma.TaskLibAnswers = { 12 | "which": { 13 | "terraform": "terraform" 14 | }, 15 | "checkPath": { 16 | "terraform": true 17 | }, 18 | "exec": { 19 | "terraform validate": { 20 | "code": 0, 21 | "stdout": "Executed Successfully" 22 | } 23 | } 24 | } 25 | 26 | tr.setAnswers(a); 27 | tr.run(); -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV2/Tests/ValidateTests/Azure/AzureValidateFailInvalidWorkingDirectoryL0.ts: -------------------------------------------------------------------------------- 1 | import { TerraformCommandHandlerAzureRM } from './../../../src/azure-terraform-command-handler'; 2 | import tl = require('azure-pipelines-task-lib'); 3 | 4 | let terraformCommandHandlerAzureRM: TerraformCommandHandlerAzureRM = new TerraformCommandHandlerAzureRM(); 5 | 6 | export async function run() { 7 | try { 8 | await terraformCommandHandlerAzureRM.validate(); 9 | } catch(error) { 10 | tl.setResult(tl.TaskResult.Failed, 'AzureValidateFailInvalidWorkingDirectoryL0 should have succeeded but failed with error.'); 11 | } 12 | } 13 | 14 | run(); -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV2/Tests/ValidateTests/Azure/AzureValidateSuccessAdditionalArgs.ts: -------------------------------------------------------------------------------- 1 | import ma = require('azure-pipelines-task-lib/mock-answer'); 2 | import tmrm = require('azure-pipelines-task-lib/mock-run'); 3 | import path = require('path'); 4 | 5 | let tp = path.join(__dirname, './AzureValidateSuccessAdditionalArgsL0.js'); 6 | let tr: tmrm.TaskMockRunner = new tmrm.TaskMockRunner(tp); 7 | 8 | tr.setInput('provider', 'azurerm'); 9 | tr.setInput('command', 'validate'); 10 | tr.setInput('commandOptions', '-no-color'); 11 | 12 | let a: ma.TaskLibAnswers = { 13 | "which": { 14 | "terraform": "terraform" 15 | }, 16 | "checkPath": { 17 | "terraform": true 18 | }, 19 | "exec": { 20 | "terraform validate -no-color": { 21 | "code": 0, 22 | "stdout": "Executed Successfully" 23 | } 24 | } 25 | } 26 | 27 | tr.setAnswers(a); 28 | tr.run(); 29 | -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV2/Tests/ValidateTests/Azure/AzureValidateSuccessEmptyWorkingDir.ts: -------------------------------------------------------------------------------- 1 | import ma = require('azure-pipelines-task-lib/mock-answer'); 2 | import tmrm = require('azure-pipelines-task-lib/mock-run'); 3 | import path = require('path'); 4 | 5 | let tp = path.join(__dirname, './AzureValidateSuccessEmptyWorkingDirL0.js'); 6 | let tr: tmrm.TaskMockRunner = new tmrm.TaskMockRunner(tp); 7 | 8 | tr.setInput('provider', 'azurerm'); 9 | tr.setInput('command', 'validate'); 10 | tr.setInput('workingDirectory', 'DummyWorkingDirectory'); 11 | 12 | let a: ma.TaskLibAnswers = { 13 | "which": { 14 | "terraform": "terraform" 15 | }, 16 | "checkPath": { 17 | "terraform": true 18 | }, 19 | "exec": { 20 | "terraform validate": { 21 | "code": 0, 22 | "stdout": "Executed Successfully" 23 | } 24 | } 25 | } 26 | 27 | tr.setAnswers(a); 28 | tr.run(); -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV2/Tests/ValidateTests/Azure/AzureValidateSuccessNoAdditionalArgs.ts: -------------------------------------------------------------------------------- 1 | import ma = require('azure-pipelines-task-lib/mock-answer'); 2 | import tmrm = require('azure-pipelines-task-lib/mock-run'); 3 | import path = require('path'); 4 | 5 | let tp = path.join(__dirname, './AzureValidateSuccessNoAdditionalArgsL0.js'); 6 | let tr: tmrm.TaskMockRunner = new tmrm.TaskMockRunner(tp); 7 | 8 | tr.setInput('provider', 'azurerm'); 9 | tr.setInput('command', 'validate'); 10 | 11 | let a: ma.TaskLibAnswers = { 12 | "which": { 13 | "terraform": "terraform" 14 | }, 15 | "checkPath": { 16 | "terraform": true 17 | }, 18 | "exec": { 19 | "terraform validate": { 20 | "code": 0, 21 | "stdout": "Executed Successfully" 22 | } 23 | } 24 | } 25 | 26 | tr.setAnswers(a); 27 | tr.run(); -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV2/Tests/ValidateTests/GCP/GCPValidateFailInvalidWorkingDirectoryL0.ts: -------------------------------------------------------------------------------- 1 | import { TerraformCommandHandlerGCP } from './../../../src/gcp-terraform-command-handler'; 2 | import tl = require('azure-pipelines-task-lib'); 3 | 4 | let terraformCommandHandlerGCP: TerraformCommandHandlerGCP = new TerraformCommandHandlerGCP(); 5 | 6 | export async function run() { 7 | try { 8 | await terraformCommandHandlerGCP.validate(); 9 | } catch(error) { 10 | tl.setResult(tl.TaskResult.Failed, 'GCPValidateFailInvalidWorkingDirectoryL0 should have succeeded but failed with error.'); 11 | } 12 | } 13 | 14 | run(); -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV2/Tests/ValidateTests/GCP/GCPValidateSuccessAdditionalArgs.ts: -------------------------------------------------------------------------------- 1 | import ma = require('azure-pipelines-task-lib/mock-answer'); 2 | import tmrm = require('azure-pipelines-task-lib/mock-run'); 3 | import path = require('path'); 4 | 5 | let tp = path.join(__dirname, './GCPValidateSuccessAdditionalArgsL0.js'); 6 | let tr: tmrm.TaskMockRunner = new tmrm.TaskMockRunner(tp); 7 | 8 | tr.setInput('provider', 'gcp'); 9 | tr.setInput('command', 'validate'); 10 | tr.setInput('commandOptions', '-no-color'); 11 | 12 | let a: ma.TaskLibAnswers = { 13 | "which": { 14 | "terraform": "terraform" 15 | }, 16 | "checkPath": { 17 | "terraform": true 18 | }, 19 | "exec": { 20 | "terraform validate -no-color": { 21 | "code": 0, 22 | "stdout": "Executed Successfully" 23 | } 24 | } 25 | } 26 | 27 | tr.setAnswers(a); 28 | tr.run(); 29 | -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV2/Tests/ValidateTests/GCP/GCPValidateSuccessAdditionalArgsL0.ts: -------------------------------------------------------------------------------- 1 | import { TerraformCommandHandlerGCP } from './../../../src/gcp-terraform-command-handler'; 2 | import tl = require('azure-pipelines-task-lib'); 3 | 4 | let terraformCommandHandlerGCP: TerraformCommandHandlerGCP = new TerraformCommandHandlerGCP(); 5 | 6 | export async function run() { 7 | try { 8 | const response = await terraformCommandHandlerGCP.validate(); 9 | if (response === 0) { 10 | tl.setResult(tl.TaskResult.Succeeded, 'GCPValidateSuccessAdditionalArgsL0 should have succeeded.'); 11 | } else{ 12 | tl.setResult(tl.TaskResult.Failed, 'GCPValidateSuccessAdditionalArgsL0 should have succeeded but failed.'); 13 | } 14 | } catch(error) { 15 | tl.setResult(tl.TaskResult.Failed, 'GCPValidateSuccessAdditionalArgsL0 should have succeeded but failed.'); 16 | } 17 | } 18 | 19 | run(); -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV2/Tests/ValidateTests/GCP/GCPValidateSuccessEmptyWorkingDir.ts: -------------------------------------------------------------------------------- 1 | import ma = require('azure-pipelines-task-lib/mock-answer'); 2 | import tmrm = require('azure-pipelines-task-lib/mock-run'); 3 | import path = require('path'); 4 | 5 | let tp = path.join(__dirname, './GCPValidateSuccessEmptyWorkingDirL0.js'); 6 | let tr: tmrm.TaskMockRunner = new tmrm.TaskMockRunner(tp); 7 | 8 | tr.setInput('provider', 'gcp'); 9 | tr.setInput('command', 'validate'); 10 | tr.setInput('workingDirectory', 'DummyWorkingDirectory'); 11 | 12 | let a: ma.TaskLibAnswers = { 13 | "which": { 14 | "terraform": "terraform" 15 | }, 16 | "checkPath": { 17 | "terraform": true 18 | }, 19 | "exec": { 20 | "terraform validate": { 21 | "code": 0, 22 | "stdout": "Executed Successfully" 23 | } 24 | } 25 | } 26 | 27 | tr.setAnswers(a); 28 | tr.run(); -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV2/Tests/ValidateTests/GCP/GCPValidateSuccessNoAdditionalArgs.ts: -------------------------------------------------------------------------------- 1 | import ma = require('azure-pipelines-task-lib/mock-answer'); 2 | import tmrm = require('azure-pipelines-task-lib/mock-run'); 3 | import path = require('path'); 4 | 5 | let tp = path.join(__dirname, './GCPValidateSuccessNoAdditionalArgsL0.js'); 6 | let tr: tmrm.TaskMockRunner = new tmrm.TaskMockRunner(tp); 7 | 8 | tr.setInput('provider', 'gcp'); 9 | tr.setInput('command', 'validate'); 10 | 11 | let a: ma.TaskLibAnswers = { 12 | "which": { 13 | "terraform": "terraform" 14 | }, 15 | "checkPath": { 16 | "terraform": true 17 | }, 18 | "exec": { 19 | "terraform validate": { 20 | "code": 0, 21 | "stdout": "Executed Successfully" 22 | } 23 | } 24 | } 25 | 26 | tr.setAnswers(a); 27 | tr.run(); -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV2/Tests/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "terraformtask", 3 | "version": "1.0.0", 4 | "description": "terraform task installer test", 5 | "main": "index.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1" 8 | }, 9 | "repository": { 10 | "type": "git", 11 | "url": "git+ssh://git@github.com/Microsoft/azure-pipelines-tasks.git" 12 | }, 13 | "author": "Microsoft Corporation", 14 | "license": "MIT", 15 | "bugs": { 16 | "url": "https://github.com/Microsoft/azure-pipelines-tasks/issues" 17 | }, 18 | "homepage": "https://github.com/Microsoft/azure-pipelines-tasks#readme", 19 | "dependencies": { 20 | "nock": "13.2.4" 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV2/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-pipelines-terraform/10d175634d36b67da6355d7a1e1648305f1da7a3/Tasks/TerraformTask/TerraformTaskV2/icon.png -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV2/make.json: -------------------------------------------------------------------------------- 1 | { 2 | } 3 | -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV2/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "terraformtask", 3 | "version": "1.0.0", 4 | "description": "", 5 | "main": "index.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1" 8 | }, 9 | "author": "", 10 | "license": "ISC", 11 | "dependencies": { 12 | "azure-pipelines-task-lib": "^3.3.1", 13 | "del": "^6.0.0" 14 | }, 15 | "devDependencies": { 16 | "@types/mocha": "^2.2.48", 17 | "@types/node": "^10.17.0", 18 | "@types/q": "^1.5.0", 19 | "@types/uuid": "^8.3.1", 20 | "ts-loader": "^9.4.2", 21 | "typescript": "^4.0.0" 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV2/src/index.ts: -------------------------------------------------------------------------------- 1 | import tasks = require('azure-pipelines-task-lib/task'); 2 | import {ParentCommandHandler} from './parent-handler'; 3 | import path = require('path'); 4 | 5 | async function run() { 6 | tasks.setResourcePath(path.join(__dirname, '..', 'task.json')); 7 | 8 | let parentHandler = new ParentCommandHandler(); 9 | try { 10 | await parentHandler.execute(tasks.getInput("provider"), tasks.getInput("command")); 11 | tasks.setResult(tasks.TaskResult.Succeeded, ""); 12 | } catch (error) { 13 | tasks.setResult(tasks.TaskResult.Failed, error); 14 | } 15 | } 16 | 17 | run(); -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV2/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "ES6", 4 | "module": "commonjs", 5 | "skipLibCheck": true 6 | }, 7 | "exclude": ["Tests"] 8 | } 9 | -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV3/Tests/ApplyTests/AWS/AWSApplyFailEmptyWorkingDirectoryL0.ts: -------------------------------------------------------------------------------- 1 | import { TerraformCommandHandlerAWS } from './../../../src/aws-terraform-command-handler'; 2 | import tl = require('azure-pipelines-task-lib'); 3 | 4 | let terraformCommandHandlerAWS: TerraformCommandHandlerAWS = new TerraformCommandHandlerAWS(); 5 | 6 | export async function run() { 7 | try { 8 | await terraformCommandHandlerAWS.apply(); 9 | } catch(error) { 10 | tl.setResult(tl.TaskResult.Failed, 'AWSApplyFailEmptyWorkingDirectoryL0 should have succeeded but failed with error.'); 11 | } 12 | } 13 | 14 | run(); -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV3/Tests/ApplyTests/AWS/AWSApplyFailInvalidWorkingDirectoryL0.ts: -------------------------------------------------------------------------------- 1 | import { TerraformCommandHandlerAWS } from './../../../src/aws-terraform-command-handler'; 2 | import tl = require('azure-pipelines-task-lib'); 3 | 4 | let terraformCommandHandlerAWS: TerraformCommandHandlerAWS = new TerraformCommandHandlerAWS(); 5 | 6 | export async function run() { 7 | try { 8 | await terraformCommandHandlerAWS.apply(); 9 | } catch(error) { 10 | tl.setResult(tl.TaskResult.Failed, 'AWSApplyFailInvalidWorkingDirectoryL0 should have succeeded but failed with error.'); 11 | } 12 | } 13 | 14 | run(); -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV3/Tests/ApplyTests/AWS/AWSApplySuccessNoAdditionalArgsL0.ts: -------------------------------------------------------------------------------- 1 | import { TerraformCommandHandlerAWS } from './../../../src/aws-terraform-command-handler'; 2 | import tl = require('azure-pipelines-task-lib'); 3 | 4 | let terraformCommandHandlerAWS: TerraformCommandHandlerAWS = new TerraformCommandHandlerAWS(); 5 | 6 | export async function run() { 7 | try { 8 | const response = await terraformCommandHandlerAWS.apply(); 9 | if (response === 0) { 10 | tl.setResult(tl.TaskResult.Succeeded, 'AWSApplySuccessNoAdditionalArgsL0 should have succeeded.'); 11 | } else{ 12 | tl.setResult(tl.TaskResult.Failed, 'AWSApplySuccessNoAdditionalArgsL0 should have succeeded but failed.'); 13 | } 14 | } catch(error) { 15 | tl.setResult(tl.TaskResult.Failed, 'AWSApplySuccessNoAdditionalArgsL0 should have succeeded but failed.'); 16 | } 17 | } 18 | 19 | run(); 20 | -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV3/Tests/ApplyTests/Azure/AzureApplyFailEmptyWorkingDirectoryL0.ts: -------------------------------------------------------------------------------- 1 | import { TerraformCommandHandlerAzureRM } from './../../../src/azure-terraform-command-handler'; 2 | import tl = require('azure-pipelines-task-lib'); 3 | 4 | let terraformCommandHandlerAzureRM: TerraformCommandHandlerAzureRM = new TerraformCommandHandlerAzureRM(); 5 | 6 | export async function run() { 7 | try { 8 | await terraformCommandHandlerAzureRM.apply(); 9 | } catch(error) { 10 | tl.setResult(tl.TaskResult.Failed, 'AzureApplyFailEmptyWorkingDirectoryL0 should have succeeded but failed with error.'); 11 | } 12 | } 13 | 14 | run(); -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV3/Tests/ApplyTests/Azure/AzureApplyFailInvalidWorkingDirectoryL0.ts: -------------------------------------------------------------------------------- 1 | import { TerraformCommandHandlerAzureRM } from './../../../src/azure-terraform-command-handler'; 2 | import tl = require('azure-pipelines-task-lib'); 3 | 4 | let terraformCommandHandlerAzureRM: TerraformCommandHandlerAzureRM = new TerraformCommandHandlerAzureRM(); 5 | 6 | export async function run() { 7 | try { 8 | await terraformCommandHandlerAzureRM.apply(); 9 | } catch(error) { 10 | tl.setResult(tl.TaskResult.Failed, 'AzureApplyFailInvalidWorkingDirectoryL0 should have succeeded but failed with error.'); 11 | } 12 | } 13 | 14 | run(); -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV3/Tests/ApplyTests/GCP/GCPApplyFailEmptyWorkingDirectoryL0.ts: -------------------------------------------------------------------------------- 1 | import { TerraformCommandHandlerGCP } from './../../../src/gcp-terraform-command-handler'; 2 | import tl = require('azure-pipelines-task-lib'); 3 | 4 | let terraformCommandHandlerGCP: TerraformCommandHandlerGCP = new TerraformCommandHandlerGCP(); 5 | 6 | export async function run() { 7 | try { 8 | await terraformCommandHandlerGCP.apply(); 9 | } catch(error) { 10 | tl.setResult(tl.TaskResult.Failed, 'GCPApplyFailEmptyWorkingDirectoryL0 should have succeeded but failed with error.'); 11 | } 12 | } 13 | 14 | run(); -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV3/Tests/ApplyTests/GCP/GCPApplyFailInvalidWorkingDirectoryL0.ts: -------------------------------------------------------------------------------- 1 | import { TerraformCommandHandlerGCP } from './../../../src/gcp-terraform-command-handler'; 2 | import tl = require('azure-pipelines-task-lib'); 3 | 4 | let terraformCommandHandlerGCP: TerraformCommandHandlerGCP = new TerraformCommandHandlerGCP(); 5 | 6 | export async function run() { 7 | try { 8 | await terraformCommandHandlerGCP.apply(); 9 | } catch(error) { 10 | tl.setResult(tl.TaskResult.Failed, 'GCPApplyFailInvalidWorkingDirectoryL0 should have succeeded but failed with error.'); 11 | } 12 | } 13 | 14 | run(); -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV3/Tests/ApplyTests/GCP/GCPApplySuccessNoAdditionalArgsL0.ts: -------------------------------------------------------------------------------- 1 | import { TerraformCommandHandlerGCP } from './../../../src/gcp-terraform-command-handler'; 2 | import tl = require('azure-pipelines-task-lib'); 3 | 4 | let terraformCommandHandlerGCP: TerraformCommandHandlerGCP = new TerraformCommandHandlerGCP(); 5 | 6 | export async function run() { 7 | try { 8 | const response = await terraformCommandHandlerGCP.apply(); 9 | if (response === 0) { 10 | tl.setResult(tl.TaskResult.Succeeded, 'GCPApplySuccessNoAdditionalArgsL0 should have succeeded.'); 11 | } else{ 12 | tl.setResult(tl.TaskResult.Failed, 'GCPApplySuccessNoAdditionalArgsL0 should have succeeded but failed.'); 13 | } 14 | } catch(error) { 15 | tl.setResult(tl.TaskResult.Failed, 'GCPApplySuccessNoAdditionalArgsL0 should have succeeded but failed.'); 16 | } 17 | } 18 | 19 | run(); -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV3/Tests/DestroyTests/AWS/AWSDestroyFailInvalidWorkingDirectoryL0.ts: -------------------------------------------------------------------------------- 1 | import { TerraformCommandHandlerAWS } from './../../../src/aws-terraform-command-handler'; 2 | import tl = require('azure-pipelines-task-lib'); 3 | 4 | let terraformCommandHandlerAWS: TerraformCommandHandlerAWS = new TerraformCommandHandlerAWS(); 5 | 6 | export async function run() { 7 | try { 8 | await terraformCommandHandlerAWS.destroy(); 9 | } catch(error) { 10 | tl.setResult(tl.TaskResult.Failed, 'AWSDestroyFailInvalidWorkingDirectoryL0 should have succeeded but failed with error.'); 11 | } 12 | } 13 | 14 | run(); -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV3/Tests/DestroyTests/Azure/AzureDestroyFailInvalidWorkingDirectoryL0.ts: -------------------------------------------------------------------------------- 1 | import { TerraformCommandHandlerAzureRM } from './../../../src/azure-terraform-command-handler'; 2 | import tl = require('azure-pipelines-task-lib'); 3 | 4 | let terraformCommandHandlerAzureRM: TerraformCommandHandlerAzureRM = new TerraformCommandHandlerAzureRM(); 5 | 6 | export async function run() { 7 | try { 8 | await terraformCommandHandlerAzureRM.destroy(); 9 | } catch(error) { 10 | tl.setResult(tl.TaskResult.Failed, 'AzureDestroyFailInvalidWorkingDirectoryL0 should have succeeded but failed with error.'); 11 | } 12 | } 13 | 14 | run(); -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV3/Tests/DestroyTests/GCP/GCPDestroyFailInvalidWorkingDirectoryL0.ts: -------------------------------------------------------------------------------- 1 | import { TerraformCommandHandlerGCP } from './../../../src/gcp-terraform-command-handler'; 2 | import tl = require('azure-pipelines-task-lib'); 3 | 4 | let terraformCommandHandlerGCP: TerraformCommandHandlerGCP = new TerraformCommandHandlerGCP(); 5 | 6 | export async function run() { 7 | try { 8 | await terraformCommandHandlerGCP.destroy(); 9 | } catch(error) { 10 | tl.setResult(tl.TaskResult.Failed, 'GCPDestroyFailInvalidWorkingDirectoryL0 should have succeeded but failed with error.'); 11 | } 12 | } 13 | 14 | run(); -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV3/Tests/DestroyTests/GCP/GCPDestroySuccessNoAdditionalArgsL0.ts: -------------------------------------------------------------------------------- 1 | import { TerraformCommandHandlerGCP } from './../../../src/gcp-terraform-command-handler'; 2 | import tl = require('azure-pipelines-task-lib'); 3 | 4 | let terraformCommandHandlerGCP: TerraformCommandHandlerGCP = new TerraformCommandHandlerGCP(); 5 | 6 | export async function run() { 7 | try { 8 | const response = await terraformCommandHandlerGCP.destroy(); 9 | if (response === 0) { 10 | tl.setResult(tl.TaskResult.Succeeded, 'GCPDestroySuccessNoAdditionalArgsL0 should have succeeded.'); 11 | } else{ 12 | tl.setResult(tl.TaskResult.Failed, 'GCPDestroySuccessNoAdditionalArgsL0 should have succeeded but failed.'); 13 | } 14 | } catch(error) { 15 | tl.setResult(tl.TaskResult.Failed, 'GCPDestroySuccessNoAdditionalArgsL0 should have succeeded but failed.'); 16 | } 17 | } 18 | 19 | run(); -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV3/Tests/InitTests/AWS/AWSInitFailInvalidWorkingDirectoryL0.ts: -------------------------------------------------------------------------------- 1 | import { TerraformCommandHandlerAWS } from './../../../src/aws-terraform-command-handler'; 2 | import tl = require('azure-pipelines-task-lib'); 3 | 4 | let terraformCommandHandlerAWS: TerraformCommandHandlerAWS = new TerraformCommandHandlerAWS(); 5 | 6 | export async function run() { 7 | try { 8 | await terraformCommandHandlerAWS.init(); 9 | } catch(error) { 10 | tl.setResult(tl.TaskResult.Failed, 'AWSInitFailInvalidWorkingDirectoryL0 should have succeeded but failed.'); 11 | } 12 | } 13 | 14 | run(); 15 | -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV3/Tests/InitTests/AWS/AWSInitSuccessAdditionalArgsL0.ts: -------------------------------------------------------------------------------- 1 | import { TerraformCommandHandlerAWS } from './../../../src/aws-terraform-command-handler'; 2 | import tl = require('azure-pipelines-task-lib'); 3 | 4 | let terraformCommandHandlerAWS: TerraformCommandHandlerAWS = new TerraformCommandHandlerAWS(); 5 | 6 | export async function run() { 7 | try { 8 | const response = await terraformCommandHandlerAWS.init(); 9 | if (response === 0) { 10 | tl.setResult(tl.TaskResult.Succeeded, 'AWSInitSuccessAdditionalArgsL0 should have succeeded.'); 11 | } else{ 12 | tl.setResult(tl.TaskResult.Failed, 'AWSInitSuccessAdditionalArgsL0 should have succeeded but failed.'); 13 | } 14 | } catch(error) { 15 | tl.setResult(tl.TaskResult.Failed, 'AWSInitSuccessAdditionalArgsL0 should have succeeded but failed.'); 16 | } 17 | } 18 | 19 | run(); 20 | -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV3/Tests/InitTests/AWS/AWSInitSuccessEmptyWorkingDirL0.ts: -------------------------------------------------------------------------------- 1 | import { TerraformCommandHandlerAWS } from './../../../src/aws-terraform-command-handler'; 2 | import tl = require('azure-pipelines-task-lib'); 3 | 4 | let terraformCommandHandlerAWS: TerraformCommandHandlerAWS = new TerraformCommandHandlerAWS(); 5 | 6 | export async function run() { 7 | try { 8 | const response = await terraformCommandHandlerAWS.init(); 9 | if (response === 0) { 10 | tl.setResult(tl.TaskResult.Succeeded, 'AWSInitSuccessEmptyWorkingDirL0 should have succeeded.'); 11 | } else{ 12 | tl.setResult(tl.TaskResult.Failed, 'AWSInitSuccessEmptyWorkingDirL0 should have succeeded but failed.'); 13 | } 14 | } catch(error) { 15 | tl.setResult(tl.TaskResult.Failed, 'AWSInitSuccessEmptyWorkingDirL0 should have succeeded but failed.'); 16 | } 17 | } 18 | 19 | run(); 20 | -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV3/Tests/InitTests/AWS/AWSInitSuccessNoAdditionalArgsL0.ts: -------------------------------------------------------------------------------- 1 | import { TerraformCommandHandlerAWS } from './../../../src/aws-terraform-command-handler'; 2 | import tl = require('azure-pipelines-task-lib'); 3 | 4 | let terraformCommandHandlerAWS: TerraformCommandHandlerAWS = new TerraformCommandHandlerAWS(); 5 | 6 | export async function run() { 7 | try { 8 | const response = await terraformCommandHandlerAWS.init(); 9 | if (response === 0) { 10 | tl.setResult(tl.TaskResult.Succeeded, 'AWSInitSuccessNoAdditionalArgsL0 should have succeeded.'); 11 | } else{ 12 | tl.setResult(tl.TaskResult.Failed, 'AWSInitSuccessNoAdditionalArgsL0 should have succeeded but failed.'); 13 | } 14 | } catch(error) { 15 | tl.setResult(tl.TaskResult.Failed, 'AWSInitSuccessNoAdditionalArgsL0 should have succeeded but failed.'); 16 | } 17 | } 18 | 19 | run(); 20 | -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV3/Tests/InitTests/Azure/AzureInitFailInvalidWorkingDirectoryL0.ts: -------------------------------------------------------------------------------- 1 | import { TerraformCommandHandlerAzureRM } from './../../../src/azure-terraform-command-handler'; 2 | import tl = require('azure-pipelines-task-lib'); 3 | 4 | let terraformCommandHandlerAzureRM: TerraformCommandHandlerAzureRM = new TerraformCommandHandlerAzureRM(); 5 | 6 | export async function run() { 7 | try { 8 | await terraformCommandHandlerAzureRM.init(); 9 | } catch(error) { 10 | tl.setResult(tl.TaskResult.Failed, 'AzureInitFailInvalidWorkingDirectoryL0 should have succeeded but failed with error.'); 11 | } 12 | } 13 | 14 | run(); -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV3/Tests/InitTests/GCP/GCPInitFailInvalidWorkingDirectoryL0.ts: -------------------------------------------------------------------------------- 1 | import { TerraformCommandHandlerGCP } from './../../../src/gcp-terraform-command-handler'; 2 | import tl = require('azure-pipelines-task-lib'); 3 | 4 | let terraformCommandHandlerGCP: TerraformCommandHandlerGCP = new TerraformCommandHandlerGCP(); 5 | 6 | export async function run() { 7 | try { 8 | await terraformCommandHandlerGCP.init(); 9 | } catch(error) { 10 | tl.setResult(tl.TaskResult.Failed, 'GCPInitFailInvalidWorkingDirectoryL0 should have succeeded but failed.'); 11 | } 12 | } 13 | 14 | run(); 15 | -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV3/Tests/InitTests/GCP/GCPInitSuccessAdditionalArgsL0.ts: -------------------------------------------------------------------------------- 1 | import { TerraformCommandHandlerGCP } from './../../../src/gcp-terraform-command-handler'; 2 | import tl = require('azure-pipelines-task-lib'); 3 | 4 | let terraformCommandHandlerGCP: TerraformCommandHandlerGCP = new TerraformCommandHandlerGCP(); 5 | 6 | export async function run() { 7 | try { 8 | const response = await terraformCommandHandlerGCP.init(); 9 | if (response === 0) { 10 | tl.setResult(tl.TaskResult.Succeeded, 'GCPInitSuccessAdditionalArgsL0 should have succeeded.'); 11 | } else{ 12 | tl.setResult(tl.TaskResult.Failed, 'GCPInitSuccessAdditionalArgsL0 should have succeeded but failed.'); 13 | } 14 | } catch(error) { 15 | tl.setResult(tl.TaskResult.Failed, 'GCPInitSuccessAdditionalArgsL0 should have succeeded but failed.'); 16 | } 17 | } 18 | 19 | run(); -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV3/Tests/InitTests/GCP/GCPInitSuccessEmptyWorkingDirL0.ts: -------------------------------------------------------------------------------- 1 | import { TerraformCommandHandlerGCP } from './../../../src/gcp-terraform-command-handler'; 2 | import tl = require('azure-pipelines-task-lib'); 3 | 4 | let terraformCommandHandlerGCP: TerraformCommandHandlerGCP = new TerraformCommandHandlerGCP(); 5 | 6 | export async function run() { 7 | try { 8 | const response = await terraformCommandHandlerGCP.init(); 9 | if (response === 0) { 10 | tl.setResult(tl.TaskResult.Succeeded, 'GCPInitSuccessEmptyWorkingDirL0 should have succeeded.'); 11 | } else{ 12 | tl.setResult(tl.TaskResult.Failed, 'GCPInitSuccessEmptyWorkingDirL0 should have succeeded but failed.'); 13 | } 14 | } catch(error) { 15 | tl.setResult(tl.TaskResult.Failed, 'GCPInitSuccessEmptyWorkingDirL0 should have succeeded but failed.'); 16 | } 17 | } 18 | 19 | run(); -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV3/Tests/InitTests/GCP/GCPInitSuccessNoAdditionalArgsL0.ts: -------------------------------------------------------------------------------- 1 | import { TerraformCommandHandlerGCP } from './../../../src/gcp-terraform-command-handler'; 2 | import tl = require('azure-pipelines-task-lib'); 3 | 4 | let terraformCommandHandlerGCP: TerraformCommandHandlerGCP = new TerraformCommandHandlerGCP(); 5 | 6 | export async function run() { 7 | try { 8 | const response = await terraformCommandHandlerGCP.init(); 9 | if (response === 0) { 10 | tl.setResult(tl.TaskResult.Succeeded, 'GCPInitSuccessNoAdditionalArgsL0 should have succeeded.'); 11 | } else{ 12 | tl.setResult(tl.TaskResult.Failed, 'GCPInitSuccessNoAdditionalArgsL0 should have succeeded but failed.'); 13 | } 14 | } catch(error) { 15 | tl.setResult(tl.TaskResult.Failed, 'GCPInitSuccessNoAdditionalArgsL0 should have succeeded but failed.'); 16 | } 17 | } 18 | 19 | run(); -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV3/Tests/MultipleProviderTests/MultipleProviderWarningL0.ts: -------------------------------------------------------------------------------- 1 | import { TerraformCommandHandlerAzureRM } from '../../src/azure-terraform-command-handler'; 2 | import tl = require('azure-pipelines-task-lib'); 3 | 4 | let terraformCommandHandlerAzureRM: TerraformCommandHandlerAzureRM = new TerraformCommandHandlerAzureRM(); 5 | 6 | export async function run() { 7 | try { 8 | await terraformCommandHandlerAzureRM.warnIfMultipleProviders(); 9 | } catch(error) { 10 | tl.setResult(tl.TaskResult.Failed, 'MultipleProviderWarningL0 should have succeeded but failed.'); 11 | } 12 | } 13 | 14 | run(); -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV3/Tests/MultipleProviderTests/SingleProviderNoWarningL0.ts: -------------------------------------------------------------------------------- 1 | import { TerraformCommandHandlerAzureRM } from '../../src/azure-terraform-command-handler'; 2 | import tl = require('azure-pipelines-task-lib'); 3 | 4 | let terraformCommandHandlerAzureRM: TerraformCommandHandlerAzureRM = new TerraformCommandHandlerAzureRM(); 5 | 6 | export async function run() { 7 | try { 8 | await terraformCommandHandlerAzureRM.warnIfMultipleProviders(); 9 | } catch(error) { 10 | tl.setResult(tl.TaskResult.Failed, 'SingleProviderNoWarningL0 should have succeeded but failed.'); 11 | } 12 | } 13 | 14 | run(); -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV3/Tests/PlanTests/AWS/AWSPlanFailEmptyWorkingDirectoryL0.ts: -------------------------------------------------------------------------------- 1 | import { TerraformCommandHandlerAWS } from './../../../src/aws-terraform-command-handler'; 2 | import tl = require('azure-pipelines-task-lib'); 3 | 4 | let terraformCommandHandlerAWS: TerraformCommandHandlerAWS = new TerraformCommandHandlerAWS(); 5 | 6 | export async function run() { 7 | try { 8 | await terraformCommandHandlerAWS.plan(); 9 | } catch(error) { 10 | tl.setResult(tl.TaskResult.Failed, 'AWSPlanFailEmptyWorkingDirectoryL0 should have succeeded but failed with error.'); 11 | } 12 | } 13 | 14 | run(); -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV3/Tests/PlanTests/AWS/AWSPlanFailInvalidWorkingDirectoryL0.ts: -------------------------------------------------------------------------------- 1 | import { TerraformCommandHandlerAWS } from './../../../src/aws-terraform-command-handler'; 2 | import tl = require('azure-pipelines-task-lib'); 3 | 4 | let terraformCommandHandlerAWS: TerraformCommandHandlerAWS = new TerraformCommandHandlerAWS(); 5 | 6 | export async function run() { 7 | try { 8 | await terraformCommandHandlerAWS.plan(); 9 | } catch(error) { 10 | tl.setResult(tl.TaskResult.Failed, 'AWSPlanFailInvalidWorkingDirectoryL0 should have succeeded but failed with error.'); 11 | } 12 | } 13 | 14 | run(); -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV3/Tests/PlanTests/AWS/AWSPlanSuccessAdditionalArgsL0.ts: -------------------------------------------------------------------------------- 1 | import { TerraformCommandHandlerAWS } from './../../../src/aws-terraform-command-handler'; 2 | import tl = require('azure-pipelines-task-lib'); 3 | 4 | let terraformCommandHandlerAWS: TerraformCommandHandlerAWS = new TerraformCommandHandlerAWS(); 5 | 6 | export async function run() { 7 | try { 8 | const response = await terraformCommandHandlerAWS.plan(); 9 | if (response === 0) { 10 | tl.setResult(tl.TaskResult.Succeeded, 'AWSPlanSuccessAdditionalArgsL0 should have succeeded.'); 11 | } else{ 12 | tl.setResult(tl.TaskResult.Failed, 'AWSPlanSuccessAdditionalArgsL0 should have succeeded but failed.'); 13 | } 14 | } catch(error) { 15 | tl.setResult(tl.TaskResult.Failed, 'AWSPlanSuccessAdditionalArgsL0 should have succeeded but failed.'); 16 | } 17 | } 18 | 19 | run(); -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV3/Tests/PlanTests/AWS/AWSPlanSuccessNoAdditionalArgsL0.ts: -------------------------------------------------------------------------------- 1 | import { TerraformCommandHandlerAWS } from './../../../src/aws-terraform-command-handler'; 2 | import tl = require('azure-pipelines-task-lib'); 3 | 4 | let terraformCommandHandlerAWS: TerraformCommandHandlerAWS = new TerraformCommandHandlerAWS(); 5 | 6 | export async function run() { 7 | try { 8 | const response = await terraformCommandHandlerAWS.plan(); 9 | if (response === 0) { 10 | tl.setResult(tl.TaskResult.Succeeded, 'AWSPlanSuccessNoAdditionalArgsL0 should have succeeded.'); 11 | } else{ 12 | tl.setResult(tl.TaskResult.Failed, 'AWSPlanSuccessNoAdditionalArgsL0 should have succeeded but failed.'); 13 | } 14 | } catch(error) { 15 | tl.setResult(tl.TaskResult.Failed, 'AWSPlanSuccessNoAdditionalArgsL0 should have succeeded but failed.'); 16 | } 17 | } 18 | 19 | run(); -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV3/Tests/PlanTests/Azure/AzurePlanFailEmptyWorkingDirectoryL0.ts: -------------------------------------------------------------------------------- 1 | import { TerraformCommandHandlerAzureRM } from './../../../src/azure-terraform-command-handler'; 2 | import tl = require('azure-pipelines-task-lib'); 3 | 4 | let terraformCommandHandlerAzureRM: TerraformCommandHandlerAzureRM = new TerraformCommandHandlerAzureRM(); 5 | 6 | export async function run() { 7 | try { 8 | await terraformCommandHandlerAzureRM.plan(); 9 | } catch(error) { 10 | tl.setResult(tl.TaskResult.Failed, 'AzurePlanFailEmptyWorkingDirectoryL0 should have succeeded but failed with error.'); 11 | } 12 | } 13 | 14 | run(); -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV3/Tests/PlanTests/Azure/AzurePlanFailInvalidWorkingDirectoryL0.ts: -------------------------------------------------------------------------------- 1 | import { TerraformCommandHandlerAzureRM } from './../../../src/azure-terraform-command-handler'; 2 | import tl = require('azure-pipelines-task-lib'); 3 | 4 | let terraformCommandHandlerAzureRM: TerraformCommandHandlerAzureRM = new TerraformCommandHandlerAzureRM(); 5 | 6 | export async function run() { 7 | try { 8 | await terraformCommandHandlerAzureRM.plan(); 9 | } catch(error) { 10 | tl.setResult(tl.TaskResult.Failed, 'AzurePlanFailInvalidWorkingDirectoryL0 should have succeeded but failed with error.'); 11 | } 12 | } 13 | 14 | run(); -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV3/Tests/PlanTests/GCP/GCPPlanFailEmptyWorkingDirectoryL0.ts: -------------------------------------------------------------------------------- 1 | import { TerraformCommandHandlerGCP } from './../../../src/gcp-terraform-command-handler'; 2 | import tl = require('azure-pipelines-task-lib'); 3 | 4 | let terraformCommandHandlerGCP: TerraformCommandHandlerGCP = new TerraformCommandHandlerGCP(); 5 | 6 | export async function run() { 7 | try { 8 | await terraformCommandHandlerGCP.plan(); 9 | } catch(error) { 10 | tl.setResult(tl.TaskResult.Failed, 'GCPPlanFailEmptyWorkingDirectoryL0 should have succeeded but failed with error.'); 11 | } 12 | } 13 | 14 | run(); -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV3/Tests/PlanTests/GCP/GCPPlanFailInvalidWorkingDirectoryL0.ts: -------------------------------------------------------------------------------- 1 | import { TerraformCommandHandlerGCP } from './../../../src/gcp-terraform-command-handler'; 2 | import tl = require('azure-pipelines-task-lib'); 3 | 4 | let terraformCommandHandlerGCP: TerraformCommandHandlerGCP = new TerraformCommandHandlerGCP(); 5 | 6 | export async function run() { 7 | try { 8 | await terraformCommandHandlerGCP.plan(); 9 | } catch(error) { 10 | tl.setResult(tl.TaskResult.Failed, 'GCPPlanFailInvalidWorkingDirectoryL0 should have succeeded but failed with error.'); 11 | } 12 | } 13 | 14 | run(); -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV3/Tests/PlanTests/GCP/GCPPlanSuccessAdditionalArgsL0.ts: -------------------------------------------------------------------------------- 1 | import { TerraformCommandHandlerGCP } from './../../../src/gcp-terraform-command-handler'; 2 | import tl = require('azure-pipelines-task-lib'); 3 | 4 | let terraformCommandHandlerGCP: TerraformCommandHandlerGCP = new TerraformCommandHandlerGCP(); 5 | 6 | export async function run() { 7 | try { 8 | const response = await terraformCommandHandlerGCP.plan(); 9 | if (response === 0) { 10 | tl.setResult(tl.TaskResult.Succeeded, 'GCPPlanSuccessAdditionalArgsL0 should have succeeded.'); 11 | } else{ 12 | tl.setResult(tl.TaskResult.Failed, 'GCPPlanSuccessAdditionalArgsL0 should have succeeded but failed.'); 13 | } 14 | } catch(error) { 15 | tl.setResult(tl.TaskResult.Failed, 'GCPPlanSuccessAdditionalArgsL0 should have succeeded but failed.'); 16 | } 17 | } 18 | 19 | run(); -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV3/Tests/PlanTests/GCP/GCPPlanSuccessNoAdditionalArgsL0.ts: -------------------------------------------------------------------------------- 1 | import { TerraformCommandHandlerGCP } from './../../../src/gcp-terraform-command-handler'; 2 | import tl = require('azure-pipelines-task-lib'); 3 | 4 | let terraformCommandHandlerGCP: TerraformCommandHandlerGCP = new TerraformCommandHandlerGCP(); 5 | 6 | export async function run() { 7 | try { 8 | const response = await terraformCommandHandlerGCP.plan(); 9 | if (response === 0) { 10 | tl.setResult(tl.TaskResult.Succeeded, 'GCPPlanSuccessNoAdditionalArgsL0 should have succeeded.'); 11 | } else{ 12 | tl.setResult(tl.TaskResult.Failed, 'GCPPlanSuccessNoAdditionalArgsL0 should have succeeded but failed.'); 13 | } 14 | } catch(error) { 15 | tl.setResult(tl.TaskResult.Failed, 'GCPPlanSuccessNoAdditionalArgsL0 should have succeeded but failed.'); 16 | } 17 | } 18 | 19 | run(); -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV3/Tests/ValidateTests/AWS/AWSValidateFailInvalidWorkingDirectoryL0.ts: -------------------------------------------------------------------------------- 1 | import { TerraformCommandHandlerAWS } from './../../../src/aws-terraform-command-handler'; 2 | import tl = require('azure-pipelines-task-lib'); 3 | 4 | let terraformCommandHandlerAWS: TerraformCommandHandlerAWS = new TerraformCommandHandlerAWS(); 5 | 6 | export async function run() { 7 | try { 8 | await terraformCommandHandlerAWS.validate(); 9 | } catch(error) { 10 | tl.setResult(tl.TaskResult.Failed, 'AWSValidateFailInvalidWorkingDirectoryL0 should have succeeded but failed with error.'); 11 | } 12 | } 13 | 14 | run(); -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV3/Tests/ValidateTests/AWS/AWSValidateSuccessAdditionalArgs.ts: -------------------------------------------------------------------------------- 1 | import ma = require('azure-pipelines-task-lib/mock-answer'); 2 | import tmrm = require('azure-pipelines-task-lib/mock-run'); 3 | import path = require('path'); 4 | 5 | let tp = path.join(__dirname, './AWSValidateSuccessAdditionalArgsL0.js'); 6 | let tr: tmrm.TaskMockRunner = new tmrm.TaskMockRunner(tp); 7 | 8 | tr.setInput('provider', 'aws'); 9 | tr.setInput('command', 'validate'); 10 | tr.setInput('commandOptions', '-no-color'); 11 | 12 | let a: ma.TaskLibAnswers = { 13 | "which": { 14 | "terraform": "terraform" 15 | }, 16 | "checkPath": { 17 | "terraform": true 18 | }, 19 | "exec": { 20 | "terraform validate -no-color": { 21 | "code": 0, 22 | "stdout": "Executed Successfully" 23 | } 24 | } 25 | } 26 | 27 | tr.setAnswers(a); 28 | tr.run(); 29 | -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV3/Tests/ValidateTests/AWS/AWSValidateSuccessAdditionalArgsL0.ts: -------------------------------------------------------------------------------- 1 | import { TerraformCommandHandlerAWS } from './../../../src/aws-terraform-command-handler'; 2 | import tl = require('azure-pipelines-task-lib'); 3 | 4 | let terraformCommandHandlerAWS: TerraformCommandHandlerAWS = new TerraformCommandHandlerAWS(); 5 | 6 | export async function run() { 7 | try { 8 | const response = await terraformCommandHandlerAWS.validate(); 9 | if (response === 0) { 10 | tl.setResult(tl.TaskResult.Succeeded, 'AWSValidateSuccessAdditionalArgsL0 should have succeeded.'); 11 | } else{ 12 | tl.setResult(tl.TaskResult.Failed, 'AWSValidateSuccessAdditionalArgsL0 should have succeeded but failed.'); 13 | } 14 | } catch(error) { 15 | tl.setResult(tl.TaskResult.Failed, 'AWSValidateSuccessAdditionalArgsL0 should have succeeded but failed.'); 16 | } 17 | } 18 | 19 | run(); -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV3/Tests/ValidateTests/AWS/AWSValidateSuccessEmptyWorkingDir.ts: -------------------------------------------------------------------------------- 1 | import ma = require('azure-pipelines-task-lib/mock-answer'); 2 | import tmrm = require('azure-pipelines-task-lib/mock-run'); 3 | import path = require('path'); 4 | 5 | let tp = path.join(__dirname, './AWSValidateSuccessEmptyWorkingDirL0.js'); 6 | let tr: tmrm.TaskMockRunner = new tmrm.TaskMockRunner(tp); 7 | 8 | tr.setInput('provider', 'aws'); 9 | tr.setInput('command', 'validate'); 10 | tr.setInput('workingDirectory', 'DummyWorkingDirectory'); 11 | 12 | let a: ma.TaskLibAnswers = { 13 | "which": { 14 | "terraform": "terraform" 15 | }, 16 | "checkPath": { 17 | "terraform": true 18 | }, 19 | "exec": { 20 | "terraform validate": { 21 | "code": 0, 22 | "stdout": "Executed Successfully" 23 | } 24 | } 25 | } 26 | 27 | tr.setAnswers(a); 28 | tr.run(); -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV3/Tests/ValidateTests/AWS/AWSValidateSuccessNoAdditionalArgs.ts: -------------------------------------------------------------------------------- 1 | import ma = require('azure-pipelines-task-lib/mock-answer'); 2 | import tmrm = require('azure-pipelines-task-lib/mock-run'); 3 | import path = require('path'); 4 | 5 | let tp = path.join(__dirname, './AWSValidateSuccessNoAdditionalArgsL0.js'); 6 | let tr: tmrm.TaskMockRunner = new tmrm.TaskMockRunner(tp); 7 | 8 | tr.setInput('provider', 'aws'); 9 | tr.setInput('command', 'validate'); 10 | 11 | let a: ma.TaskLibAnswers = { 12 | "which": { 13 | "terraform": "terraform" 14 | }, 15 | "checkPath": { 16 | "terraform": true 17 | }, 18 | "exec": { 19 | "terraform validate": { 20 | "code": 0, 21 | "stdout": "Executed Successfully" 22 | } 23 | } 24 | } 25 | 26 | tr.setAnswers(a); 27 | tr.run(); -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV3/Tests/ValidateTests/Azure/AzureValidateFailInvalidWorkingDirectoryL0.ts: -------------------------------------------------------------------------------- 1 | import { TerraformCommandHandlerAzureRM } from './../../../src/azure-terraform-command-handler'; 2 | import tl = require('azure-pipelines-task-lib'); 3 | 4 | let terraformCommandHandlerAzureRM: TerraformCommandHandlerAzureRM = new TerraformCommandHandlerAzureRM(); 5 | 6 | export async function run() { 7 | try { 8 | await terraformCommandHandlerAzureRM.validate(); 9 | } catch(error) { 10 | tl.setResult(tl.TaskResult.Failed, 'AzureValidateFailInvalidWorkingDirectoryL0 should have succeeded but failed with error.'); 11 | } 12 | } 13 | 14 | run(); -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV3/Tests/ValidateTests/Azure/AzureValidateSuccessAdditionalArgs.ts: -------------------------------------------------------------------------------- 1 | import ma = require('azure-pipelines-task-lib/mock-answer'); 2 | import tmrm = require('azure-pipelines-task-lib/mock-run'); 3 | import path = require('path'); 4 | 5 | let tp = path.join(__dirname, './AzureValidateSuccessAdditionalArgsL0.js'); 6 | let tr: tmrm.TaskMockRunner = new tmrm.TaskMockRunner(tp); 7 | 8 | tr.setInput('provider', 'azurerm'); 9 | tr.setInput('command', 'validate'); 10 | tr.setInput('commandOptions', '-no-color'); 11 | 12 | let a: ma.TaskLibAnswers = { 13 | "which": { 14 | "terraform": "terraform" 15 | }, 16 | "checkPath": { 17 | "terraform": true 18 | }, 19 | "exec": { 20 | "terraform validate -no-color": { 21 | "code": 0, 22 | "stdout": "Executed Successfully" 23 | } 24 | } 25 | } 26 | 27 | tr.setAnswers(a); 28 | tr.run(); 29 | -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV3/Tests/ValidateTests/Azure/AzureValidateSuccessNoAdditionalArgs.ts: -------------------------------------------------------------------------------- 1 | import ma = require('azure-pipelines-task-lib/mock-answer'); 2 | import tmrm = require('azure-pipelines-task-lib/mock-run'); 3 | import path = require('path'); 4 | 5 | let tp = path.join(__dirname, './AzureValidateSuccessNoAdditionalArgsL0.js'); 6 | let tr: tmrm.TaskMockRunner = new tmrm.TaskMockRunner(tp); 7 | 8 | tr.setInput('provider', 'azurerm'); 9 | tr.setInput('command', 'validate'); 10 | 11 | let a: ma.TaskLibAnswers = { 12 | "which": { 13 | "terraform": "terraform" 14 | }, 15 | "checkPath": { 16 | "terraform": true 17 | }, 18 | "exec": { 19 | "terraform validate": { 20 | "code": 0, 21 | "stdout": "Executed Successfully" 22 | } 23 | } 24 | } 25 | 26 | tr.setAnswers(a); 27 | tr.run(); -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV3/Tests/ValidateTests/GCP/GCPValidateFailInvalidWorkingDirectoryL0.ts: -------------------------------------------------------------------------------- 1 | import { TerraformCommandHandlerGCP } from './../../../src/gcp-terraform-command-handler'; 2 | import tl = require('azure-pipelines-task-lib'); 3 | 4 | let terraformCommandHandlerGCP: TerraformCommandHandlerGCP = new TerraformCommandHandlerGCP(); 5 | 6 | export async function run() { 7 | try { 8 | await terraformCommandHandlerGCP.validate(); 9 | } catch(error) { 10 | tl.setResult(tl.TaskResult.Failed, 'GCPValidateFailInvalidWorkingDirectoryL0 should have succeeded but failed with error.'); 11 | } 12 | } 13 | 14 | run(); -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV3/Tests/ValidateTests/GCP/GCPValidateSuccessAdditionalArgs.ts: -------------------------------------------------------------------------------- 1 | import ma = require('azure-pipelines-task-lib/mock-answer'); 2 | import tmrm = require('azure-pipelines-task-lib/mock-run'); 3 | import path = require('path'); 4 | 5 | let tp = path.join(__dirname, './GCPValidateSuccessAdditionalArgsL0.js'); 6 | let tr: tmrm.TaskMockRunner = new tmrm.TaskMockRunner(tp); 7 | 8 | tr.setInput('provider', 'gcp'); 9 | tr.setInput('command', 'validate'); 10 | tr.setInput('commandOptions', '-no-color'); 11 | 12 | let a: ma.TaskLibAnswers = { 13 | "which": { 14 | "terraform": "terraform" 15 | }, 16 | "checkPath": { 17 | "terraform": true 18 | }, 19 | "exec": { 20 | "terraform validate -no-color": { 21 | "code": 0, 22 | "stdout": "Executed Successfully" 23 | } 24 | } 25 | } 26 | 27 | tr.setAnswers(a); 28 | tr.run(); 29 | -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV3/Tests/ValidateTests/GCP/GCPValidateSuccessEmptyWorkingDir.ts: -------------------------------------------------------------------------------- 1 | import ma = require('azure-pipelines-task-lib/mock-answer'); 2 | import tmrm = require('azure-pipelines-task-lib/mock-run'); 3 | import path = require('path'); 4 | 5 | let tp = path.join(__dirname, './GCPValidateSuccessEmptyWorkingDirL0.js'); 6 | let tr: tmrm.TaskMockRunner = new tmrm.TaskMockRunner(tp); 7 | 8 | tr.setInput('provider', 'gcp'); 9 | tr.setInput('command', 'validate'); 10 | tr.setInput('workingDirectory', 'DummyWorkingDirectory'); 11 | 12 | let a: ma.TaskLibAnswers = { 13 | "which": { 14 | "terraform": "terraform" 15 | }, 16 | "checkPath": { 17 | "terraform": true 18 | }, 19 | "exec": { 20 | "terraform validate": { 21 | "code": 0, 22 | "stdout": "Executed Successfully" 23 | } 24 | } 25 | } 26 | 27 | tr.setAnswers(a); 28 | tr.run(); -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV3/Tests/ValidateTests/GCP/GCPValidateSuccessNoAdditionalArgs.ts: -------------------------------------------------------------------------------- 1 | import ma = require('azure-pipelines-task-lib/mock-answer'); 2 | import tmrm = require('azure-pipelines-task-lib/mock-run'); 3 | import path = require('path'); 4 | 5 | let tp = path.join(__dirname, './GCPValidateSuccessNoAdditionalArgsL0.js'); 6 | let tr: tmrm.TaskMockRunner = new tmrm.TaskMockRunner(tp); 7 | 8 | tr.setInput('provider', 'gcp'); 9 | tr.setInput('command', 'validate'); 10 | 11 | let a: ma.TaskLibAnswers = { 12 | "which": { 13 | "terraform": "terraform" 14 | }, 15 | "checkPath": { 16 | "terraform": true 17 | }, 18 | "exec": { 19 | "terraform validate": { 20 | "code": 0, 21 | "stdout": "Executed Successfully" 22 | } 23 | } 24 | } 25 | 26 | tr.setAnswers(a); 27 | tr.run(); -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV3/Tests/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "terraformtask", 3 | "version": "1.0.0", 4 | "description": "terraform task installer test", 5 | "main": "index.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1" 8 | }, 9 | "repository": { 10 | "type": "git", 11 | "url": "git+ssh://git@github.com/Microsoft/azure-pipelines-tasks.git" 12 | }, 13 | "author": "Microsoft Corporation", 14 | "license": "MIT", 15 | "bugs": { 16 | "url": "https://github.com/Microsoft/azure-pipelines-tasks/issues" 17 | }, 18 | "homepage": "https://github.com/Microsoft/azure-pipelines-tasks#readme", 19 | "dependencies": { 20 | "nock": "13.2.4" 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV3/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-pipelines-terraform/10d175634d36b67da6355d7a1e1648305f1da7a3/Tasks/TerraformTask/TerraformTaskV3/icon.png -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV3/make.json: -------------------------------------------------------------------------------- 1 | { 2 | } 3 | -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV3/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "terraformtask", 3 | "version": "1.0.0", 4 | "description": "", 5 | "main": "index.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1" 8 | }, 9 | "author": "", 10 | "license": "ISC", 11 | "dependencies": { 12 | "azure-pipelines-task-lib": "^3.3.1", 13 | "del": "^6.0.0" 14 | }, 15 | "devDependencies": { 16 | "@types/mocha": "^2.2.48", 17 | "@types/node": "^10.17.0", 18 | "@types/q": "^1.5.0", 19 | "@types/uuid": "^8.3.1", 20 | "ts-loader": "^5.2.2", 21 | "typescript": "^4.0.0" 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV3/src/index.ts: -------------------------------------------------------------------------------- 1 | import tasks = require('azure-pipelines-task-lib/task'); 2 | import {ParentCommandHandler} from './parent-handler'; 3 | import path = require('path'); 4 | 5 | async function run() { 6 | tasks.setResourcePath(path.join(__dirname, '..', 'task.json')); 7 | 8 | let parentHandler = new ParentCommandHandler(); 9 | try { 10 | await parentHandler.execute(tasks.getInput("provider"), tasks.getInput("command")); 11 | tasks.setResult(tasks.TaskResult.Succeeded, ""); 12 | } catch (error) { 13 | tasks.setResult(tasks.TaskResult.Failed, error); 14 | } 15 | } 16 | 17 | run(); -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV3/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "ES6", 4 | "module": "commonjs", 5 | "skipLibCheck": true 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV4/Tests/ApplyTests/AWS/AWSApplyFailEmptyWorkingDirectoryL0.ts: -------------------------------------------------------------------------------- 1 | import { TerraformCommandHandlerAWS } from './../../../src/aws-terraform-command-handler'; 2 | import tl = require('azure-pipelines-task-lib'); 3 | 4 | let terraformCommandHandlerAWS: TerraformCommandHandlerAWS = new TerraformCommandHandlerAWS(); 5 | 6 | export async function run() { 7 | try { 8 | await terraformCommandHandlerAWS.apply(); 9 | } catch(error) { 10 | tl.setResult(tl.TaskResult.Failed, 'AWSApplyFailEmptyWorkingDirectoryL0 should have succeeded but failed with error.'); 11 | } 12 | } 13 | 14 | run(); -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV4/Tests/ApplyTests/AWS/AWSApplyFailInvalidWorkingDirectoryL0.ts: -------------------------------------------------------------------------------- 1 | import { TerraformCommandHandlerAWS } from './../../../src/aws-terraform-command-handler'; 2 | import tl = require('azure-pipelines-task-lib'); 3 | 4 | let terraformCommandHandlerAWS: TerraformCommandHandlerAWS = new TerraformCommandHandlerAWS(); 5 | 6 | export async function run() { 7 | try { 8 | await terraformCommandHandlerAWS.apply(); 9 | } catch(error) { 10 | tl.setResult(tl.TaskResult.Failed, 'AWSApplyFailInvalidWorkingDirectoryL0 should have succeeded but failed with error.'); 11 | } 12 | } 13 | 14 | run(); -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV4/Tests/ApplyTests/AWS/AWSApplySuccessNoAdditionalArgsL0.ts: -------------------------------------------------------------------------------- 1 | import { TerraformCommandHandlerAWS } from './../../../src/aws-terraform-command-handler'; 2 | import tl = require('azure-pipelines-task-lib'); 3 | 4 | let terraformCommandHandlerAWS: TerraformCommandHandlerAWS = new TerraformCommandHandlerAWS(); 5 | 6 | export async function run() { 7 | try { 8 | const response = await terraformCommandHandlerAWS.apply(); 9 | if (response === 0) { 10 | tl.setResult(tl.TaskResult.Succeeded, 'AWSApplySuccessNoAdditionalArgsL0 should have succeeded.'); 11 | } else{ 12 | tl.setResult(tl.TaskResult.Failed, 'AWSApplySuccessNoAdditionalArgsL0 should have succeeded but failed.'); 13 | } 14 | } catch(error) { 15 | tl.setResult(tl.TaskResult.Failed, 'AWSApplySuccessNoAdditionalArgsL0 should have succeeded but failed.'); 16 | } 17 | } 18 | 19 | run(); 20 | -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV4/Tests/ApplyTests/Azure/AzureApplyFailEmptyWorkingDirectoryL0.ts: -------------------------------------------------------------------------------- 1 | import { TerraformCommandHandlerAzureRM } from './../../../src/azure-terraform-command-handler'; 2 | import tl = require('azure-pipelines-task-lib'); 3 | 4 | let terraformCommandHandlerAzureRM: TerraformCommandHandlerAzureRM = new TerraformCommandHandlerAzureRM(); 5 | 6 | export async function run() { 7 | try { 8 | await terraformCommandHandlerAzureRM.apply(); 9 | } catch(error) { 10 | tl.setResult(tl.TaskResult.Failed, 'AzureApplyFailEmptyWorkingDirectoryL0 should have succeeded but failed with error.'); 11 | } 12 | } 13 | 14 | run(); -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV4/Tests/ApplyTests/Azure/AzureApplyFailInvalidWorkingDirectoryL0.ts: -------------------------------------------------------------------------------- 1 | import { TerraformCommandHandlerAzureRM } from './../../../src/azure-terraform-command-handler'; 2 | import tl = require('azure-pipelines-task-lib'); 3 | 4 | let terraformCommandHandlerAzureRM: TerraformCommandHandlerAzureRM = new TerraformCommandHandlerAzureRM(); 5 | 6 | export async function run() { 7 | try { 8 | await terraformCommandHandlerAzureRM.apply(); 9 | } catch(error) { 10 | tl.setResult(tl.TaskResult.Failed, 'AzureApplyFailInvalidWorkingDirectoryL0 should have succeeded but failed with error.'); 11 | } 12 | } 13 | 14 | run(); -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV4/Tests/ApplyTests/GCP/GCPApplyFailEmptyWorkingDirectoryL0.ts: -------------------------------------------------------------------------------- 1 | import { TerraformCommandHandlerGCP } from './../../../src/gcp-terraform-command-handler'; 2 | import tl = require('azure-pipelines-task-lib'); 3 | 4 | let terraformCommandHandlerGCP: TerraformCommandHandlerGCP = new TerraformCommandHandlerGCP(); 5 | 6 | export async function run() { 7 | try { 8 | await terraformCommandHandlerGCP.apply(); 9 | } catch(error) { 10 | tl.setResult(tl.TaskResult.Failed, 'GCPApplyFailEmptyWorkingDirectoryL0 should have succeeded but failed with error.'); 11 | } 12 | } 13 | 14 | run(); -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV4/Tests/ApplyTests/GCP/GCPApplyFailInvalidWorkingDirectoryL0.ts: -------------------------------------------------------------------------------- 1 | import { TerraformCommandHandlerGCP } from './../../../src/gcp-terraform-command-handler'; 2 | import tl = require('azure-pipelines-task-lib'); 3 | 4 | let terraformCommandHandlerGCP: TerraformCommandHandlerGCP = new TerraformCommandHandlerGCP(); 5 | 6 | export async function run() { 7 | try { 8 | await terraformCommandHandlerGCP.apply(); 9 | } catch(error) { 10 | tl.setResult(tl.TaskResult.Failed, 'GCPApplyFailInvalidWorkingDirectoryL0 should have succeeded but failed with error.'); 11 | } 12 | } 13 | 14 | run(); -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV4/Tests/ApplyTests/GCP/GCPApplySuccessNoAdditionalArgsL0.ts: -------------------------------------------------------------------------------- 1 | import { TerraformCommandHandlerGCP } from './../../../src/gcp-terraform-command-handler'; 2 | import tl = require('azure-pipelines-task-lib'); 3 | 4 | let terraformCommandHandlerGCP: TerraformCommandHandlerGCP = new TerraformCommandHandlerGCP(); 5 | 6 | export async function run() { 7 | try { 8 | const response = await terraformCommandHandlerGCP.apply(); 9 | if (response === 0) { 10 | tl.setResult(tl.TaskResult.Succeeded, 'GCPApplySuccessNoAdditionalArgsL0 should have succeeded.'); 11 | } else{ 12 | tl.setResult(tl.TaskResult.Failed, 'GCPApplySuccessNoAdditionalArgsL0 should have succeeded but failed.'); 13 | } 14 | } catch(error) { 15 | tl.setResult(tl.TaskResult.Failed, 'GCPApplySuccessNoAdditionalArgsL0 should have succeeded but failed.'); 16 | } 17 | } 18 | 19 | run(); -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV4/Tests/DestroyTests/AWS/AWSDestroyFailInvalidWorkingDirectoryL0.ts: -------------------------------------------------------------------------------- 1 | import { TerraformCommandHandlerAWS } from './../../../src/aws-terraform-command-handler'; 2 | import tl = require('azure-pipelines-task-lib'); 3 | 4 | let terraformCommandHandlerAWS: TerraformCommandHandlerAWS = new TerraformCommandHandlerAWS(); 5 | 6 | export async function run() { 7 | try { 8 | await terraformCommandHandlerAWS.destroy(); 9 | } catch(error) { 10 | tl.setResult(tl.TaskResult.Failed, 'AWSDestroyFailInvalidWorkingDirectoryL0 should have succeeded but failed with error.'); 11 | } 12 | } 13 | 14 | run(); -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV4/Tests/DestroyTests/Azure/AzureDestroyFailInvalidWorkingDirectoryL0.ts: -------------------------------------------------------------------------------- 1 | import { TerraformCommandHandlerAzureRM } from './../../../src/azure-terraform-command-handler'; 2 | import tl = require('azure-pipelines-task-lib'); 3 | 4 | let terraformCommandHandlerAzureRM: TerraformCommandHandlerAzureRM = new TerraformCommandHandlerAzureRM(); 5 | 6 | export async function run() { 7 | try { 8 | await terraformCommandHandlerAzureRM.destroy(); 9 | } catch(error) { 10 | tl.setResult(tl.TaskResult.Failed, 'AzureDestroyFailInvalidWorkingDirectoryL0 should have succeeded but failed with error.'); 11 | } 12 | } 13 | 14 | run(); -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV4/Tests/DestroyTests/GCP/GCPDestroyFailInvalidWorkingDirectoryL0.ts: -------------------------------------------------------------------------------- 1 | import { TerraformCommandHandlerGCP } from './../../../src/gcp-terraform-command-handler'; 2 | import tl = require('azure-pipelines-task-lib'); 3 | 4 | let terraformCommandHandlerGCP: TerraformCommandHandlerGCP = new TerraformCommandHandlerGCP(); 5 | 6 | export async function run() { 7 | try { 8 | await terraformCommandHandlerGCP.destroy(); 9 | } catch(error) { 10 | tl.setResult(tl.TaskResult.Failed, 'GCPDestroyFailInvalidWorkingDirectoryL0 should have succeeded but failed with error.'); 11 | } 12 | } 13 | 14 | run(); -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV4/Tests/InitTests/AWS/AWSInitFailInvalidWorkingDirectoryL0.ts: -------------------------------------------------------------------------------- 1 | import { TerraformCommandHandlerAWS } from './../../../src/aws-terraform-command-handler'; 2 | import tl = require('azure-pipelines-task-lib'); 3 | 4 | let terraformCommandHandlerAWS: TerraformCommandHandlerAWS = new TerraformCommandHandlerAWS(); 5 | 6 | export async function run() { 7 | try { 8 | await terraformCommandHandlerAWS.init(); 9 | } catch(error) { 10 | tl.setResult(tl.TaskResult.Failed, 'AWSInitFailInvalidWorkingDirectoryL0 should have succeeded but failed.'); 11 | } 12 | } 13 | 14 | run(); 15 | -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV4/Tests/InitTests/AWS/AWSInitSuccessAdditionalArgsL0.ts: -------------------------------------------------------------------------------- 1 | import { TerraformCommandHandlerAWS } from './../../../src/aws-terraform-command-handler'; 2 | import tl = require('azure-pipelines-task-lib'); 3 | 4 | let terraformCommandHandlerAWS: TerraformCommandHandlerAWS = new TerraformCommandHandlerAWS(); 5 | 6 | export async function run() { 7 | try { 8 | const response = await terraformCommandHandlerAWS.init(); 9 | if (response === 0) { 10 | tl.setResult(tl.TaskResult.Succeeded, 'AWSInitSuccessAdditionalArgsL0 should have succeeded.'); 11 | } else{ 12 | tl.setResult(tl.TaskResult.Failed, 'AWSInitSuccessAdditionalArgsL0 should have succeeded but failed.'); 13 | } 14 | } catch(error) { 15 | tl.setResult(tl.TaskResult.Failed, 'AWSInitSuccessAdditionalArgsL0 should have succeeded but failed.'); 16 | } 17 | } 18 | 19 | run(); 20 | -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV4/Tests/InitTests/AWS/AWSInitSuccessEmptyWorkingDirL0.ts: -------------------------------------------------------------------------------- 1 | import { TerraformCommandHandlerAWS } from './../../../src/aws-terraform-command-handler'; 2 | import tl = require('azure-pipelines-task-lib'); 3 | 4 | let terraformCommandHandlerAWS: TerraformCommandHandlerAWS = new TerraformCommandHandlerAWS(); 5 | 6 | export async function run() { 7 | try { 8 | const response = await terraformCommandHandlerAWS.init(); 9 | if (response === 0) { 10 | tl.setResult(tl.TaskResult.Succeeded, 'AWSInitSuccessEmptyWorkingDirL0 should have succeeded.'); 11 | } else{ 12 | tl.setResult(tl.TaskResult.Failed, 'AWSInitSuccessEmptyWorkingDirL0 should have succeeded but failed.'); 13 | } 14 | } catch(error) { 15 | tl.setResult(tl.TaskResult.Failed, 'AWSInitSuccessEmptyWorkingDirL0 should have succeeded but failed.'); 16 | } 17 | } 18 | 19 | run(); 20 | -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV4/Tests/InitTests/AWS/AWSInitSuccessNoAdditionalArgsL0.ts: -------------------------------------------------------------------------------- 1 | import { TerraformCommandHandlerAWS } from './../../../src/aws-terraform-command-handler'; 2 | import tl = require('azure-pipelines-task-lib'); 3 | 4 | let terraformCommandHandlerAWS: TerraformCommandHandlerAWS = new TerraformCommandHandlerAWS(); 5 | 6 | export async function run() { 7 | try { 8 | const response = await terraformCommandHandlerAWS.init(); 9 | if (response === 0) { 10 | tl.setResult(tl.TaskResult.Succeeded, 'AWSInitSuccessNoAdditionalArgsL0 should have succeeded.'); 11 | } else{ 12 | tl.setResult(tl.TaskResult.Failed, 'AWSInitSuccessNoAdditionalArgsL0 should have succeeded but failed.'); 13 | } 14 | } catch(error) { 15 | tl.setResult(tl.TaskResult.Failed, 'AWSInitSuccessNoAdditionalArgsL0 should have succeeded but failed.'); 16 | } 17 | } 18 | 19 | run(); 20 | -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV4/Tests/InitTests/Azure/AzureInitFailInvalidWorkingDirectoryL0.ts: -------------------------------------------------------------------------------- 1 | import { TerraformCommandHandlerAzureRM } from './../../../src/azure-terraform-command-handler'; 2 | import tl = require('azure-pipelines-task-lib'); 3 | 4 | let terraformCommandHandlerAzureRM: TerraformCommandHandlerAzureRM = new TerraformCommandHandlerAzureRM(); 5 | 6 | export async function run() { 7 | try { 8 | await terraformCommandHandlerAzureRM.init(); 9 | } catch(error) { 10 | tl.setResult(tl.TaskResult.Failed, 'AzureInitFailInvalidWorkingDirectoryL0 should have succeeded but failed with error.'); 11 | } 12 | } 13 | 14 | run(); -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV4/Tests/InitTests/GCP/GCPInitFailInvalidWorkingDirectoryL0.ts: -------------------------------------------------------------------------------- 1 | import { TerraformCommandHandlerGCP } from './../../../src/gcp-terraform-command-handler'; 2 | import tl = require('azure-pipelines-task-lib'); 3 | 4 | let terraformCommandHandlerGCP: TerraformCommandHandlerGCP = new TerraformCommandHandlerGCP(); 5 | 6 | export async function run() { 7 | try { 8 | await terraformCommandHandlerGCP.init(); 9 | } catch(error) { 10 | tl.setResult(tl.TaskResult.Failed, 'GCPInitFailInvalidWorkingDirectoryL0 should have succeeded but failed.'); 11 | } 12 | } 13 | 14 | run(); 15 | -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV4/Tests/InitTests/GCP/GCPInitSuccessAdditionalArgsL0.ts: -------------------------------------------------------------------------------- 1 | import { TerraformCommandHandlerGCP } from './../../../src/gcp-terraform-command-handler'; 2 | import tl = require('azure-pipelines-task-lib'); 3 | 4 | let terraformCommandHandlerGCP: TerraformCommandHandlerGCP = new TerraformCommandHandlerGCP(); 5 | 6 | export async function run() { 7 | try { 8 | const response = await terraformCommandHandlerGCP.init(); 9 | if (response === 0) { 10 | tl.setResult(tl.TaskResult.Succeeded, 'GCPInitSuccessAdditionalArgsL0 should have succeeded.'); 11 | } else{ 12 | tl.setResult(tl.TaskResult.Failed, 'GCPInitSuccessAdditionalArgsL0 should have succeeded but failed.'); 13 | } 14 | } catch(error) { 15 | tl.setResult(tl.TaskResult.Failed, 'GCPInitSuccessAdditionalArgsL0 should have succeeded but failed.'); 16 | } 17 | } 18 | 19 | run(); -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV4/Tests/InitTests/GCP/GCPInitSuccessEmptyWorkingDirL0.ts: -------------------------------------------------------------------------------- 1 | import { TerraformCommandHandlerGCP } from './../../../src/gcp-terraform-command-handler'; 2 | import tl = require('azure-pipelines-task-lib'); 3 | 4 | let terraformCommandHandlerGCP: TerraformCommandHandlerGCP = new TerraformCommandHandlerGCP(); 5 | 6 | export async function run() { 7 | try { 8 | const response = await terraformCommandHandlerGCP.init(); 9 | if (response === 0) { 10 | tl.setResult(tl.TaskResult.Succeeded, 'GCPInitSuccessEmptyWorkingDirL0 should have succeeded.'); 11 | } else{ 12 | tl.setResult(tl.TaskResult.Failed, 'GCPInitSuccessEmptyWorkingDirL0 should have succeeded but failed.'); 13 | } 14 | } catch(error) { 15 | tl.setResult(tl.TaskResult.Failed, 'GCPInitSuccessEmptyWorkingDirL0 should have succeeded but failed.'); 16 | } 17 | } 18 | 19 | run(); -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV4/Tests/InitTests/GCP/GCPInitSuccessNoAdditionalArgsL0.ts: -------------------------------------------------------------------------------- 1 | import { TerraformCommandHandlerGCP } from './../../../src/gcp-terraform-command-handler'; 2 | import tl = require('azure-pipelines-task-lib'); 3 | 4 | let terraformCommandHandlerGCP: TerraformCommandHandlerGCP = new TerraformCommandHandlerGCP(); 5 | 6 | export async function run() { 7 | try { 8 | const response = await terraformCommandHandlerGCP.init(); 9 | if (response === 0) { 10 | tl.setResult(tl.TaskResult.Succeeded, 'GCPInitSuccessNoAdditionalArgsL0 should have succeeded.'); 11 | } else{ 12 | tl.setResult(tl.TaskResult.Failed, 'GCPInitSuccessNoAdditionalArgsL0 should have succeeded but failed.'); 13 | } 14 | } catch(error) { 15 | tl.setResult(tl.TaskResult.Failed, 'GCPInitSuccessNoAdditionalArgsL0 should have succeeded but failed.'); 16 | } 17 | } 18 | 19 | run(); -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV4/Tests/MultipleProviderTests/MultipleProviderWarningL0.ts: -------------------------------------------------------------------------------- 1 | import { TerraformCommandHandlerAzureRM } from '../../src/azure-terraform-command-handler'; 2 | import tl = require('azure-pipelines-task-lib'); 3 | 4 | let terraformCommandHandlerAzureRM: TerraformCommandHandlerAzureRM = new TerraformCommandHandlerAzureRM(); 5 | 6 | export async function run() { 7 | try { 8 | await terraformCommandHandlerAzureRM.warnIfMultipleProviders(); 9 | } catch(error) { 10 | tl.setResult(tl.TaskResult.Failed, 'MultipleProviderWarningL0 should have succeeded but failed.'); 11 | } 12 | } 13 | 14 | run(); -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV4/Tests/MultipleProviderTests/SingleProviderNoWarningL0.ts: -------------------------------------------------------------------------------- 1 | import { TerraformCommandHandlerAzureRM } from '../../src/azure-terraform-command-handler'; 2 | import tl = require('azure-pipelines-task-lib'); 3 | 4 | let terraformCommandHandlerAzureRM: TerraformCommandHandlerAzureRM = new TerraformCommandHandlerAzureRM(); 5 | 6 | export async function run() { 7 | try { 8 | await terraformCommandHandlerAzureRM.warnIfMultipleProviders(); 9 | } catch(error) { 10 | tl.setResult(tl.TaskResult.Failed, 'SingleProviderNoWarningL0 should have succeeded but failed.'); 11 | } 12 | } 13 | 14 | run(); -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV4/Tests/PlanTests/AWS/AWSPlanFailEmptyWorkingDirectoryL0.ts: -------------------------------------------------------------------------------- 1 | import { TerraformCommandHandlerAWS } from './../../../src/aws-terraform-command-handler'; 2 | import tl = require('azure-pipelines-task-lib'); 3 | 4 | let terraformCommandHandlerAWS: TerraformCommandHandlerAWS = new TerraformCommandHandlerAWS(); 5 | 6 | export async function run() { 7 | try { 8 | await terraformCommandHandlerAWS.plan(); 9 | } catch(error) { 10 | tl.setResult(tl.TaskResult.Failed, 'AWSPlanFailEmptyWorkingDirectoryL0 should have succeeded but failed with error.'); 11 | } 12 | } 13 | 14 | run(); -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV4/Tests/PlanTests/AWS/AWSPlanFailInvalidWorkingDirectoryL0.ts: -------------------------------------------------------------------------------- 1 | import { TerraformCommandHandlerAWS } from './../../../src/aws-terraform-command-handler'; 2 | import tl = require('azure-pipelines-task-lib'); 3 | 4 | let terraformCommandHandlerAWS: TerraformCommandHandlerAWS = new TerraformCommandHandlerAWS(); 5 | 6 | export async function run() { 7 | try { 8 | await terraformCommandHandlerAWS.plan(); 9 | } catch(error) { 10 | tl.setResult(tl.TaskResult.Failed, 'AWSPlanFailInvalidWorkingDirectoryL0 should have succeeded but failed with error.'); 11 | } 12 | } 13 | 14 | run(); -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV4/Tests/PlanTests/AWS/AWSPlanSuccessAdditionalArgsL0.ts: -------------------------------------------------------------------------------- 1 | import { TerraformCommandHandlerAWS } from './../../../src/aws-terraform-command-handler'; 2 | import tl = require('azure-pipelines-task-lib'); 3 | 4 | let terraformCommandHandlerAWS: TerraformCommandHandlerAWS = new TerraformCommandHandlerAWS(); 5 | 6 | export async function run() { 7 | try { 8 | const response = await terraformCommandHandlerAWS.plan(); 9 | if (response === 0) { 10 | tl.setResult(tl.TaskResult.Succeeded, 'AWSPlanSuccessAdditionalArgsL0 should have succeeded.'); 11 | } else{ 12 | tl.setResult(tl.TaskResult.Failed, 'AWSPlanSuccessAdditionalArgsL0 should have succeeded but failed.'); 13 | } 14 | } catch(error) { 15 | tl.setResult(tl.TaskResult.Failed, 'AWSPlanSuccessAdditionalArgsL0 should have succeeded but failed.'); 16 | } 17 | } 18 | 19 | run(); -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV4/Tests/PlanTests/AWS/AWSPlanSuccessNoAdditionalArgsL0.ts: -------------------------------------------------------------------------------- 1 | import { TerraformCommandHandlerAWS } from './../../../src/aws-terraform-command-handler'; 2 | import tl = require('azure-pipelines-task-lib'); 3 | 4 | let terraformCommandHandlerAWS: TerraformCommandHandlerAWS = new TerraformCommandHandlerAWS(); 5 | 6 | export async function run() { 7 | try { 8 | const response = await terraformCommandHandlerAWS.plan(); 9 | if (response === 0) { 10 | tl.setResult(tl.TaskResult.Succeeded, 'AWSPlanSuccessNoAdditionalArgsL0 should have succeeded.'); 11 | } else{ 12 | tl.setResult(tl.TaskResult.Failed, 'AWSPlanSuccessNoAdditionalArgsL0 should have succeeded but failed.'); 13 | } 14 | } catch(error) { 15 | tl.setResult(tl.TaskResult.Failed, 'AWSPlanSuccessNoAdditionalArgsL0 should have succeeded but failed.'); 16 | } 17 | } 18 | 19 | run(); -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV4/Tests/PlanTests/Azure/AzurePlanFailEmptyWorkingDirectoryL0.ts: -------------------------------------------------------------------------------- 1 | import { TerraformCommandHandlerAzureRM } from './../../../src/azure-terraform-command-handler'; 2 | import tl = require('azure-pipelines-task-lib'); 3 | 4 | let terraformCommandHandlerAzureRM: TerraformCommandHandlerAzureRM = new TerraformCommandHandlerAzureRM(); 5 | 6 | export async function run() { 7 | try { 8 | await terraformCommandHandlerAzureRM.plan(); 9 | } catch(error) { 10 | tl.setResult(tl.TaskResult.Failed, 'AzurePlanFailEmptyWorkingDirectoryL0 should have succeeded but failed with error.'); 11 | } 12 | } 13 | 14 | run(); -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV4/Tests/PlanTests/Azure/AzurePlanFailInvalidWorkingDirectoryL0.ts: -------------------------------------------------------------------------------- 1 | import { TerraformCommandHandlerAzureRM } from './../../../src/azure-terraform-command-handler'; 2 | import tl = require('azure-pipelines-task-lib'); 3 | 4 | let terraformCommandHandlerAzureRM: TerraformCommandHandlerAzureRM = new TerraformCommandHandlerAzureRM(); 5 | 6 | export async function run() { 7 | try { 8 | await terraformCommandHandlerAzureRM.plan(); 9 | } catch(error) { 10 | tl.setResult(tl.TaskResult.Failed, 'AzurePlanFailInvalidWorkingDirectoryL0 should have succeeded but failed with error.'); 11 | } 12 | } 13 | 14 | run(); -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV4/Tests/PlanTests/GCP/GCPPlanFailEmptyWorkingDirectoryL0.ts: -------------------------------------------------------------------------------- 1 | import { TerraformCommandHandlerGCP } from './../../../src/gcp-terraform-command-handler'; 2 | import tl = require('azure-pipelines-task-lib'); 3 | 4 | let terraformCommandHandlerGCP: TerraformCommandHandlerGCP = new TerraformCommandHandlerGCP(); 5 | 6 | export async function run() { 7 | try { 8 | await terraformCommandHandlerGCP.plan(); 9 | } catch(error) { 10 | tl.setResult(tl.TaskResult.Failed, 'GCPPlanFailEmptyWorkingDirectoryL0 should have succeeded but failed with error.'); 11 | } 12 | } 13 | 14 | run(); -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV4/Tests/PlanTests/GCP/GCPPlanFailInvalidWorkingDirectoryL0.ts: -------------------------------------------------------------------------------- 1 | import { TerraformCommandHandlerGCP } from './../../../src/gcp-terraform-command-handler'; 2 | import tl = require('azure-pipelines-task-lib'); 3 | 4 | let terraformCommandHandlerGCP: TerraformCommandHandlerGCP = new TerraformCommandHandlerGCP(); 5 | 6 | export async function run() { 7 | try { 8 | await terraformCommandHandlerGCP.plan(); 9 | } catch(error) { 10 | tl.setResult(tl.TaskResult.Failed, 'GCPPlanFailInvalidWorkingDirectoryL0 should have succeeded but failed with error.'); 11 | } 12 | } 13 | 14 | run(); -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV4/Tests/PlanTests/GCP/GCPPlanSuccessAdditionalArgsL0.ts: -------------------------------------------------------------------------------- 1 | import { TerraformCommandHandlerGCP } from './../../../src/gcp-terraform-command-handler'; 2 | import tl = require('azure-pipelines-task-lib'); 3 | 4 | let terraformCommandHandlerGCP: TerraformCommandHandlerGCP = new TerraformCommandHandlerGCP(); 5 | 6 | export async function run() { 7 | try { 8 | const response = await terraformCommandHandlerGCP.plan(); 9 | if (response === 0) { 10 | tl.setResult(tl.TaskResult.Succeeded, 'GCPPlanSuccessAdditionalArgsL0 should have succeeded.'); 11 | } else{ 12 | tl.setResult(tl.TaskResult.Failed, 'GCPPlanSuccessAdditionalArgsL0 should have succeeded but failed.'); 13 | } 14 | } catch(error) { 15 | tl.setResult(tl.TaskResult.Failed, 'GCPPlanSuccessAdditionalArgsL0 should have succeeded but failed.'); 16 | } 17 | } 18 | 19 | run(); -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV4/Tests/PlanTests/GCP/GCPPlanSuccessNoAdditionalArgsL0.ts: -------------------------------------------------------------------------------- 1 | import { TerraformCommandHandlerGCP } from './../../../src/gcp-terraform-command-handler'; 2 | import tl = require('azure-pipelines-task-lib'); 3 | 4 | let terraformCommandHandlerGCP: TerraformCommandHandlerGCP = new TerraformCommandHandlerGCP(); 5 | 6 | export async function run() { 7 | try { 8 | const response = await terraformCommandHandlerGCP.plan(); 9 | if (response === 0) { 10 | tl.setResult(tl.TaskResult.Succeeded, 'GCPPlanSuccessNoAdditionalArgsL0 should have succeeded.'); 11 | } else{ 12 | tl.setResult(tl.TaskResult.Failed, 'GCPPlanSuccessNoAdditionalArgsL0 should have succeeded but failed.'); 13 | } 14 | } catch(error) { 15 | tl.setResult(tl.TaskResult.Failed, 'GCPPlanSuccessNoAdditionalArgsL0 should have succeeded but failed.'); 16 | } 17 | } 18 | 19 | run(); -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV4/Tests/ValidateTests/AWS/AWSValidateFailInvalidWorkingDirectoryL0.ts: -------------------------------------------------------------------------------- 1 | import { TerraformCommandHandlerAWS } from './../../../src/aws-terraform-command-handler'; 2 | import tl = require('azure-pipelines-task-lib'); 3 | 4 | let terraformCommandHandlerAWS: TerraformCommandHandlerAWS = new TerraformCommandHandlerAWS(); 5 | 6 | export async function run() { 7 | try { 8 | await terraformCommandHandlerAWS.validate(); 9 | } catch(error) { 10 | tl.setResult(tl.TaskResult.Failed, 'AWSValidateFailInvalidWorkingDirectoryL0 should have succeeded but failed with error.'); 11 | } 12 | } 13 | 14 | run(); -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV4/Tests/ValidateTests/AWS/AWSValidateSuccessAdditionalArgs.ts: -------------------------------------------------------------------------------- 1 | import ma = require('azure-pipelines-task-lib/mock-answer'); 2 | import tmrm = require('azure-pipelines-task-lib/mock-run'); 3 | import path = require('path'); 4 | 5 | let tp = path.join(__dirname, './AWSValidateSuccessAdditionalArgsL0.js'); 6 | let tr: tmrm.TaskMockRunner = new tmrm.TaskMockRunner(tp); 7 | 8 | tr.setInput('provider', 'aws'); 9 | tr.setInput('command', 'validate'); 10 | tr.setInput('commandOptions', '-no-color'); 11 | 12 | let a: ma.TaskLibAnswers = { 13 | "which": { 14 | "terraform": "terraform" 15 | }, 16 | "checkPath": { 17 | "terraform": true 18 | }, 19 | "exec": { 20 | "terraform validate -no-color": { 21 | "code": 0, 22 | "stdout": "Executed Successfully" 23 | } 24 | } 25 | } 26 | 27 | tr.setAnswers(a); 28 | tr.run(); 29 | -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV4/Tests/ValidateTests/AWS/AWSValidateSuccessEmptyWorkingDir.ts: -------------------------------------------------------------------------------- 1 | import ma = require('azure-pipelines-task-lib/mock-answer'); 2 | import tmrm = require('azure-pipelines-task-lib/mock-run'); 3 | import path = require('path'); 4 | 5 | let tp = path.join(__dirname, './AWSValidateSuccessEmptyWorkingDirL0.js'); 6 | let tr: tmrm.TaskMockRunner = new tmrm.TaskMockRunner(tp); 7 | 8 | tr.setInput('provider', 'aws'); 9 | tr.setInput('command', 'validate'); 10 | tr.setInput('workingDirectory', 'DummyWorkingDirectory'); 11 | 12 | let a: ma.TaskLibAnswers = { 13 | "which": { 14 | "terraform": "terraform" 15 | }, 16 | "checkPath": { 17 | "terraform": true 18 | }, 19 | "exec": { 20 | "terraform validate": { 21 | "code": 0, 22 | "stdout": "Executed Successfully" 23 | } 24 | } 25 | } 26 | 27 | tr.setAnswers(a); 28 | tr.run(); -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV4/Tests/ValidateTests/AWS/AWSValidateSuccessNoAdditionalArgs.ts: -------------------------------------------------------------------------------- 1 | import ma = require('azure-pipelines-task-lib/mock-answer'); 2 | import tmrm = require('azure-pipelines-task-lib/mock-run'); 3 | import path = require('path'); 4 | 5 | let tp = path.join(__dirname, './AWSValidateSuccessNoAdditionalArgsL0.js'); 6 | let tr: tmrm.TaskMockRunner = new tmrm.TaskMockRunner(tp); 7 | 8 | tr.setInput('provider', 'aws'); 9 | tr.setInput('command', 'validate'); 10 | 11 | let a: ma.TaskLibAnswers = { 12 | "which": { 13 | "terraform": "terraform" 14 | }, 15 | "checkPath": { 16 | "terraform": true 17 | }, 18 | "exec": { 19 | "terraform validate": { 20 | "code": 0, 21 | "stdout": "Executed Successfully" 22 | } 23 | } 24 | } 25 | 26 | tr.setAnswers(a); 27 | tr.run(); -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV4/Tests/ValidateTests/Azure/AzureValidateFailInvalidWorkingDirectoryL0.ts: -------------------------------------------------------------------------------- 1 | import { TerraformCommandHandlerAzureRM } from './../../../src/azure-terraform-command-handler'; 2 | import tl = require('azure-pipelines-task-lib'); 3 | 4 | let terraformCommandHandlerAzureRM: TerraformCommandHandlerAzureRM = new TerraformCommandHandlerAzureRM(); 5 | 6 | export async function run() { 7 | try { 8 | await terraformCommandHandlerAzureRM.validate(); 9 | } catch(error) { 10 | tl.setResult(tl.TaskResult.Failed, 'AzureValidateFailInvalidWorkingDirectoryL0 should have succeeded but failed with error.'); 11 | } 12 | } 13 | 14 | run(); -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV4/Tests/ValidateTests/Azure/AzureValidateSuccessNoAdditionalArgs.ts: -------------------------------------------------------------------------------- 1 | import ma = require('azure-pipelines-task-lib/mock-answer'); 2 | import tmrm = require('azure-pipelines-task-lib/mock-run'); 3 | import path = require('path'); 4 | 5 | let tp = path.join(__dirname, './AzureValidateSuccessNoAdditionalArgsL0.js'); 6 | let tr: tmrm.TaskMockRunner = new tmrm.TaskMockRunner(tp); 7 | 8 | tr.setInput('provider', 'azurerm'); 9 | tr.setInput('command', 'validate'); 10 | 11 | let a: ma.TaskLibAnswers = { 12 | "which": { 13 | "terraform": "terraform" 14 | }, 15 | "checkPath": { 16 | "terraform": true 17 | }, 18 | "exec": { 19 | "terraform validate": { 20 | "code": 0, 21 | "stdout": "Executed Successfully" 22 | } 23 | } 24 | } 25 | 26 | tr.setAnswers(a); 27 | tr.run(); -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV4/Tests/ValidateTests/GCP/GCPValidateFailInvalidWorkingDirectoryL0.ts: -------------------------------------------------------------------------------- 1 | import { TerraformCommandHandlerGCP } from './../../../src/gcp-terraform-command-handler'; 2 | import tl = require('azure-pipelines-task-lib'); 3 | 4 | let terraformCommandHandlerGCP: TerraformCommandHandlerGCP = new TerraformCommandHandlerGCP(); 5 | 6 | export async function run() { 7 | try { 8 | await terraformCommandHandlerGCP.validate(); 9 | } catch(error) { 10 | tl.setResult(tl.TaskResult.Failed, 'GCPValidateFailInvalidWorkingDirectoryL0 should have succeeded but failed with error.'); 11 | } 12 | } 13 | 14 | run(); -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV4/Tests/ValidateTests/GCP/GCPValidateSuccessAdditionalArgs.ts: -------------------------------------------------------------------------------- 1 | import ma = require('azure-pipelines-task-lib/mock-answer'); 2 | import tmrm = require('azure-pipelines-task-lib/mock-run'); 3 | import path = require('path'); 4 | 5 | let tp = path.join(__dirname, './GCPValidateSuccessAdditionalArgsL0.js'); 6 | let tr: tmrm.TaskMockRunner = new tmrm.TaskMockRunner(tp); 7 | 8 | tr.setInput('provider', 'gcp'); 9 | tr.setInput('command', 'validate'); 10 | tr.setInput('commandOptions', '-no-color'); 11 | 12 | let a: ma.TaskLibAnswers = { 13 | "which": { 14 | "terraform": "terraform" 15 | }, 16 | "checkPath": { 17 | "terraform": true 18 | }, 19 | "exec": { 20 | "terraform validate -no-color": { 21 | "code": 0, 22 | "stdout": "Executed Successfully" 23 | } 24 | } 25 | } 26 | 27 | tr.setAnswers(a); 28 | tr.run(); 29 | -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV4/Tests/ValidateTests/GCP/GCPValidateSuccessEmptyWorkingDir.ts: -------------------------------------------------------------------------------- 1 | import ma = require('azure-pipelines-task-lib/mock-answer'); 2 | import tmrm = require('azure-pipelines-task-lib/mock-run'); 3 | import path = require('path'); 4 | 5 | let tp = path.join(__dirname, './GCPValidateSuccessEmptyWorkingDirL0.js'); 6 | let tr: tmrm.TaskMockRunner = new tmrm.TaskMockRunner(tp); 7 | 8 | tr.setInput('provider', 'gcp'); 9 | tr.setInput('command', 'validate'); 10 | tr.setInput('workingDirectory', 'DummyWorkingDirectory'); 11 | 12 | let a: ma.TaskLibAnswers = { 13 | "which": { 14 | "terraform": "terraform" 15 | }, 16 | "checkPath": { 17 | "terraform": true 18 | }, 19 | "exec": { 20 | "terraform validate": { 21 | "code": 0, 22 | "stdout": "Executed Successfully" 23 | } 24 | } 25 | } 26 | 27 | tr.setAnswers(a); 28 | tr.run(); -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV4/Tests/ValidateTests/GCP/GCPValidateSuccessNoAdditionalArgs.ts: -------------------------------------------------------------------------------- 1 | import ma = require('azure-pipelines-task-lib/mock-answer'); 2 | import tmrm = require('azure-pipelines-task-lib/mock-run'); 3 | import path = require('path'); 4 | 5 | let tp = path.join(__dirname, './GCPValidateSuccessNoAdditionalArgsL0.js'); 6 | let tr: tmrm.TaskMockRunner = new tmrm.TaskMockRunner(tp); 7 | 8 | tr.setInput('provider', 'gcp'); 9 | tr.setInput('command', 'validate'); 10 | 11 | let a: ma.TaskLibAnswers = { 12 | "which": { 13 | "terraform": "terraform" 14 | }, 15 | "checkPath": { 16 | "terraform": true 17 | }, 18 | "exec": { 19 | "terraform validate": { 20 | "code": 0, 21 | "stdout": "Executed Successfully" 22 | } 23 | } 24 | } 25 | 26 | tr.setAnswers(a); 27 | tr.run(); -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV4/Tests/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "terraformtask", 3 | "version": "1.0.0", 4 | "description": "terraform task installer test", 5 | "main": "index.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1" 8 | }, 9 | "repository": { 10 | "type": "git", 11 | "url": "git+ssh://git@github.com/Microsoft/azure-pipelines-tasks.git" 12 | }, 13 | "author": "Microsoft Corporation", 14 | "license": "MIT", 15 | "bugs": { 16 | "url": "https://github.com/Microsoft/azure-pipelines-tasks/issues" 17 | }, 18 | "homepage": "https://github.com/Microsoft/azure-pipelines-tasks#readme", 19 | "dependencies": { 20 | "nock": "13.2.4" 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV4/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-pipelines-terraform/10d175634d36b67da6355d7a1e1648305f1da7a3/Tasks/TerraformTask/TerraformTaskV4/icon.png -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV4/make.json: -------------------------------------------------------------------------------- 1 | { 2 | } 3 | -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV4/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "terraformtask", 3 | "version": "1.0.0", 4 | "description": "", 5 | "main": "index.js", 6 | "scripts": { 7 | "test": "npm run compile && mocha --timeout 10000 --require ts-node/register Tests/L0.ts", 8 | "compile": "tsc -b tsconfig.json" 9 | }, 10 | "author": "", 11 | "license": "ISC", 12 | "dependencies": { 13 | "azure-devops-node-api": "^12.0.0", 14 | "azure-pipelines-task-lib": "^4.1.0", 15 | "azure-pipelines-tasks-artifacts-common": "^2.225.0", 16 | "del": "^6.0.0" 17 | }, 18 | "devDependencies": { 19 | "@types/mocha": "^2.2.48", 20 | "@types/node": "^10.17.0", 21 | "@types/q": "^1.5.0", 22 | "@types/uuid": "^8.3.1", 23 | "mocha": "10.2.0", 24 | "ts-loader": "^5.2.2", 25 | "typescript": "^4.0.0", 26 | "ts-node": "^10.9.1" 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV4/src/id-token-generator.ts: -------------------------------------------------------------------------------- 1 | import { getFederatedToken } from "azure-pipelines-tasks-artifacts-common/webapi"; 2 | 3 | export async function generateIdToken(connectedService : string): Promise { 4 | let tokenGenerator = new TokenGenerator(); 5 | return await tokenGenerator.generate(connectedService); 6 | } 7 | 8 | export interface ITokenGenerator { 9 | generate(connectedService : string): Promise; 10 | } 11 | 12 | export class TokenGenerator implements ITokenGenerator { 13 | public async generate(connectedService : string): Promise { 14 | const token = await getFederatedToken(connectedService); 15 | console.log('##vso[task.setsecret]' + token); 16 | return token; 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV4/src/index.ts: -------------------------------------------------------------------------------- 1 | import tasks = require('azure-pipelines-task-lib/task'); 2 | import {ParentCommandHandler} from './parent-handler'; 3 | import path = require('path'); 4 | 5 | async function run() { 6 | tasks.setResourcePath(path.join(__dirname, '..', 'task.json')); 7 | 8 | let parentHandler = new ParentCommandHandler(); 9 | try { 10 | await parentHandler.execute(tasks.getInput("provider"), tasks.getInput("command")); 11 | tasks.setResult(tasks.TaskResult.Succeeded, ""); 12 | } catch (error) { 13 | tasks.setResult(tasks.TaskResult.Failed, error); 14 | } 15 | } 16 | 17 | run(); -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV4/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "ES6", 4 | "module": "commonjs", 5 | "skipLibCheck": true 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV5/README.md: -------------------------------------------------------------------------------- 1 | # Terraform Task V5 2 | 3 | See our [docs](https://aka.ms/devlabs/tf/task) for usage. 4 | -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV5/Tests/ApplyTests/AWS/AWSApplyFailEmptyWorkingDirectoryL0.ts: -------------------------------------------------------------------------------- 1 | import { TerraformCommandHandlerAWS } from './../../../src/aws-terraform-command-handler'; 2 | import tl = require('azure-pipelines-task-lib'); 3 | 4 | let terraformCommandHandlerAWS: TerraformCommandHandlerAWS = new TerraformCommandHandlerAWS(); 5 | 6 | export async function run() { 7 | try { 8 | await terraformCommandHandlerAWS.apply(); 9 | } catch(error) { 10 | tl.setResult(tl.TaskResult.Failed, 'AWSApplyFailEmptyWorkingDirectoryL0 should have succeeded but failed with error.'); 11 | } 12 | } 13 | 14 | run(); -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV5/Tests/ApplyTests/AWS/AWSApplyFailInvalidWorkingDirectoryL0.ts: -------------------------------------------------------------------------------- 1 | import { TerraformCommandHandlerAWS } from './../../../src/aws-terraform-command-handler'; 2 | import tl = require('azure-pipelines-task-lib'); 3 | 4 | let terraformCommandHandlerAWS: TerraformCommandHandlerAWS = new TerraformCommandHandlerAWS(); 5 | 6 | export async function run() { 7 | try { 8 | await terraformCommandHandlerAWS.apply(); 9 | } catch(error) { 10 | tl.setResult(tl.TaskResult.Failed, 'AWSApplyFailInvalidWorkingDirectoryL0 should have succeeded but failed with error.'); 11 | } 12 | } 13 | 14 | run(); -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV5/Tests/ApplyTests/AWS/AWSApplySuccessNoAdditionalArgsL0.ts: -------------------------------------------------------------------------------- 1 | import { TerraformCommandHandlerAWS } from './../../../src/aws-terraform-command-handler'; 2 | import tl = require('azure-pipelines-task-lib'); 3 | 4 | let terraformCommandHandlerAWS: TerraformCommandHandlerAWS = new TerraformCommandHandlerAWS(); 5 | 6 | export async function run() { 7 | try { 8 | const response = await terraformCommandHandlerAWS.apply(); 9 | if (response === 0) { 10 | tl.setResult(tl.TaskResult.Succeeded, 'AWSApplySuccessNoAdditionalArgsL0 should have succeeded.'); 11 | } else{ 12 | tl.setResult(tl.TaskResult.Failed, 'AWSApplySuccessNoAdditionalArgsL0 should have succeeded but failed.'); 13 | } 14 | } catch(error) { 15 | tl.setResult(tl.TaskResult.Failed, 'AWSApplySuccessNoAdditionalArgsL0 should have succeeded but failed.'); 16 | } 17 | } 18 | 19 | run(); 20 | -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV5/Tests/ApplyTests/Azure/AzureApplyFailEmptyWorkingDirectoryL0.ts: -------------------------------------------------------------------------------- 1 | import { TerraformCommandHandlerAzureRM } from './../../../src/azure-terraform-command-handler'; 2 | import tl = require('azure-pipelines-task-lib'); 3 | 4 | let terraformCommandHandlerAzureRM: TerraformCommandHandlerAzureRM = new TerraformCommandHandlerAzureRM(); 5 | 6 | export async function run() { 7 | try { 8 | await terraformCommandHandlerAzureRM.apply(); 9 | } catch(error) { 10 | tl.setResult(tl.TaskResult.Failed, 'AzureApplyFailEmptyWorkingDirectoryL0 should have succeeded but failed with error.'); 11 | } 12 | } 13 | 14 | run(); -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV5/Tests/ApplyTests/Azure/AzureApplyFailInvalidWorkingDirectoryL0.ts: -------------------------------------------------------------------------------- 1 | import { TerraformCommandHandlerAzureRM } from './../../../src/azure-terraform-command-handler'; 2 | import tl = require('azure-pipelines-task-lib'); 3 | 4 | let terraformCommandHandlerAzureRM: TerraformCommandHandlerAzureRM = new TerraformCommandHandlerAzureRM(); 5 | 6 | export async function run() { 7 | try { 8 | await terraformCommandHandlerAzureRM.apply(); 9 | } catch(error) { 10 | tl.setResult(tl.TaskResult.Failed, 'AzureApplyFailInvalidWorkingDirectoryL0 should have succeeded but failed with error.'); 11 | } 12 | } 13 | 14 | run(); -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV5/Tests/ApplyTests/GCP/GCPApplyFailEmptyWorkingDirectoryL0.ts: -------------------------------------------------------------------------------- 1 | import { TerraformCommandHandlerGCP } from './../../../src/gcp-terraform-command-handler'; 2 | import tl = require('azure-pipelines-task-lib'); 3 | 4 | let terraformCommandHandlerGCP: TerraformCommandHandlerGCP = new TerraformCommandHandlerGCP(); 5 | 6 | export async function run() { 7 | try { 8 | await terraformCommandHandlerGCP.apply(); 9 | } catch(error) { 10 | tl.setResult(tl.TaskResult.Failed, 'GCPApplyFailEmptyWorkingDirectoryL0 should have succeeded but failed with error.'); 11 | } 12 | } 13 | 14 | run(); -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV5/Tests/ApplyTests/GCP/GCPApplyFailInvalidWorkingDirectoryL0.ts: -------------------------------------------------------------------------------- 1 | import { TerraformCommandHandlerGCP } from './../../../src/gcp-terraform-command-handler'; 2 | import tl = require('azure-pipelines-task-lib'); 3 | 4 | let terraformCommandHandlerGCP: TerraformCommandHandlerGCP = new TerraformCommandHandlerGCP(); 5 | 6 | export async function run() { 7 | try { 8 | await terraformCommandHandlerGCP.apply(); 9 | } catch(error) { 10 | tl.setResult(tl.TaskResult.Failed, 'GCPApplyFailInvalidWorkingDirectoryL0 should have succeeded but failed with error.'); 11 | } 12 | } 13 | 14 | run(); -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV5/Tests/ApplyTests/GCP/GCPApplySuccessNoAdditionalArgsL0.ts: -------------------------------------------------------------------------------- 1 | import { TerraformCommandHandlerGCP } from './../../../src/gcp-terraform-command-handler'; 2 | import tl = require('azure-pipelines-task-lib'); 3 | 4 | let terraformCommandHandlerGCP: TerraformCommandHandlerGCP = new TerraformCommandHandlerGCP(); 5 | 6 | export async function run() { 7 | try { 8 | const response = await terraformCommandHandlerGCP.apply(); 9 | if (response === 0) { 10 | tl.setResult(tl.TaskResult.Succeeded, 'GCPApplySuccessNoAdditionalArgsL0 should have succeeded.'); 11 | } else{ 12 | tl.setResult(tl.TaskResult.Failed, 'GCPApplySuccessNoAdditionalArgsL0 should have succeeded but failed.'); 13 | } 14 | } catch(error) { 15 | tl.setResult(tl.TaskResult.Failed, 'GCPApplySuccessNoAdditionalArgsL0 should have succeeded but failed.'); 16 | } 17 | } 18 | 19 | run(); -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV5/Tests/DestroyTests/AWS/AWSDestroyFailInvalidWorkingDirectoryL0.ts: -------------------------------------------------------------------------------- 1 | import { TerraformCommandHandlerAWS } from './../../../src/aws-terraform-command-handler'; 2 | import tl = require('azure-pipelines-task-lib'); 3 | 4 | let terraformCommandHandlerAWS: TerraformCommandHandlerAWS = new TerraformCommandHandlerAWS(); 5 | 6 | export async function run() { 7 | try { 8 | await terraformCommandHandlerAWS.destroy(); 9 | } catch(error) { 10 | tl.setResult(tl.TaskResult.Failed, 'AWSDestroyFailInvalidWorkingDirectoryL0 should have succeeded but failed with error.'); 11 | } 12 | } 13 | 14 | run(); -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV5/Tests/DestroyTests/Azure/AzureDestroyFailInvalidWorkingDirectoryL0.ts: -------------------------------------------------------------------------------- 1 | import { TerraformCommandHandlerAzureRM } from './../../../src/azure-terraform-command-handler'; 2 | import tl = require('azure-pipelines-task-lib'); 3 | 4 | let terraformCommandHandlerAzureRM: TerraformCommandHandlerAzureRM = new TerraformCommandHandlerAzureRM(); 5 | 6 | export async function run() { 7 | try { 8 | await terraformCommandHandlerAzureRM.destroy(); 9 | } catch(error) { 10 | tl.setResult(tl.TaskResult.Failed, 'AzureDestroyFailInvalidWorkingDirectoryL0 should have succeeded but failed with error.'); 11 | } 12 | } 13 | 14 | run(); -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV5/Tests/DestroyTests/GCP/GCPDestroyFailInvalidWorkingDirectoryL0.ts: -------------------------------------------------------------------------------- 1 | import { TerraformCommandHandlerGCP } from './../../../src/gcp-terraform-command-handler'; 2 | import tl = require('azure-pipelines-task-lib'); 3 | 4 | let terraformCommandHandlerGCP: TerraformCommandHandlerGCP = new TerraformCommandHandlerGCP(); 5 | 6 | export async function run() { 7 | try { 8 | await terraformCommandHandlerGCP.destroy(); 9 | } catch(error) { 10 | tl.setResult(tl.TaskResult.Failed, 'GCPDestroyFailInvalidWorkingDirectoryL0 should have succeeded but failed with error.'); 11 | } 12 | } 13 | 14 | run(); -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV5/Tests/InitTests/AWS/AWSInitFailInvalidWorkingDirectoryL0.ts: -------------------------------------------------------------------------------- 1 | import { TerraformCommandHandlerAWS } from './../../../src/aws-terraform-command-handler'; 2 | import tl = require('azure-pipelines-task-lib'); 3 | 4 | let terraformCommandHandlerAWS: TerraformCommandHandlerAWS = new TerraformCommandHandlerAWS(); 5 | 6 | export async function run() { 7 | try { 8 | await terraformCommandHandlerAWS.init(); 9 | } catch(error) { 10 | tl.setResult(tl.TaskResult.Failed, 'AWSInitFailInvalidWorkingDirectoryL0 should have succeeded but failed.'); 11 | } 12 | } 13 | 14 | run(); 15 | -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV5/Tests/InitTests/AWS/AWSInitSuccessAdditionalArgsL0.ts: -------------------------------------------------------------------------------- 1 | import { TerraformCommandHandlerAWS } from './../../../src/aws-terraform-command-handler'; 2 | import tl = require('azure-pipelines-task-lib'); 3 | 4 | let terraformCommandHandlerAWS: TerraformCommandHandlerAWS = new TerraformCommandHandlerAWS(); 5 | 6 | export async function run() { 7 | try { 8 | const response = await terraformCommandHandlerAWS.init(); 9 | if (response === 0) { 10 | tl.setResult(tl.TaskResult.Succeeded, 'AWSInitSuccessAdditionalArgsL0 should have succeeded.'); 11 | } else{ 12 | tl.setResult(tl.TaskResult.Failed, 'AWSInitSuccessAdditionalArgsL0 should have succeeded but failed.'); 13 | } 14 | } catch(error) { 15 | tl.setResult(tl.TaskResult.Failed, 'AWSInitSuccessAdditionalArgsL0 should have succeeded but failed.'); 16 | } 17 | } 18 | 19 | run(); 20 | -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV5/Tests/InitTests/AWS/AWSInitSuccessEmptyWorkingDirL0.ts: -------------------------------------------------------------------------------- 1 | import { TerraformCommandHandlerAWS } from './../../../src/aws-terraform-command-handler'; 2 | import tl = require('azure-pipelines-task-lib'); 3 | 4 | let terraformCommandHandlerAWS: TerraformCommandHandlerAWS = new TerraformCommandHandlerAWS(); 5 | 6 | export async function run() { 7 | try { 8 | const response = await terraformCommandHandlerAWS.init(); 9 | if (response === 0) { 10 | tl.setResult(tl.TaskResult.Succeeded, 'AWSInitSuccessEmptyWorkingDirL0 should have succeeded.'); 11 | } else{ 12 | tl.setResult(tl.TaskResult.Failed, 'AWSInitSuccessEmptyWorkingDirL0 should have succeeded but failed.'); 13 | } 14 | } catch(error) { 15 | tl.setResult(tl.TaskResult.Failed, 'AWSInitSuccessEmptyWorkingDirL0 should have succeeded but failed.'); 16 | } 17 | } 18 | 19 | run(); 20 | -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV5/Tests/InitTests/AWS/AWSInitSuccessNoAdditionalArgsL0.ts: -------------------------------------------------------------------------------- 1 | import { TerraformCommandHandlerAWS } from './../../../src/aws-terraform-command-handler'; 2 | import tl = require('azure-pipelines-task-lib'); 3 | 4 | let terraformCommandHandlerAWS: TerraformCommandHandlerAWS = new TerraformCommandHandlerAWS(); 5 | 6 | export async function run() { 7 | try { 8 | const response = await terraformCommandHandlerAWS.init(); 9 | if (response === 0) { 10 | tl.setResult(tl.TaskResult.Succeeded, 'AWSInitSuccessNoAdditionalArgsL0 should have succeeded.'); 11 | } else{ 12 | tl.setResult(tl.TaskResult.Failed, 'AWSInitSuccessNoAdditionalArgsL0 should have succeeded but failed.'); 13 | } 14 | } catch(error) { 15 | tl.setResult(tl.TaskResult.Failed, 'AWSInitSuccessNoAdditionalArgsL0 should have succeeded but failed.'); 16 | } 17 | } 18 | 19 | run(); 20 | -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV5/Tests/InitTests/Azure/AzureInitFailInvalidWorkingDirectoryL0.ts: -------------------------------------------------------------------------------- 1 | import { TerraformCommandHandlerAzureRM } from './../../../src/azure-terraform-command-handler'; 2 | import tl = require('azure-pipelines-task-lib'); 3 | 4 | let terraformCommandHandlerAzureRM: TerraformCommandHandlerAzureRM = new TerraformCommandHandlerAzureRM(); 5 | 6 | export async function run() { 7 | try { 8 | await terraformCommandHandlerAzureRM.init(); 9 | } catch(error) { 10 | tl.setResult(tl.TaskResult.Failed, 'AzureInitFailInvalidWorkingDirectoryL0 should have succeeded but failed with error.'); 11 | } 12 | } 13 | 14 | run(); -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV5/Tests/InitTests/GCP/GCPInitFailInvalidWorkingDirectoryL0.ts: -------------------------------------------------------------------------------- 1 | import { TerraformCommandHandlerGCP } from './../../../src/gcp-terraform-command-handler'; 2 | import tl = require('azure-pipelines-task-lib'); 3 | 4 | let terraformCommandHandlerGCP: TerraformCommandHandlerGCP = new TerraformCommandHandlerGCP(); 5 | 6 | export async function run() { 7 | try { 8 | await terraformCommandHandlerGCP.init(); 9 | } catch(error) { 10 | tl.setResult(tl.TaskResult.Failed, 'GCPInitFailInvalidWorkingDirectoryL0 should have succeeded but failed.'); 11 | } 12 | } 13 | 14 | run(); 15 | -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV5/Tests/InitTests/GCP/GCPInitSuccessAdditionalArgsL0.ts: -------------------------------------------------------------------------------- 1 | import { TerraformCommandHandlerGCP } from './../../../src/gcp-terraform-command-handler'; 2 | import tl = require('azure-pipelines-task-lib'); 3 | 4 | let terraformCommandHandlerGCP: TerraformCommandHandlerGCP = new TerraformCommandHandlerGCP(); 5 | 6 | export async function run() { 7 | try { 8 | const response = await terraformCommandHandlerGCP.init(); 9 | if (response === 0) { 10 | tl.setResult(tl.TaskResult.Succeeded, 'GCPInitSuccessAdditionalArgsL0 should have succeeded.'); 11 | } else{ 12 | tl.setResult(tl.TaskResult.Failed, 'GCPInitSuccessAdditionalArgsL0 should have succeeded but failed.'); 13 | } 14 | } catch(error) { 15 | tl.setResult(tl.TaskResult.Failed, 'GCPInitSuccessAdditionalArgsL0 should have succeeded but failed.'); 16 | } 17 | } 18 | 19 | run(); -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV5/Tests/InitTests/GCP/GCPInitSuccessEmptyWorkingDirL0.ts: -------------------------------------------------------------------------------- 1 | import { TerraformCommandHandlerGCP } from './../../../src/gcp-terraform-command-handler'; 2 | import tl = require('azure-pipelines-task-lib'); 3 | 4 | let terraformCommandHandlerGCP: TerraformCommandHandlerGCP = new TerraformCommandHandlerGCP(); 5 | 6 | export async function run() { 7 | try { 8 | const response = await terraformCommandHandlerGCP.init(); 9 | if (response === 0) { 10 | tl.setResult(tl.TaskResult.Succeeded, 'GCPInitSuccessEmptyWorkingDirL0 should have succeeded.'); 11 | } else{ 12 | tl.setResult(tl.TaskResult.Failed, 'GCPInitSuccessEmptyWorkingDirL0 should have succeeded but failed.'); 13 | } 14 | } catch(error) { 15 | tl.setResult(tl.TaskResult.Failed, 'GCPInitSuccessEmptyWorkingDirL0 should have succeeded but failed.'); 16 | } 17 | } 18 | 19 | run(); -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV5/Tests/InitTests/GCP/GCPInitSuccessNoAdditionalArgsL0.ts: -------------------------------------------------------------------------------- 1 | import { TerraformCommandHandlerGCP } from './../../../src/gcp-terraform-command-handler'; 2 | import tl = require('azure-pipelines-task-lib'); 3 | 4 | let terraformCommandHandlerGCP: TerraformCommandHandlerGCP = new TerraformCommandHandlerGCP(); 5 | 6 | export async function run() { 7 | try { 8 | const response = await terraformCommandHandlerGCP.init(); 9 | if (response === 0) { 10 | tl.setResult(tl.TaskResult.Succeeded, 'GCPInitSuccessNoAdditionalArgsL0 should have succeeded.'); 11 | } else{ 12 | tl.setResult(tl.TaskResult.Failed, 'GCPInitSuccessNoAdditionalArgsL0 should have succeeded but failed.'); 13 | } 14 | } catch(error) { 15 | tl.setResult(tl.TaskResult.Failed, 'GCPInitSuccessNoAdditionalArgsL0 should have succeeded but failed.'); 16 | } 17 | } 18 | 19 | run(); -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV5/Tests/MultipleProviderTests/MultipleProviderWarningL0.ts: -------------------------------------------------------------------------------- 1 | import { TerraformCommandHandlerAzureRM } from '../../src/azure-terraform-command-handler'; 2 | import tl = require('azure-pipelines-task-lib'); 3 | 4 | let terraformCommandHandlerAzureRM: TerraformCommandHandlerAzureRM = new TerraformCommandHandlerAzureRM(); 5 | 6 | export async function run() { 7 | try { 8 | await terraformCommandHandlerAzureRM.warnIfMultipleProviders(); 9 | } catch(error) { 10 | tl.setResult(tl.TaskResult.Failed, 'MultipleProviderWarningL0 should have succeeded but failed.'); 11 | } 12 | } 13 | 14 | run(); -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV5/Tests/MultipleProviderTests/SingleProviderNoWarningL0.ts: -------------------------------------------------------------------------------- 1 | import { TerraformCommandHandlerAzureRM } from '../../src/azure-terraform-command-handler'; 2 | import tl = require('azure-pipelines-task-lib'); 3 | 4 | let terraformCommandHandlerAzureRM: TerraformCommandHandlerAzureRM = new TerraformCommandHandlerAzureRM(); 5 | 6 | export async function run() { 7 | try { 8 | await terraformCommandHandlerAzureRM.warnIfMultipleProviders(); 9 | } catch(error) { 10 | tl.setResult(tl.TaskResult.Failed, 'SingleProviderNoWarningL0 should have succeeded but failed.'); 11 | } 12 | } 13 | 14 | run(); -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV5/Tests/PlanTests/AWS/AWSPlanFailEmptyWorkingDirectoryL0.ts: -------------------------------------------------------------------------------- 1 | import { TerraformCommandHandlerAWS } from './../../../src/aws-terraform-command-handler'; 2 | import tl = require('azure-pipelines-task-lib'); 3 | 4 | let terraformCommandHandlerAWS: TerraformCommandHandlerAWS = new TerraformCommandHandlerAWS(); 5 | 6 | export async function run() { 7 | try { 8 | await terraformCommandHandlerAWS.plan(); 9 | } catch(error) { 10 | tl.setResult(tl.TaskResult.Failed, 'AWSPlanFailEmptyWorkingDirectoryL0 should have succeeded but failed with error.'); 11 | } 12 | } 13 | 14 | run(); -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV5/Tests/PlanTests/AWS/AWSPlanFailInvalidWorkingDirectoryL0.ts: -------------------------------------------------------------------------------- 1 | import { TerraformCommandHandlerAWS } from './../../../src/aws-terraform-command-handler'; 2 | import tl = require('azure-pipelines-task-lib'); 3 | 4 | let terraformCommandHandlerAWS: TerraformCommandHandlerAWS = new TerraformCommandHandlerAWS(); 5 | 6 | export async function run() { 7 | try { 8 | await terraformCommandHandlerAWS.plan(); 9 | } catch(error) { 10 | tl.setResult(tl.TaskResult.Failed, 'AWSPlanFailInvalidWorkingDirectoryL0 should have succeeded but failed with error.'); 11 | } 12 | } 13 | 14 | run(); -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV5/Tests/PlanTests/AWS/AWSPlanSuccessAdditionalArgsL0.ts: -------------------------------------------------------------------------------- 1 | import { TerraformCommandHandlerAWS } from './../../../src/aws-terraform-command-handler'; 2 | import tl = require('azure-pipelines-task-lib'); 3 | 4 | let terraformCommandHandlerAWS: TerraformCommandHandlerAWS = new TerraformCommandHandlerAWS(); 5 | 6 | export async function run() { 7 | try { 8 | const response = await terraformCommandHandlerAWS.plan(); 9 | if (response === 0) { 10 | tl.setResult(tl.TaskResult.Succeeded, 'AWSPlanSuccessAdditionalArgsL0 should have succeeded.'); 11 | } else{ 12 | tl.setResult(tl.TaskResult.Failed, 'AWSPlanSuccessAdditionalArgsL0 should have succeeded but failed.'); 13 | } 14 | } catch(error) { 15 | tl.setResult(tl.TaskResult.Failed, 'AWSPlanSuccessAdditionalArgsL0 should have succeeded but failed.'); 16 | } 17 | } 18 | 19 | run(); -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV5/Tests/PlanTests/AWS/AWSPlanSuccessNoAdditionalArgsL0.ts: -------------------------------------------------------------------------------- 1 | import { TerraformCommandHandlerAWS } from './../../../src/aws-terraform-command-handler'; 2 | import tl = require('azure-pipelines-task-lib'); 3 | 4 | let terraformCommandHandlerAWS: TerraformCommandHandlerAWS = new TerraformCommandHandlerAWS(); 5 | 6 | export async function run() { 7 | try { 8 | const response = await terraformCommandHandlerAWS.plan(); 9 | if (response === 0) { 10 | tl.setResult(tl.TaskResult.Succeeded, 'AWSPlanSuccessNoAdditionalArgsL0 should have succeeded.'); 11 | } else{ 12 | tl.setResult(tl.TaskResult.Failed, 'AWSPlanSuccessNoAdditionalArgsL0 should have succeeded but failed.'); 13 | } 14 | } catch(error) { 15 | tl.setResult(tl.TaskResult.Failed, 'AWSPlanSuccessNoAdditionalArgsL0 should have succeeded but failed.'); 16 | } 17 | } 18 | 19 | run(); -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV5/Tests/PlanTests/Azure/AzurePlanFailEmptyWorkingDirectoryL0.ts: -------------------------------------------------------------------------------- 1 | import { TerraformCommandHandlerAzureRM } from './../../../src/azure-terraform-command-handler'; 2 | import tl = require('azure-pipelines-task-lib'); 3 | 4 | let terraformCommandHandlerAzureRM: TerraformCommandHandlerAzureRM = new TerraformCommandHandlerAzureRM(); 5 | 6 | export async function run() { 7 | try { 8 | await terraformCommandHandlerAzureRM.plan(); 9 | } catch(error) { 10 | tl.setResult(tl.TaskResult.Failed, 'AzurePlanFailEmptyWorkingDirectoryL0 should have succeeded but failed with error.'); 11 | } 12 | } 13 | 14 | run(); -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV5/Tests/PlanTests/Azure/AzurePlanFailInvalidWorkingDirectoryL0.ts: -------------------------------------------------------------------------------- 1 | import { TerraformCommandHandlerAzureRM } from './../../../src/azure-terraform-command-handler'; 2 | import tl = require('azure-pipelines-task-lib'); 3 | 4 | let terraformCommandHandlerAzureRM: TerraformCommandHandlerAzureRM = new TerraformCommandHandlerAzureRM(); 5 | 6 | export async function run() { 7 | try { 8 | await terraformCommandHandlerAzureRM.plan(); 9 | } catch(error) { 10 | tl.setResult(tl.TaskResult.Failed, 'AzurePlanFailInvalidWorkingDirectoryL0 should have succeeded but failed with error.'); 11 | } 12 | } 13 | 14 | run(); -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV5/Tests/PlanTests/GCP/GCPPlanFailEmptyWorkingDirectoryL0.ts: -------------------------------------------------------------------------------- 1 | import { TerraformCommandHandlerGCP } from './../../../src/gcp-terraform-command-handler'; 2 | import tl = require('azure-pipelines-task-lib'); 3 | 4 | let terraformCommandHandlerGCP: TerraformCommandHandlerGCP = new TerraformCommandHandlerGCP(); 5 | 6 | export async function run() { 7 | try { 8 | await terraformCommandHandlerGCP.plan(); 9 | } catch(error) { 10 | tl.setResult(tl.TaskResult.Failed, 'GCPPlanFailEmptyWorkingDirectoryL0 should have succeeded but failed with error.'); 11 | } 12 | } 13 | 14 | run(); -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV5/Tests/PlanTests/GCP/GCPPlanFailInvalidWorkingDirectoryL0.ts: -------------------------------------------------------------------------------- 1 | import { TerraformCommandHandlerGCP } from './../../../src/gcp-terraform-command-handler'; 2 | import tl = require('azure-pipelines-task-lib'); 3 | 4 | let terraformCommandHandlerGCP: TerraformCommandHandlerGCP = new TerraformCommandHandlerGCP(); 5 | 6 | export async function run() { 7 | try { 8 | await terraformCommandHandlerGCP.plan(); 9 | } catch(error) { 10 | tl.setResult(tl.TaskResult.Failed, 'GCPPlanFailInvalidWorkingDirectoryL0 should have succeeded but failed with error.'); 11 | } 12 | } 13 | 14 | run(); -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV5/Tests/PlanTests/GCP/GCPPlanSuccessAdditionalArgsL0.ts: -------------------------------------------------------------------------------- 1 | import { TerraformCommandHandlerGCP } from './../../../src/gcp-terraform-command-handler'; 2 | import tl = require('azure-pipelines-task-lib'); 3 | 4 | let terraformCommandHandlerGCP: TerraformCommandHandlerGCP = new TerraformCommandHandlerGCP(); 5 | 6 | export async function run() { 7 | try { 8 | const response = await terraformCommandHandlerGCP.plan(); 9 | if (response === 0) { 10 | tl.setResult(tl.TaskResult.Succeeded, 'GCPPlanSuccessAdditionalArgsL0 should have succeeded.'); 11 | } else{ 12 | tl.setResult(tl.TaskResult.Failed, 'GCPPlanSuccessAdditionalArgsL0 should have succeeded but failed.'); 13 | } 14 | } catch(error) { 15 | tl.setResult(tl.TaskResult.Failed, 'GCPPlanSuccessAdditionalArgsL0 should have succeeded but failed.'); 16 | } 17 | } 18 | 19 | run(); -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV5/Tests/PlanTests/GCP/GCPPlanSuccessNoAdditionalArgsL0.ts: -------------------------------------------------------------------------------- 1 | import { TerraformCommandHandlerGCP } from './../../../src/gcp-terraform-command-handler'; 2 | import tl = require('azure-pipelines-task-lib'); 3 | 4 | let terraformCommandHandlerGCP: TerraformCommandHandlerGCP = new TerraformCommandHandlerGCP(); 5 | 6 | export async function run() { 7 | try { 8 | const response = await terraformCommandHandlerGCP.plan(); 9 | if (response === 0) { 10 | tl.setResult(tl.TaskResult.Succeeded, 'GCPPlanSuccessNoAdditionalArgsL0 should have succeeded.'); 11 | } else{ 12 | tl.setResult(tl.TaskResult.Failed, 'GCPPlanSuccessNoAdditionalArgsL0 should have succeeded but failed.'); 13 | } 14 | } catch(error) { 15 | tl.setResult(tl.TaskResult.Failed, 'GCPPlanSuccessNoAdditionalArgsL0 should have succeeded but failed.'); 16 | } 17 | } 18 | 19 | run(); -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV5/Tests/ValidateTests/AWS/AWSValidateFailInvalidWorkingDirectoryL0.ts: -------------------------------------------------------------------------------- 1 | import { TerraformCommandHandlerAWS } from './../../../src/aws-terraform-command-handler'; 2 | import tl = require('azure-pipelines-task-lib'); 3 | 4 | let terraformCommandHandlerAWS: TerraformCommandHandlerAWS = new TerraformCommandHandlerAWS(); 5 | 6 | export async function run() { 7 | try { 8 | await terraformCommandHandlerAWS.validate(); 9 | } catch(error) { 10 | tl.setResult(tl.TaskResult.Failed, 'AWSValidateFailInvalidWorkingDirectoryL0 should have succeeded but failed with error.'); 11 | } 12 | } 13 | 14 | run(); -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV5/Tests/ValidateTests/AWS/AWSValidateSuccessAdditionalArgs.ts: -------------------------------------------------------------------------------- 1 | import ma = require('azure-pipelines-task-lib/mock-answer'); 2 | import tmrm = require('azure-pipelines-task-lib/mock-run'); 3 | import path = require('path'); 4 | 5 | let tp = path.join(__dirname, './AWSValidateSuccessAdditionalArgsL0.js'); 6 | let tr: tmrm.TaskMockRunner = new tmrm.TaskMockRunner(tp); 7 | 8 | tr.setInput('provider', 'aws'); 9 | tr.setInput('command', 'validate'); 10 | tr.setInput('commandOptions', '-no-color'); 11 | 12 | let a: ma.TaskLibAnswers = { 13 | "which": { 14 | "terraform": "terraform" 15 | }, 16 | "checkPath": { 17 | "terraform": true 18 | }, 19 | "exec": { 20 | "terraform validate -no-color": { 21 | "code": 0, 22 | "stdout": "Executed Successfully" 23 | } 24 | } 25 | } 26 | 27 | tr.setAnswers(a); 28 | tr.run(); 29 | -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV5/Tests/ValidateTests/AWS/AWSValidateSuccessEmptyWorkingDir.ts: -------------------------------------------------------------------------------- 1 | import ma = require('azure-pipelines-task-lib/mock-answer'); 2 | import tmrm = require('azure-pipelines-task-lib/mock-run'); 3 | import path = require('path'); 4 | 5 | let tp = path.join(__dirname, './AWSValidateSuccessEmptyWorkingDirL0.js'); 6 | let tr: tmrm.TaskMockRunner = new tmrm.TaskMockRunner(tp); 7 | 8 | tr.setInput('provider', 'aws'); 9 | tr.setInput('command', 'validate'); 10 | tr.setInput('workingDirectory', 'DummyWorkingDirectory'); 11 | 12 | let a: ma.TaskLibAnswers = { 13 | "which": { 14 | "terraform": "terraform" 15 | }, 16 | "checkPath": { 17 | "terraform": true 18 | }, 19 | "exec": { 20 | "terraform validate": { 21 | "code": 0, 22 | "stdout": "Executed Successfully" 23 | } 24 | } 25 | } 26 | 27 | tr.setAnswers(a); 28 | tr.run(); -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV5/Tests/ValidateTests/AWS/AWSValidateSuccessNoAdditionalArgs.ts: -------------------------------------------------------------------------------- 1 | import ma = require('azure-pipelines-task-lib/mock-answer'); 2 | import tmrm = require('azure-pipelines-task-lib/mock-run'); 3 | import path = require('path'); 4 | 5 | let tp = path.join(__dirname, './AWSValidateSuccessNoAdditionalArgsL0.js'); 6 | let tr: tmrm.TaskMockRunner = new tmrm.TaskMockRunner(tp); 7 | 8 | tr.setInput('provider', 'aws'); 9 | tr.setInput('command', 'validate'); 10 | 11 | let a: ma.TaskLibAnswers = { 12 | "which": { 13 | "terraform": "terraform" 14 | }, 15 | "checkPath": { 16 | "terraform": true 17 | }, 18 | "exec": { 19 | "terraform validate": { 20 | "code": 0, 21 | "stdout": "Executed Successfully" 22 | } 23 | } 24 | } 25 | 26 | tr.setAnswers(a); 27 | tr.run(); -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV5/Tests/ValidateTests/Azure/AzureValidateFailInvalidWorkingDirectoryL0.ts: -------------------------------------------------------------------------------- 1 | import { TerraformCommandHandlerAzureRM } from './../../../src/azure-terraform-command-handler'; 2 | import tl = require('azure-pipelines-task-lib'); 3 | 4 | let terraformCommandHandlerAzureRM: TerraformCommandHandlerAzureRM = new TerraformCommandHandlerAzureRM(); 5 | 6 | export async function run() { 7 | try { 8 | await terraformCommandHandlerAzureRM.validate(); 9 | } catch(error) { 10 | tl.setResult(tl.TaskResult.Failed, 'AzureValidateFailInvalidWorkingDirectoryL0 should have succeeded but failed with error.'); 11 | } 12 | } 13 | 14 | run(); -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV5/Tests/ValidateTests/Azure/AzureValidateSuccessNoAdditionalArgs.ts: -------------------------------------------------------------------------------- 1 | import ma = require('azure-pipelines-task-lib/mock-answer'); 2 | import tmrm = require('azure-pipelines-task-lib/mock-run'); 3 | import path = require('path'); 4 | 5 | let tp = path.join(__dirname, './AzureValidateSuccessNoAdditionalArgsL0.js'); 6 | let tr: tmrm.TaskMockRunner = new tmrm.TaskMockRunner(tp); 7 | 8 | tr.setInput('provider', 'azurerm'); 9 | tr.setInput('command', 'validate'); 10 | 11 | let a: ma.TaskLibAnswers = { 12 | "which": { 13 | "terraform": "terraform" 14 | }, 15 | "checkPath": { 16 | "terraform": true 17 | }, 18 | "exec": { 19 | "terraform validate": { 20 | "code": 0, 21 | "stdout": "Executed Successfully" 22 | } 23 | } 24 | } 25 | 26 | tr.setAnswers(a); 27 | tr.run(); -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV5/Tests/ValidateTests/GCP/GCPValidateFailInvalidWorkingDirectoryL0.ts: -------------------------------------------------------------------------------- 1 | import { TerraformCommandHandlerGCP } from './../../../src/gcp-terraform-command-handler'; 2 | import tl = require('azure-pipelines-task-lib'); 3 | 4 | let terraformCommandHandlerGCP: TerraformCommandHandlerGCP = new TerraformCommandHandlerGCP(); 5 | 6 | export async function run() { 7 | try { 8 | await terraformCommandHandlerGCP.validate(); 9 | } catch(error) { 10 | tl.setResult(tl.TaskResult.Failed, 'GCPValidateFailInvalidWorkingDirectoryL0 should have succeeded but failed with error.'); 11 | } 12 | } 13 | 14 | run(); -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV5/Tests/ValidateTests/GCP/GCPValidateSuccessAdditionalArgs.ts: -------------------------------------------------------------------------------- 1 | import ma = require('azure-pipelines-task-lib/mock-answer'); 2 | import tmrm = require('azure-pipelines-task-lib/mock-run'); 3 | import path = require('path'); 4 | 5 | let tp = path.join(__dirname, './GCPValidateSuccessAdditionalArgsL0.js'); 6 | let tr: tmrm.TaskMockRunner = new tmrm.TaskMockRunner(tp); 7 | 8 | tr.setInput('provider', 'gcp'); 9 | tr.setInput('command', 'validate'); 10 | tr.setInput('commandOptions', '-no-color'); 11 | 12 | let a: ma.TaskLibAnswers = { 13 | "which": { 14 | "terraform": "terraform" 15 | }, 16 | "checkPath": { 17 | "terraform": true 18 | }, 19 | "exec": { 20 | "terraform validate -no-color": { 21 | "code": 0, 22 | "stdout": "Executed Successfully" 23 | } 24 | } 25 | } 26 | 27 | tr.setAnswers(a); 28 | tr.run(); 29 | -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV5/Tests/ValidateTests/GCP/GCPValidateSuccessEmptyWorkingDir.ts: -------------------------------------------------------------------------------- 1 | import ma = require('azure-pipelines-task-lib/mock-answer'); 2 | import tmrm = require('azure-pipelines-task-lib/mock-run'); 3 | import path = require('path'); 4 | 5 | let tp = path.join(__dirname, './GCPValidateSuccessEmptyWorkingDirL0.js'); 6 | let tr: tmrm.TaskMockRunner = new tmrm.TaskMockRunner(tp); 7 | 8 | tr.setInput('provider', 'gcp'); 9 | tr.setInput('command', 'validate'); 10 | tr.setInput('workingDirectory', 'DummyWorkingDirectory'); 11 | 12 | let a: ma.TaskLibAnswers = { 13 | "which": { 14 | "terraform": "terraform" 15 | }, 16 | "checkPath": { 17 | "terraform": true 18 | }, 19 | "exec": { 20 | "terraform validate": { 21 | "code": 0, 22 | "stdout": "Executed Successfully" 23 | } 24 | } 25 | } 26 | 27 | tr.setAnswers(a); 28 | tr.run(); -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV5/Tests/ValidateTests/GCP/GCPValidateSuccessNoAdditionalArgs.ts: -------------------------------------------------------------------------------- 1 | import ma = require('azure-pipelines-task-lib/mock-answer'); 2 | import tmrm = require('azure-pipelines-task-lib/mock-run'); 3 | import path = require('path'); 4 | 5 | let tp = path.join(__dirname, './GCPValidateSuccessNoAdditionalArgsL0.js'); 6 | let tr: tmrm.TaskMockRunner = new tmrm.TaskMockRunner(tp); 7 | 8 | tr.setInput('provider', 'gcp'); 9 | tr.setInput('command', 'validate'); 10 | 11 | let a: ma.TaskLibAnswers = { 12 | "which": { 13 | "terraform": "terraform" 14 | }, 15 | "checkPath": { 16 | "terraform": true 17 | }, 18 | "exec": { 19 | "terraform validate": { 20 | "code": 0, 21 | "stdout": "Executed Successfully" 22 | } 23 | } 24 | } 25 | 26 | tr.setAnswers(a); 27 | tr.run(); -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV5/Tests/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "terraformtask", 3 | "version": "1.0.0", 4 | "description": "terraform task installer test", 5 | "main": "index.js", 6 | "scripts": { 7 | "test": "echo \"Error: no test specified\" && exit 1" 8 | }, 9 | "repository": { 10 | "type": "git", 11 | "url": "git+ssh://git@github.com/Microsoft/azure-pipelines-tasks.git" 12 | }, 13 | "author": "Microsoft Corporation", 14 | "license": "MIT", 15 | "bugs": { 16 | "url": "https://github.com/Microsoft/azure-pipelines-tasks/issues" 17 | }, 18 | "homepage": "https://github.com/Microsoft/azure-pipelines-tasks#readme", 19 | "dependencies": { 20 | "nock": "13.2.4" 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV5/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-pipelines-terraform/10d175634d36b67da6355d7a1e1648305f1da7a3/Tasks/TerraformTask/TerraformTaskV5/icon.png -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV5/make.json: -------------------------------------------------------------------------------- 1 | { 2 | } 3 | -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV5/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "terraformtask", 3 | "version": "1.0.0", 4 | "description": "", 5 | "main": "index.js", 6 | "scripts": { 7 | "test": "npm run compile && mocha --timeout 10000 --require ts-node/register Tests/L0.ts", 8 | "compile": "tsc -b tsconfig.json" 9 | }, 10 | "author": "", 11 | "license": "ISC", 12 | "dependencies": { 13 | "azure-devops-node-api": "^12.0.0", 14 | "azure-pipelines-task-lib": "^4.1.0", 15 | "azure-pipelines-tasks-artifacts-common": "^2.225.0", 16 | "del": "^6.0.0" 17 | }, 18 | "devDependencies": { 19 | "@types/mocha": "^2.2.48", 20 | "@types/node": "^10.17.0", 21 | "@types/q": "^1.5.0", 22 | "@types/uuid": "^8.3.1", 23 | "mocha": "^10.8.2", 24 | "ts-loader": "^9.5.2", 25 | "ts-node": "^10.9.1", 26 | "typescript": "^4.0.0" 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV5/src/environment-variables.ts: -------------------------------------------------------------------------------- 1 | import tasks = require('azure-pipelines-task-lib/task'); 2 | 3 | export class EnvironmentVariableHelper { 4 | public static setEnvironmentVariable(name: string, value: string): void { 5 | if (name && value) { 6 | process.env[name] = value; 7 | tasks.debug(`Set environment variable: ${name} = ${value}`); 8 | } 9 | } 10 | } -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV5/src/index.ts: -------------------------------------------------------------------------------- 1 | import tasks = require('azure-pipelines-task-lib/task'); 2 | import {ParentCommandHandler} from './parent-handler'; 3 | import path = require('path'); 4 | 5 | async function run() { 6 | tasks.setResourcePath(path.join(__dirname, '..', 'task.json')); 7 | 8 | let parentHandler = new ParentCommandHandler(); 9 | try { 10 | await parentHandler.execute(tasks.getInput("provider"), tasks.getInput("command")); 11 | tasks.setResult(tasks.TaskResult.Succeeded, ""); 12 | } catch (error) { 13 | tasks.setResult(tasks.TaskResult.Failed, error); 14 | } 15 | } 16 | 17 | run(); -------------------------------------------------------------------------------- /Tasks/TerraformTask/TerraformTaskV5/tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "ES6", 4 | "module": "commonjs", 5 | "skipLibCheck": true 6 | } 7 | } 8 | -------------------------------------------------------------------------------- /configs/dev.json: -------------------------------------------------------------------------------- 1 | { 2 | "id": "custom-terraform-tasks2", 3 | "name": "Terraform (Dev)", 4 | "public": false, 5 | "publisher": "solidify-labs" 6 | } -------------------------------------------------------------------------------- /configs/release.json: -------------------------------------------------------------------------------- 1 | { 2 | "galleryFlags": [ 3 | "Public" 4 | ], 5 | "public": true 6 | } -------------------------------------------------------------------------------- /configs/test.json: -------------------------------------------------------------------------------- 1 | { 2 | "id": "custom-terraform-tasks-test", 3 | "name": "Terraform (test)", 4 | "public": false, 5 | "publisher": "solidify-labs" 6 | } -------------------------------------------------------------------------------- /images/1_AWS_service_endpoint.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-pipelines-terraform/10d175634d36b67da6355d7a1e1648305f1da7a3/images/1_AWS_service_endpoint.PNG -------------------------------------------------------------------------------- /images/2_GCP_service_endpoint.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-pipelines-terraform/10d175634d36b67da6355d7a1e1648305f1da7a3/images/2_GCP_service_endpoint.PNG -------------------------------------------------------------------------------- /images/3_Terraform_tool_installer_search.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-pipelines-terraform/10d175634d36b67da6355d7a1e1648305f1da7a3/images/3_Terraform_tool_installer_search.PNG -------------------------------------------------------------------------------- /images/4_Terraform_tool_installer_inputs.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-pipelines-terraform/10d175634d36b67da6355d7a1e1648305f1da7a3/images/4_Terraform_tool_installer_inputs.PNG -------------------------------------------------------------------------------- /images/5_Terraform_search.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-pipelines-terraform/10d175634d36b67da6355d7a1e1648305f1da7a3/images/5_Terraform_search.PNG -------------------------------------------------------------------------------- /images/6_Terraform_all_inputs.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-pipelines-terraform/10d175634d36b67da6355d7a1e1648305f1da7a3/images/6_Terraform_all_inputs.PNG -------------------------------------------------------------------------------- /images/7_Terraform_plan_apply_destroy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-pipelines-terraform/10d175634d36b67da6355d7a1e1648305f1da7a3/images/7_Terraform_plan_apply_destroy.png -------------------------------------------------------------------------------- /images/8_OCI_service_endpoint.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-pipelines-terraform/10d175634d36b67da6355d7a1e1648305f1da7a3/images/8_OCI_service_endpoint.PNG -------------------------------------------------------------------------------- /images/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-pipelines-terraform/10d175634d36b67da6355d7a1e1648305f1da7a3/images/icon.png -------------------------------------------------------------------------------- /temp.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/microsoft/azure-pipelines-terraform/10d175634d36b67da6355d7a1e1648305f1da7a3/temp.js -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "ES6", 4 | "module": "commonjs", 5 | "skipLibCheck": true 6 | } 7 | } 8 | --------------------------------------------------------------------------------