From d92e66f0e7a3adf74a77f1feaf47a33a1730f5d2 Mon Sep 17 00:00:00 2001 From: Modular Magician Date: Wed, 19 Oct 2022 22:16:05 +0000 Subject: [PATCH] Add script field in cloud build trigger (#6701) * added_support_for_script_attr * added script field in tests * fixing the tests Signed-off-by: Modular Magician --- .changelog/6701.txt | 3 +++ google/resource_cloudbuild_trigger.go | 22 +++++++++++++++++++ ...ource_cloudbuild_trigger_generated_test.go | 5 +++++ .../docs/r/cloudbuild_trigger.html.markdown | 10 +++++++++ 4 files changed, 40 insertions(+) create mode 100644 .changelog/6701.txt diff --git a/.changelog/6701.txt b/.changelog/6701.txt new file mode 100644 index 00000000000..7c209537e09 --- /dev/null +++ b/.changelog/6701.txt @@ -0,0 +1,3 @@ +```release-note:enhancement +cloudbuild: added `script` field to `google_cloudbuild_trigger` resource +``` diff --git a/google/resource_cloudbuild_trigger.go b/google/resource_cloudbuild_trigger.go index 5c42076b3aa..0473921654f 100644 --- a/google/resource_cloudbuild_trigger.go +++ b/google/resource_cloudbuild_trigger.go @@ -201,6 +201,12 @@ The elements are of the form "KEY=VALUE" for the environment variable Optional: true, Description: `Unique identifier for this build step, used in 'wait_for' to reference this build step as a dependency.`, + }, + "script": { + Type: schema.TypeString, + Optional: true, + Description: `A shell script to be executed in the step. +When script is provided, the user cannot specify the entrypoint or args.`, }, "secret_env": { Type: schema.TypeList, @@ -2172,6 +2178,7 @@ func flattenCloudBuildTriggerBuildStep(v interface{}, d *schema.ResourceData, co "timing": flattenCloudBuildTriggerBuildStepTiming(original["timing"], d, config), "volumes": flattenCloudBuildTriggerBuildStepVolumes(original["volumes"], d, config), "wait_for": flattenCloudBuildTriggerBuildStepWaitFor(original["waitFor"], d, config), + "script": flattenCloudBuildTriggerBuildStepScript(original["script"], d, config), }) } return transformed @@ -2243,6 +2250,10 @@ func flattenCloudBuildTriggerBuildStepWaitFor(v interface{}, d *schema.ResourceD return v } +func flattenCloudBuildTriggerBuildStepScript(v interface{}, d *schema.ResourceData, config *Config) interface{} { + return v +} + func flattenCloudBuildTriggerBuildArtifacts(v interface{}, d *schema.ResourceData, config *Config) interface{} { if v == nil { return nil @@ -3413,6 +3424,13 @@ func expandCloudBuildTriggerBuildStep(v interface{}, d TerraformResourceData, co transformed["waitFor"] = transformedWaitFor } + transformedScript, err := expandCloudBuildTriggerBuildStepScript(original["script"], d, config) + if err != nil { + return nil, err + } else if val := reflect.ValueOf(transformedScript); val.IsValid() && !isEmptyValue(val) { + transformed["script"] = transformedScript + } + req = append(req, transformed) } return req, nil @@ -3495,6 +3513,10 @@ func expandCloudBuildTriggerBuildStepWaitFor(v interface{}, d TerraformResourceD return v, nil } +func expandCloudBuildTriggerBuildStepScript(v interface{}, d TerraformResourceData, config *Config) (interface{}, error) { + return v, nil +} + func expandCloudBuildTriggerBuildArtifacts(v interface{}, d TerraformResourceData, config *Config) (interface{}, error) { l := v.([]interface{}) if len(l) == 0 || l[0] == nil { diff --git a/google/resource_cloudbuild_trigger_generated_test.go b/google/resource_cloudbuild_trigger_generated_test.go index d27f6cadd16..420fe3ca954 100644 --- a/google/resource_cloudbuild_trigger_generated_test.go +++ b/google/resource_cloudbuild_trigger_generated_test.go @@ -111,6 +111,11 @@ resource "google_cloudbuild_trigger" "build-trigger" { secret_env = ["MY_SECRET"] } + step { + name = "ubuntu" + script = "echo hello" # using script field + } + source { storage_source { bucket = "mybucket" diff --git a/website/docs/r/cloudbuild_trigger.html.markdown b/website/docs/r/cloudbuild_trigger.html.markdown index 2fcc5c7cd3b..7a5aac87c65 100644 --- a/website/docs/r/cloudbuild_trigger.html.markdown +++ b/website/docs/r/cloudbuild_trigger.html.markdown @@ -81,6 +81,11 @@ resource "google_cloudbuild_trigger" "build-trigger" { secret_env = ["MY_SECRET"] } + step { + name = "ubuntu" + script = "echo hello" # using script field + } + source { storage_source { bucket = "mybucket" @@ -908,6 +913,11 @@ The following arguments are supported: will start when all previous build steps in the `Build.Steps` list have completed successfully. +* `script` - + (Optional) + A shell script to be executed in the step. + When script is provided, the user cannot specify the entrypoint or args. + The `volumes` block supports: