Build Script
In order to make use of the Cake.Terraform Addin, you will need to first use the #addin preprocessor to install Cake.Terraform, but once that is done, you can directly use the available aliases.
In addition, the terraform tool will need to be installed and available on the machine on which the script is running. Alternatively, you can provide a ToolPath to where it can be located.
TerraformInit
#addin Cake.Terraform
Task("Init")
.Does(() =>
{
TerraformInit();
});
or, with specific settings:
#addin Cake.Terraform
Task("Plan")
.Does(() =>
{
var settings = new TerraformInitSettings {
WorkingDirectory = "./terraform"
};
TerraformInit(settings);
});
TerraformPlan
#addin Cake.Terraform
Task("Plan")
.Does(() =>
{
TerraformPlan();
});
or, with specific settings:
#addin Cake.Terraform
Task("Plan")
.Does(() =>
{
var settings = new TerraformPlanSettings {
WorkingDirectory = "./terraform",
OutFile = "./output/terraform.plan"
};
TerraformPlan(settings);
});
TerraformShow
#addin Cake.Terraform
Task("Show")
.Does(() =>
{
TerraformShow();
});
or, with specific settings:
#addin Cake.Terraform
Task("Plan")
.Does(() =>
{
var settings = new TerraformShowSettings {
PlanFile = "./output/terraform.plan",
OutFile = "./output/terraform.html",
OutputFormat = OutputFormat.Html
};
TerraformShow(settings);
});
TerraformApply
#addin Cake.Terraform
Task("Apply")
.Does(() =>
{
TerraformApply();
});
or, with specific settings:
#addin Cake.Terraform
Task("Apply")
.Does(() =>
{
var settings = new TerraformApplySettings {
Plan = "./output/terraform.plan"
};
TerraformApply(settings);
});
TerraformDestroy
#addin Cake.Terraform
Task("Destroy")
.Does(() =>
{
TerraformDestroy();
});
or, with specific settings:
#addin Cake.Terraform
Task("Destroy")
.Does(() =>
{
var settings = new TerraformDestroySettings {
WorkingDirectory = ".",
Force = true,
InputVariables = new Dictionary<string, string> {
{"some-input-variable", "value"},
}
};
TerraformDestroy(settings);
});
TerraformValidate
#addin Cake.Terraform
Task("Validate")
.Does(() =>
{
TerraformValidate();
});