From ad3073687072d30721fd6b95a5ca8eb3548d6a34 Mon Sep 17 00:00:00 2001 From: Mathias Fredriksson Date: Tue, 31 Dec 2024 13:30:58 +0000 Subject: [PATCH 1/4] ci: make sure golden files are actually up to date --- .github/workflows/ci.yaml | 6 ++ Makefile | 29 +++++++--- .../coder_templates_plan_--help.golden | 6 -- .../testdata/coder_provisionerd_--help.golden | 15 ----- .../coder_provisionerd_keys_--help.golden | 16 ------ ...der_provisionerd_keys_create_--help.golden | 16 ------ ...der_provisionerd_keys_delete_--help.golden | 18 ------ ...coder_provisionerd_keys_list_--help.golden | 15 ----- .../coder_provisionerd_start_--help.golden | 55 ------------------- .../cli/testdata/coder_wsproxy_--help.golden | 17 ------ 10 files changed, 28 insertions(+), 165 deletions(-) delete mode 100644 cli/testdata/coder_templates_plan_--help.golden delete mode 100644 enterprise/cli/testdata/coder_provisionerd_--help.golden delete mode 100644 enterprise/cli/testdata/coder_provisionerd_keys_--help.golden delete mode 100644 enterprise/cli/testdata/coder_provisionerd_keys_create_--help.golden delete mode 100644 enterprise/cli/testdata/coder_provisionerd_keys_delete_--help.golden delete mode 100644 enterprise/cli/testdata/coder_provisionerd_keys_list_--help.golden delete mode 100644 enterprise/cli/testdata/coder_provisionerd_start_--help.golden delete mode 100644 enterprise/cli/testdata/coder_wsproxy_--help.golden diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 1284c0374cb34..87db8b35dd1bc 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -271,6 +271,12 @@ jobs: # coderd/rbac/object_gen.go:1:1: syntax error: package statement must be first run: "make --output-sync -B gen" + - name: make update-golden-files + # As above, skip `-j` flag. + run: | + make clean/golden-files + make --output-sync -B update-golden-files + - name: Check for unstaged files run: ./scripts/check_unstaged.sh diff --git a/Makefile b/Makefile index 6ce22a9a4ea50..bc109983ca695 100644 --- a/Makefile +++ b/Makefile @@ -702,18 +702,33 @@ coderd/apidoc/swagger.json: $(shell find ./scripts/apidocgen $(FIND_EXCLUSIONS) update-golden-files: \ cli/testdata/.gen-golden \ - helm/coder/tests/testdata/.gen-golden \ - helm/provisioner/tests/testdata/.gen-golden \ - enterprise/cli/testdata/.gen-golden \ - enterprise/tailnet/testdata/.gen-golden \ - tailnet/testdata/.gen-golden \ coderd/.gen-golden \ coderd/notifications/.gen-golden \ - provisioner/terraform/testdata/.gen-golden + enterprise/cli/testdata/.gen-golden \ + enterprise/tailnet/testdata/.gen-golden \ + helm/coder/tests/testdata/.gen-golden \ + helm/provisioner/tests/testdata/.gen-golden \ + provisioner/terraform/testdata/.gen-golden \ + tailnet/testdata/.gen-golden .PHONY: update-golden-files +clean/golden-files: + find . -type f -name '.gen-golden' -delete + find \ + cli/testdata \ + coderd/notifications/testdata \ + coderd/testdata \ + enterprise/cli/testdata \ + enterprise/tailnet/testdata \ + helm/coder/tests/testdata \ + helm/provisioner/tests/testdata \ + provisioner/terraform/testdata \ + tailnet/testdata \ + -type f -name '*.golden' -delete +.PHONY: clean/golden-files + cli/testdata/.gen-golden: $(wildcard cli/testdata/*.golden) $(wildcard cli/*.tpl) $(GO_SRC_FILES) $(wildcard cli/*_test.go) - go test ./cli -run="Test(CommandHelp|ServerYAML|ErrorExamples)" -update + go test ./cli -run="Test(CommandHelp|ServerYAML|ErrorExamples|.*Golden)" -update touch "$@" enterprise/cli/testdata/.gen-golden: $(wildcard enterprise/cli/testdata/*.golden) $(wildcard cli/*.tpl) $(GO_SRC_FILES) $(wildcard enterprise/cli/*_test.go) diff --git a/cli/testdata/coder_templates_plan_--help.golden b/cli/testdata/coder_templates_plan_--help.golden deleted file mode 100644 index 0085c37238e34..0000000000000 --- a/cli/testdata/coder_templates_plan_--help.golden +++ /dev/null @@ -1,6 +0,0 @@ -Usage: coder templates plan - -Plan a template push from the current directory - ---- -Run `coder --help` for a list of global options. diff --git a/enterprise/cli/testdata/coder_provisionerd_--help.golden b/enterprise/cli/testdata/coder_provisionerd_--help.golden deleted file mode 100644 index 7209d4962abac..0000000000000 --- a/enterprise/cli/testdata/coder_provisionerd_--help.golden +++ /dev/null @@ -1,15 +0,0 @@ -coder v0.0.0-devel - -USAGE: - coder provisionerd - - Manage provisioner daemons - - Aliases: provisioner - -SUBCOMMANDS: - keys Manage provisioner keys - start Run a provisioner daemon - -——— -Run `coder --help` for a list of global options. diff --git a/enterprise/cli/testdata/coder_provisionerd_keys_--help.golden b/enterprise/cli/testdata/coder_provisionerd_keys_--help.golden deleted file mode 100644 index 38feaec6dc4a8..0000000000000 --- a/enterprise/cli/testdata/coder_provisionerd_keys_--help.golden +++ /dev/null @@ -1,16 +0,0 @@ -coder v0.0.0-devel - -USAGE: - coder provisionerd keys - - Manage provisioner keys - - Aliases: key - -SUBCOMMANDS: - create Create a new provisioner key - delete Delete a provisioner key - list List provisioner keys in an organization - -——— -Run `coder --help` for a list of global options. diff --git a/enterprise/cli/testdata/coder_provisionerd_keys_create_--help.golden b/enterprise/cli/testdata/coder_provisionerd_keys_create_--help.golden deleted file mode 100644 index 8f70eb7184e5d..0000000000000 --- a/enterprise/cli/testdata/coder_provisionerd_keys_create_--help.golden +++ /dev/null @@ -1,16 +0,0 @@ -coder v0.0.0-devel - -USAGE: - coder provisionerd keys create [flags] - - Create a new provisioner key - -OPTIONS: - -O, --org string, $CODER_ORGANIZATION - Select which organization (uuid or name) to use. - - -t, --tag string-array, $CODER_PROVISIONERD_TAGS - Tags to filter provisioner jobs by. - -——— -Run `coder --help` for a list of global options. diff --git a/enterprise/cli/testdata/coder_provisionerd_keys_delete_--help.golden b/enterprise/cli/testdata/coder_provisionerd_keys_delete_--help.golden deleted file mode 100644 index 0ab277f6609e7..0000000000000 --- a/enterprise/cli/testdata/coder_provisionerd_keys_delete_--help.golden +++ /dev/null @@ -1,18 +0,0 @@ -coder v0.0.0-devel - -USAGE: - coder provisionerd keys delete [flags] - - Delete a provisioner key - - Aliases: rm - -OPTIONS: - -O, --org string, $CODER_ORGANIZATION - Select which organization (uuid or name) to use. - - -y, --yes bool - Bypass prompts. - -——— -Run `coder --help` for a list of global options. diff --git a/enterprise/cli/testdata/coder_provisionerd_keys_list_--help.golden b/enterprise/cli/testdata/coder_provisionerd_keys_list_--help.golden deleted file mode 100644 index 8e5c48f0cd457..0000000000000 --- a/enterprise/cli/testdata/coder_provisionerd_keys_list_--help.golden +++ /dev/null @@ -1,15 +0,0 @@ -coder v0.0.0-devel - -USAGE: - coder provisionerd keys list [flags] - - List provisioner keys in an organization - - Aliases: ls - -OPTIONS: - -O, --org string, $CODER_ORGANIZATION - Select which organization (uuid or name) to use. - -——— -Run `coder --help` for a list of global options. diff --git a/enterprise/cli/testdata/coder_provisionerd_start_--help.golden b/enterprise/cli/testdata/coder_provisionerd_start_--help.golden deleted file mode 100644 index 169b7fca2520c..0000000000000 --- a/enterprise/cli/testdata/coder_provisionerd_start_--help.golden +++ /dev/null @@ -1,55 +0,0 @@ -coder v0.0.0-devel - -USAGE: - coder provisionerd start [flags] - - Run a provisioner daemon - -OPTIONS: - -O, --org string, $CODER_ORGANIZATION - Select which organization (uuid or name) to use. - - -c, --cache-dir string, $CODER_CACHE_DIRECTORY (default: [cache dir]) - Directory to store cached data. - - --log-filter string-array, $CODER_PROVISIONER_DAEMON_LOG_FILTER - Filter debug logs by matching against a given regex. Use .* to match - all debug logs. - - --log-human string, $CODER_PROVISIONER_DAEMON_LOGGING_HUMAN (default: /dev/stderr) - Output human-readable logs to a given file. - - --log-json string, $CODER_PROVISIONER_DAEMON_LOGGING_JSON - Output JSON logs to a given file. - - --log-stackdriver string, $CODER_PROVISIONER_DAEMON_LOGGING_STACKDRIVER - Output Stackdriver compatible logs to a given file. - - --name string, $CODER_PROVISIONER_DAEMON_NAME - Name of this provisioner daemon. Defaults to the current hostname - without FQDN. - - --poll-interval duration, $CODER_PROVISIONERD_POLL_INTERVAL (default: 1s) - Deprecated and ignored. - - --poll-jitter duration, $CODER_PROVISIONERD_POLL_JITTER (default: 100ms) - Deprecated and ignored. - - --prometheus-address string, $CODER_PROMETHEUS_ADDRESS (default: 127.0.0.1:2112) - The bind address to serve prometheus metrics. - - --prometheus-enable bool, $CODER_PROMETHEUS_ENABLE (default: false) - Serve prometheus metrics on the address defined by prometheus address. - - --psk string, $CODER_PROVISIONER_DAEMON_PSK - Pre-shared key to authenticate with Coder server. - DEPRECATED: Use --key instead. - - -t, --tag string-array, $CODER_PROVISIONERD_TAGS - Tags to filter provisioner jobs by. - - --verbose bool, $CODER_PROVISIONER_DAEMON_VERBOSE (default: false) - Output debug-level logs. - -——— -Run `coder --help` for a list of global options. diff --git a/enterprise/cli/testdata/coder_wsproxy_--help.golden b/enterprise/cli/testdata/coder_wsproxy_--help.golden deleted file mode 100644 index 8f39caa1ecd9e..0000000000000 --- a/enterprise/cli/testdata/coder_wsproxy_--help.golden +++ /dev/null @@ -1,17 +0,0 @@ -Usage: coder workspace-proxy - -Manage workspace proxies - -Aliases: wsproxy - -Subcommands - create Create a workspace proxy - delete Delete a workspace proxy - edit Edit a workspace proxy - ls List all workspace proxies - regenerate-token Regenerate a workspace proxy authentication token. This - will invalidate the existing authentication token. - server Start a workspace proxy server - ---- -Run `coder --help` for a list of global options. From bfba244abbd4475ed9eefebbefbbd6a84c01109d Mon Sep 17 00:00:00 2001 From: Mathias Fredriksson Date: Tue, 31 Dec 2024 14:06:08 +0000 Subject: [PATCH 2/4] move detached comment --- .github/workflows/ci.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 87db8b35dd1bc..5bcb1de6f7212 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -272,9 +272,9 @@ jobs: run: "make --output-sync -B gen" - name: make update-golden-files - # As above, skip `-j` flag. run: | make clean/golden-files + # As above, skip `-j` flag. make --output-sync -B update-golden-files - name: Check for unstaged files From 42616f2be1c3851e50b39c5e4b75d4858b1937ea Mon Sep 17 00:00:00 2001 From: Mathias Fredriksson Date: Tue, 31 Dec 2024 15:32:37 +0000 Subject: [PATCH 3/4] sync chart_test.go between coder and provisioner --- helm/provisioner/tests/chart_test.go | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/helm/provisioner/tests/chart_test.go b/helm/provisioner/tests/chart_test.go index 0c27771ce369a..136e77f76a4ab 100644 --- a/helm/provisioner/tests/chart_test.go +++ b/helm/provisioner/tests/chart_test.go @@ -121,6 +121,7 @@ func TestRenderChart(t *testing.T) { helmPath := lookupHelm(t) err := updateHelmDependencies(t, helmPath, "..") require.NoError(t, err, "failed to build Helm dependencies") + for _, tc := range testCases { tc := tc t.Run(tc.name, func(t *testing.T) { @@ -162,6 +163,9 @@ func TestUpdateGoldenFiles(t *testing.T) { } helmPath := lookupHelm(t) + err := updateHelmDependencies(t, helmPath, "..") + require.NoError(t, err, "failed to build Helm dependencies") + for _, tc := range testCases { if tc.expectedError != "" { t.Logf("skipping test case %q with render error", tc.name) @@ -171,7 +175,8 @@ func TestUpdateGoldenFiles(t *testing.T) { valuesPath := tc.valuesFilePath() templateOutput, err := runHelmTemplate(t, helmPath, "..", valuesPath) if err != nil { - t.Logf("Command output:\n%s", templateOutput) + t.Logf("error running `helm template -f %q`: %v", valuesPath, err) + t.Logf("output: %s", templateOutput) } require.NoError(t, err, "failed to run `helm template -f %q`", valuesPath) From 22fd4710136e643dc14f3d909f5ec9d7afbaae1f Mon Sep 17 00:00:00 2001 From: Mathias Fredriksson Date: Tue, 31 Dec 2024 15:52:07 +0000 Subject: [PATCH 4/4] fix notif gen --- .github/workflows/ci.yaml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 5bcb1de6f7212..e5180b037a916 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -274,6 +274,9 @@ jobs: - name: make update-golden-files run: | make clean/golden-files + # Notifications require DB, we could start a DB instance here but + # let's just restore for now. + git checkout -- coderd/notifications/testdata/rendered-templates # As above, skip `-j` flag. make --output-sync -B update-golden-files