Skip to content

Commit fa41b9d

Browse files
committed
chore: generate terraform testdata with matching terraform version
Fixes #13342. Terraform changed the default output of the `terraform graph` command. You must put `-type=plan` to keep the prior behavior.
1 parent 390ff9a commit fa41b9d

File tree

68 files changed

+265
-315
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

68 files changed

+265
-315
lines changed

Makefile

+8
Original file line numberDiff line numberDiff line change
@@ -493,6 +493,7 @@ gen: \
493493
coderd/apidoc/swagger.json \
494494
.prettierignore.include \
495495
.prettierignore \
496+
provisioner/terraform/testdata/version \
496497
site/.prettierrc.yaml \
497498
site/.prettierignore \
498499
site/.eslintignore \
@@ -684,6 +685,13 @@ provisioner/terraform/testdata/.gen-golden: $(wildcard provisioner/terraform/tes
684685
go test ./provisioner/terraform -run="Test.*Golden$$" -update
685686
touch "$@"
686687

688+
provisioner/terraform/testdata/version:
689+
if [[ "$(shell cat provisioner/terraform/testdata/version)" == "$(shell terraform version -json | jq -r '.terraform_version')" ]]; then
690+
exit 0
691+
fi
692+
./provisioner/terraform/testdata/generate.sh
693+
.PHONY: provisioner/terraform/testdata/version
694+
687695
scripts/ci-report/testdata/.gen-golden: $(wildcard scripts/ci-report/testdata/*) $(wildcard scripts/ci-report/*.go)
688696
go test ./scripts/ci-report -run=TestOutputMatchesGoldenFile -update
689697
touch "$@"

provisioner/terraform/executor.go

+14-2
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,10 @@ import (
2424
"github.com/coder/coder/v2/provisionersdk/proto"
2525
)
2626

27+
var (
28+
version170 = version.Must(version.NewVersion("1.7.0"))
29+
)
30+
2731
type executor struct {
2832
logger slog.Logger
2933
server *server
@@ -346,8 +350,16 @@ func (e *executor) graph(ctx, killCtx context.Context) (string, error) {
346350
return "", ctx.Err()
347351
}
348352

353+
ver, err := e.version(ctx)
354+
if err != nil {
355+
return "", err
356+
}
357+
args := []string{"graph"}
358+
if ver.GreaterThanOrEqual(version170) {
359+
args = append(args, "-type=plan")
360+
}
349361
var out strings.Builder
350-
cmd := exec.CommandContext(killCtx, e.binaryPath, "graph") // #nosec
362+
cmd := exec.CommandContext(killCtx, e.binaryPath, args...) // #nosec
351363
cmd.Stdout = &out
352364
cmd.Dir = e.workdir
353365
cmd.Env = e.basicEnv()
@@ -356,7 +368,7 @@ func (e *executor) graph(ctx, killCtx context.Context) (string, error) {
356368
slog.F("binary_path", e.binaryPath),
357369
slog.F("args", "graph"),
358370
)
359-
err := cmd.Start()
371+
err = cmd.Start()
360372
if err != nil {
361373
return "", err
362374
}

provisioner/terraform/testdata/calling-module/calling-module.tfplan.dot

-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

provisioner/terraform/testdata/calling-module/calling-module.tfplan.json

+3-2
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

provisioner/terraform/testdata/calling-module/calling-module.tfstate.dot

-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

provisioner/terraform/testdata/calling-module/calling-module.tfstate.json

+5-5
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

provisioner/terraform/testdata/chaining-resources/chaining-resources.tfplan.dot

-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

provisioner/terraform/testdata/chaining-resources/chaining-resources.tfplan.json

+3-2
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

provisioner/terraform/testdata/chaining-resources/chaining-resources.tfstate.dot

-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

provisioner/terraform/testdata/chaining-resources/chaining-resources.tfstate.json

+5-5
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

provisioner/terraform/testdata/conflicting-resources/conflicting-resources.tfplan.dot

-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

provisioner/terraform/testdata/conflicting-resources/conflicting-resources.tfplan.json

+3-2
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

provisioner/terraform/testdata/conflicting-resources/conflicting-resources.tfstate.dot

-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

provisioner/terraform/testdata/conflicting-resources/conflicting-resources.tfstate.json

+5-5
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

provisioner/terraform/testdata/display-apps-disabled/display-apps-disabled.tfplan.dot

-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

provisioner/terraform/testdata/display-apps-disabled/display-apps-disabled.tfplan.json

+3-2
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

provisioner/terraform/testdata/display-apps-disabled/display-apps-disabled.tfstate.dot

-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

provisioner/terraform/testdata/display-apps-disabled/display-apps-disabled.tfstate.json

+4-4
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

provisioner/terraform/testdata/display-apps/display-apps.tfplan.dot

-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

provisioner/terraform/testdata/display-apps/display-apps.tfplan.json

+3-2
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

provisioner/terraform/testdata/display-apps/display-apps.tfstate.dot

-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

provisioner/terraform/testdata/display-apps/display-apps.tfstate.json

+4-4
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

provisioner/terraform/testdata/external-auth-providers/external-auth-providers.tfplan.dot

-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)