mirror of
https://github.com/letic/terraform-provider-google.git
synced 2024-10-06 18:51:13 +00:00
Revert "Update cloudbuild trigger in place (#2121)"
This reverts commit 02eb26bdb3
.
This commit is contained in:
parent
c452e212eb
commit
2f6b39ee21
@ -17,7 +17,6 @@ func resourceCloudBuildTrigger() *schema.Resource {
|
|||||||
return &schema.Resource{
|
return &schema.Resource{
|
||||||
Create: resourceCloudbuildBuildTriggerCreate,
|
Create: resourceCloudbuildBuildTriggerCreate,
|
||||||
Read: resourceCloudbuildBuildTriggerRead,
|
Read: resourceCloudbuildBuildTriggerRead,
|
||||||
Update: resourceCloudbuildBuildTriggerUpdate,
|
|
||||||
Delete: resourceCloudbuildBuildTriggerDelete,
|
Delete: resourceCloudbuildBuildTriggerDelete,
|
||||||
Importer: &schema.ResourceImporter{
|
Importer: &schema.ResourceImporter{
|
||||||
State: resourceCloudBuildTriggerImportState,
|
State: resourceCloudBuildTriggerImportState,
|
||||||
@ -40,32 +39,38 @@ func resourceCloudBuildTrigger() *schema.Resource {
|
|||||||
"filename": &schema.Schema{
|
"filename": &schema.Schema{
|
||||||
Type: schema.TypeString,
|
Type: schema.TypeString,
|
||||||
Optional: true,
|
Optional: true,
|
||||||
|
ForceNew: true,
|
||||||
ConflictsWith: []string{"build"},
|
ConflictsWith: []string{"build"},
|
||||||
},
|
},
|
||||||
"build": {
|
"build": {
|
||||||
Type: schema.TypeList,
|
Type: schema.TypeList,
|
||||||
Description: "Contents of the build template.",
|
Description: "Contents of the build template.",
|
||||||
Optional: true,
|
Optional: true,
|
||||||
|
ForceNew: true,
|
||||||
MaxItems: 1,
|
MaxItems: 1,
|
||||||
Elem: &schema.Resource{
|
Elem: &schema.Resource{
|
||||||
Schema: map[string]*schema.Schema{
|
Schema: map[string]*schema.Schema{
|
||||||
"images": &schema.Schema{
|
"images": &schema.Schema{
|
||||||
Type: schema.TypeList,
|
Type: schema.TypeList,
|
||||||
Optional: true,
|
Optional: true,
|
||||||
|
ForceNew: true,
|
||||||
Elem: &schema.Schema{Type: schema.TypeString},
|
Elem: &schema.Schema{Type: schema.TypeString},
|
||||||
},
|
},
|
||||||
"step": &schema.Schema{
|
"step": &schema.Schema{
|
||||||
Type: schema.TypeList,
|
Type: schema.TypeList,
|
||||||
Optional: true,
|
Optional: true,
|
||||||
|
ForceNew: true,
|
||||||
Elem: &schema.Resource{
|
Elem: &schema.Resource{
|
||||||
Schema: map[string]*schema.Schema{
|
Schema: map[string]*schema.Schema{
|
||||||
"name": &schema.Schema{
|
"name": &schema.Schema{
|
||||||
Type: schema.TypeString,
|
Type: schema.TypeString,
|
||||||
Optional: true,
|
Optional: true,
|
||||||
|
ForceNew: true,
|
||||||
},
|
},
|
||||||
"args": &schema.Schema{
|
"args": &schema.Schema{
|
||||||
Type: schema.TypeString,
|
Type: schema.TypeString,
|
||||||
Optional: true,
|
Optional: true,
|
||||||
|
ForceNew: true,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
@ -73,6 +78,7 @@ func resourceCloudBuildTrigger() *schema.Resource {
|
|||||||
"tags": &schema.Schema{
|
"tags": &schema.Schema{
|
||||||
Type: schema.TypeList,
|
Type: schema.TypeList,
|
||||||
Optional: true,
|
Optional: true,
|
||||||
|
ForceNew: true,
|
||||||
Elem: &schema.Schema{Type: schema.TypeString},
|
Elem: &schema.Schema{Type: schema.TypeString},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
@ -81,41 +87,50 @@ func resourceCloudBuildTrigger() *schema.Resource {
|
|||||||
"description": &schema.Schema{
|
"description": &schema.Schema{
|
||||||
Type: schema.TypeString,
|
Type: schema.TypeString,
|
||||||
Optional: true,
|
Optional: true,
|
||||||
|
ForceNew: true,
|
||||||
},
|
},
|
||||||
"substitutions": &schema.Schema{
|
"substitutions": &schema.Schema{
|
||||||
Optional: true,
|
Optional: true,
|
||||||
Type: schema.TypeMap,
|
Type: schema.TypeMap,
|
||||||
|
ForceNew: true,
|
||||||
Elem: &schema.Schema{Type: schema.TypeString},
|
Elem: &schema.Schema{Type: schema.TypeString},
|
||||||
},
|
},
|
||||||
"trigger_template": &schema.Schema{
|
"trigger_template": &schema.Schema{
|
||||||
Optional: true,
|
Optional: true,
|
||||||
Type: schema.TypeList,
|
Type: schema.TypeList,
|
||||||
MaxItems: 1,
|
MaxItems: 1,
|
||||||
|
ForceNew: true,
|
||||||
Elem: &schema.Resource{
|
Elem: &schema.Resource{
|
||||||
Schema: map[string]*schema.Schema{
|
Schema: map[string]*schema.Schema{
|
||||||
"branch_name": &schema.Schema{
|
"branch_name": &schema.Schema{
|
||||||
Type: schema.TypeString,
|
Type: schema.TypeString,
|
||||||
Optional: true,
|
Optional: true,
|
||||||
|
ForceNew: true,
|
||||||
},
|
},
|
||||||
"commit_sha": &schema.Schema{
|
"commit_sha": &schema.Schema{
|
||||||
Type: schema.TypeString,
|
Type: schema.TypeString,
|
||||||
Optional: true,
|
Optional: true,
|
||||||
|
ForceNew: true,
|
||||||
},
|
},
|
||||||
"dir": &schema.Schema{
|
"dir": &schema.Schema{
|
||||||
Type: schema.TypeString,
|
Type: schema.TypeString,
|
||||||
Optional: true,
|
Optional: true,
|
||||||
|
ForceNew: true,
|
||||||
},
|
},
|
||||||
"project": &schema.Schema{
|
"project": &schema.Schema{
|
||||||
Type: schema.TypeString,
|
Type: schema.TypeString,
|
||||||
Optional: true,
|
Optional: true,
|
||||||
|
ForceNew: true,
|
||||||
},
|
},
|
||||||
"repo_name": &schema.Schema{
|
"repo_name": &schema.Schema{
|
||||||
Type: schema.TypeString,
|
Type: schema.TypeString,
|
||||||
Optional: true,
|
Optional: true,
|
||||||
|
ForceNew: true,
|
||||||
},
|
},
|
||||||
"tag_name": &schema.Schema{
|
"tag_name": &schema.Schema{
|
||||||
Type: schema.TypeString,
|
Type: schema.TypeString,
|
||||||
Optional: true,
|
Optional: true,
|
||||||
|
ForceNew: true,
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
@ -132,11 +147,22 @@ func resourceCloudbuildBuildTriggerCreate(d *schema.ResourceData, meta interface
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
buildTrigger, err := expandCloudbuildBuildTrigger(d, meta)
|
// Build the address parameter
|
||||||
if err != nil {
|
buildTrigger := &cloudbuild.BuildTrigger{}
|
||||||
return err
|
|
||||||
|
if v, ok := d.GetOk("description"); ok {
|
||||||
|
buildTrigger.Description = v.(string)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if v, ok := d.GetOk("filename"); ok {
|
||||||
|
buildTrigger.Filename = v.(string)
|
||||||
|
} else {
|
||||||
|
buildTrigger.Build = expandCloudbuildBuildTriggerBuild(d)
|
||||||
|
}
|
||||||
|
|
||||||
|
buildTrigger.TriggerTemplate = expandCloudbuildBuildTriggerTemplate(d, project)
|
||||||
|
buildTrigger.Substitutions = expandStringMap(d, "substitutions")
|
||||||
|
|
||||||
tstr, err := json.Marshal(buildTrigger)
|
tstr, err := json.Marshal(buildTrigger)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
@ -182,56 +208,6 @@ func resourceCloudbuildBuildTriggerRead(d *schema.ResourceData, meta interface{}
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func resourceCloudbuildBuildTriggerUpdate(d *schema.ResourceData, meta interface{}) error {
|
|
||||||
config := meta.(*Config)
|
|
||||||
|
|
||||||
project, err := getProject(d, config)
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
buildTrigger, err := expandCloudbuildBuildTrigger(d, meta)
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
id := d.Id()
|
|
||||||
|
|
||||||
log.Printf("[INFO] Updating Cloud Build Trigger: %s", id)
|
|
||||||
|
|
||||||
if _, err = config.clientBuild.Projects.Triggers.Patch(project, id, buildTrigger).Do(); err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
|
|
||||||
return resourceCloudbuildBuildTriggerRead(d, meta)
|
|
||||||
}
|
|
||||||
|
|
||||||
func expandCloudbuildBuildTrigger(d *schema.ResourceData, meta interface{}) (*cloudbuild.BuildTrigger, error) {
|
|
||||||
config := meta.(*Config)
|
|
||||||
|
|
||||||
project, err := getProject(d, config)
|
|
||||||
if err != nil {
|
|
||||||
return nil, err
|
|
||||||
}
|
|
||||||
|
|
||||||
t := &cloudbuild.BuildTrigger{}
|
|
||||||
|
|
||||||
if v, ok := d.GetOk("description"); ok {
|
|
||||||
t.Description = v.(string)
|
|
||||||
}
|
|
||||||
|
|
||||||
if v, ok := d.GetOk("filename"); ok {
|
|
||||||
t.Filename = v.(string)
|
|
||||||
} else {
|
|
||||||
t.Build = expandCloudbuildBuildTriggerBuild(d)
|
|
||||||
}
|
|
||||||
|
|
||||||
t.Substitutions = expandStringMap(d, "substitutions")
|
|
||||||
t.TriggerTemplate = expandCloudbuildBuildTriggerTemplate(d, project)
|
|
||||||
|
|
||||||
return t, nil
|
|
||||||
}
|
|
||||||
|
|
||||||
func expandCloudbuildBuildTriggerTemplate(d *schema.ResourceData, project string) *cloudbuild.RepoSource {
|
func expandCloudbuildBuildTriggerTemplate(d *schema.ResourceData, project string) *cloudbuild.RepoSource {
|
||||||
if d.Get("trigger_template.#").(int) == 0 {
|
if d.Get("trigger_template.#").(int) == 0 {
|
||||||
return nil
|
return nil
|
||||||
|
@ -34,15 +34,6 @@ func TestAccCloudBuildTrigger_basic(t *testing.T) {
|
|||||||
ImportStateVerify: true,
|
ImportStateVerify: true,
|
||||||
ImportStateIdPrefix: fmt.Sprintf("%s/", projectID),
|
ImportStateIdPrefix: fmt.Sprintf("%s/", projectID),
|
||||||
},
|
},
|
||||||
resource.TestStep{
|
|
||||||
Config: testGoogleCloudBuildTrigger_updated(projectID, projectOrg, projectBillingAccount),
|
|
||||||
},
|
|
||||||
resource.TestStep{
|
|
||||||
ResourceName: "google_cloudbuild_trigger.build_trigger",
|
|
||||||
ImportState: true,
|
|
||||||
ImportStateVerify: true,
|
|
||||||
ImportStateIdPrefix: fmt.Sprintf("%s/", projectID),
|
|
||||||
},
|
|
||||||
resource.TestStep{
|
resource.TestStep{
|
||||||
Config: testGoogleCloudBuildTrigger_removed(projectID, projectOrg, projectBillingAccount),
|
Config: testGoogleCloudBuildTrigger_removed(projectID, projectOrg, projectBillingAccount),
|
||||||
Check: resource.ComposeTestCheckFunc(
|
Check: resource.ComposeTestCheckFunc(
|
||||||
@ -219,59 +210,6 @@ resource "google_cloudbuild_trigger" "build_trigger" {
|
|||||||
`, projectID, projectID, projectOrg, projectBillingAccount)
|
`, projectID, projectID, projectOrg, projectBillingAccount)
|
||||||
}
|
}
|
||||||
|
|
||||||
func testGoogleCloudBuildTrigger_updated(projectID, projectOrg, projectBillingAccount string) string {
|
|
||||||
return fmt.Sprintf(`
|
|
||||||
resource "google_project" "acceptance" {
|
|
||||||
name = "%s"
|
|
||||||
project_id = "%s"
|
|
||||||
org_id = "%s"
|
|
||||||
billing_account = "%s"
|
|
||||||
}
|
|
||||||
|
|
||||||
resource "google_project_services" "acceptance" {
|
|
||||||
project = "${google_project.acceptance.project_id}"
|
|
||||||
|
|
||||||
services = [
|
|
||||||
"cloudbuild.googleapis.com",
|
|
||||||
"containerregistry.googleapis.com",
|
|
||||||
"logging.googleapis.com",
|
|
||||||
"pubsub.googleapis.com",
|
|
||||||
"storage-api.googleapis.com",
|
|
||||||
]
|
|
||||||
}
|
|
||||||
|
|
||||||
resource "google_cloudbuild_trigger" "build_trigger" {
|
|
||||||
project = "${google_project_services.acceptance.project}"
|
|
||||||
description = "acceptance test build trigger updated"
|
|
||||||
trigger_template {
|
|
||||||
branch_name = "master-updated"
|
|
||||||
project = "${google_project_services.acceptance.project}"
|
|
||||||
repo_name = "some-repo-updated"
|
|
||||||
}
|
|
||||||
build {
|
|
||||||
images = ["gcr.io/$PROJECT_ID/$REPO_NAME:$SHORT_SHA"]
|
|
||||||
tags = ["team-a", "service-b", "updated"]
|
|
||||||
step {
|
|
||||||
name = "gcr.io/cloud-builders/gsutil"
|
|
||||||
args = "cp gs://mybucket/remotefile.zip localfile-updated.zip "
|
|
||||||
}
|
|
||||||
step {
|
|
||||||
name = "gcr.io/cloud-builders/go"
|
|
||||||
args = "build my_package_updated"
|
|
||||||
}
|
|
||||||
step {
|
|
||||||
name = "gcr.io/cloud-builders/docker"
|
|
||||||
args = "build -t gcr.io/$PROJECT_ID/$REPO_NAME:$SHORT_SHA -f Dockerfile ."
|
|
||||||
}
|
|
||||||
step {
|
|
||||||
name = "gcr.io/$PROJECT_ID/$REPO_NAME:$SHORT_SHA"
|
|
||||||
args = "test"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
`, projectID, projectID, projectOrg, projectBillingAccount)
|
|
||||||
}
|
|
||||||
|
|
||||||
func testGoogleCloudBuildTrigger_filename(projectID, projectOrg, projectBillingAccount string) string {
|
func testGoogleCloudBuildTrigger_filename(projectID, projectOrg, projectBillingAccount string) string {
|
||||||
return fmt.Sprintf(`
|
return fmt.Sprintf(`
|
||||||
resource "google_project" "acceptance" {
|
resource "google_project" "acceptance" {
|
||||||
|
Loading…
Reference in New Issue
Block a user