diff --git a/vercel/resource_deployment.go b/vercel/resource_deployment.go index 6b5cc6d2..bcd9abcb 100644 --- a/vercel/resource_deployment.go +++ b/vercel/resource_deployment.go @@ -246,6 +246,16 @@ func getPrebuiltBuildsFile(files []client.DeploymentFile) (string, bool) { return "", false } +func filterNullFromMap(m map[string]types.String) map[string]string { + out := map[string]string{} + for k, v := range m { + if !v.IsNull() { + out[k] = v.ValueString() + } + } + return out +} + // Create will create a deployment within Vercel. This is done by first attempting to trigger a deployment, seeing what // files are required, uploading those files, and then attempting to create a deployment again. // This is called automatically by the provider when a new resource should be created. @@ -281,7 +291,7 @@ func (r *deploymentResource) Create(ctx context.Context, req resource.CreateRequ return } - var environment map[string]string + var environment map[string]types.String diags = plan.Environment.ElementsAs(ctx, &environment, false) resp.Diagnostics.Append(diags...) if resp.Diagnostics.HasError() { @@ -294,7 +304,7 @@ func (r *deploymentResource) Create(ctx context.Context, req resource.CreateRequ } cdr := client.CreateDeploymentRequest{ Files: files, - Environment: environment, + Environment: filterNullFromMap(environment), ProjectID: plan.ProjectID.ValueString(), ProjectSettings: plan.ProjectSettings.toRequest(), Target: target, diff --git a/vercel/resource_deployment_test.go b/vercel/resource_deployment_test.go index 437fad5c..76d29159 100644 --- a/vercel/resource_deployment_test.go +++ b/vercel/resource_deployment_test.go @@ -109,7 +109,8 @@ func TestAcc_DeploymentWithEnvironment(t *testing.T) { { Config: testAccDeploymentConfig(projectSuffix, teamIDConfig(), `environment = { FOO = "baz", - BAR = "qux" + BAR = "qux", + BAZ = null }`), Check: resource.ComposeAggregateTestCheckFunc( testAccDeploymentExists("vercel_deployment.test", ""), @@ -286,7 +287,7 @@ resource "vercel_deployment" "test" { project_id = vercel_project.test.id %[2]s - files = data.vercel_prebuilt_project.test.output + files = data.vercel_prebuilt_project.test.output path_prefix = data.vercel_prebuilt_project.test.path } `, projectSuffix, teamID)