Skip to content

Commit 24ac835

Browse files
authored
Modify magician to support optional envvars (#12599)
1 parent 90e4b55 commit 24ac835

File tree

3 files changed

+46
-16
lines changed

3 files changed

+46
-16
lines changed

.ci/magician/cmd/check_cassettes.go

+17-7
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ import (
1111
"github.com/spf13/cobra"
1212
)
1313

14-
var ccEnvironmentVariables = [...]string{
14+
var ccRequiredEnvironmentVariables = [...]string{
1515
"COMMIT_SHA",
1616
"GOCACHE",
1717
"GOPATH",
@@ -32,25 +32,35 @@ var ccEnvironmentVariables = [...]string{
3232
"SA_KEY",
3333
}
3434

35+
var ccOptionalEnvironmentVariables = [...]string{}
36+
3537
var checkCassettesCmd = &cobra.Command{
3638
Use: "check-cassettes",
3739
Short: "Run VCR tests on downstream main branch",
3840
Long: `This command runs after downstream changes are merged and runs the most recent
3941
VCR cassettes using the newly built beta provider.
4042
41-
The following environment variables are expected:
42-
` + listCCEnvironmentVariables() + `
43+
The following environment variables are required:
44+
` + listCCRequiredEnvironmentVariables() + `
4345
4446
It prints a list of tests that failed in replaying mode along with all test output.`,
4547
RunE: func(cmd *cobra.Command, args []string) error {
46-
env := make(map[string]string, len(ccEnvironmentVariables))
47-
for _, ev := range ccEnvironmentVariables {
48+
env := make(map[string]string)
49+
for _, ev := range ccRequiredEnvironmentVariables {
4850
val, ok := os.LookupEnv(ev)
4951
if !ok {
5052
return fmt.Errorf("did not provide %s environment variable", ev)
5153
}
5254
env[ev] = val
5355
}
56+
for _, ev := range ccOptionalEnvironmentVariables {
57+
val, ok := os.LookupEnv(ev)
58+
if ok {
59+
env[ev] = val
60+
} else {
61+
fmt.Printf("🟡 Did not provide %s environment variable\n", ev)
62+
}
63+
}
5464

5565
githubToken, ok := lookupGithubTokenOrFallback("GITHUB_TOKEN_DOWNSTREAMS")
5666
if !ok {
@@ -80,9 +90,9 @@ func lookupGithubTokenOrFallback(tokenName string) (string, bool) {
8090
return val, ok
8191
}
8292

83-
func listCCEnvironmentVariables() string {
93+
func listCCRequiredEnvironmentVariables() string {
8494
var result string
85-
for i, ev := range ccEnvironmentVariables {
95+
for i, ev := range ccRequiredEnvironmentVariables {
8696
result += fmt.Sprintf("\t%2d. %s\n", i+1, ev)
8797
}
8898
return result

.ci/magician/cmd/test_terraform_vcr.go

+16-6
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ var (
3333
recordReplayTmplText string
3434
)
3535

36-
var ttvEnvironmentVariables = [...]string{
36+
var ttvRequiredEnvironmentVariables = [...]string{
3737
"GOCACHE",
3838
"GOPATH",
3939
"GOOGLE_BILLING_ACCOUNT",
@@ -55,6 +55,8 @@ var ttvEnvironmentVariables = [...]string{
5555
"USER",
5656
}
5757

58+
var ttvOptionalEnvironmentVariables = [...]string{}
59+
5860
type analytics struct {
5961
ReplayingResult vcr.Result
6062
RunFullVCR bool
@@ -103,16 +105,24 @@ It expects the following arguments:
103105
5. Build step number
104106
105107
The following environment variables are required:
106-
` + listTTVEnvironmentVariables(),
108+
` + listTTVRequiredEnvironmentVariables(),
107109
RunE: func(cmd *cobra.Command, args []string) error {
108-
env := make(map[string]string, len(ttvEnvironmentVariables))
109-
for _, ev := range ttvEnvironmentVariables {
110+
env := make(map[string]string)
111+
for _, ev := range ttvRequiredEnvironmentVariables {
110112
val, ok := os.LookupEnv(ev)
111113
if !ok {
112114
return fmt.Errorf("did not provide %s environment variable", ev)
113115
}
114116
env[ev] = val
115117
}
118+
for _, ev := range ttvOptionalEnvironmentVariables {
119+
val, ok := os.LookupEnv(ev)
120+
if ok {
121+
env[ev] = val
122+
} else {
123+
fmt.Printf("🟡 Did not provide %s environment variable\n", ev)
124+
}
125+
}
116126

117127
for _, tokenName := range []string{"GITHUB_TOKEN_DOWNSTREAMS", "GITHUB_TOKEN_MAGIC_MODULES"} {
118128
val, ok := lookupGithubTokenOrFallback(tokenName)
@@ -147,9 +157,9 @@ The following environment variables are required:
147157
},
148158
}
149159

150-
func listTTVEnvironmentVariables() string {
160+
func listTTVRequiredEnvironmentVariables() string {
151161
var result string
152-
for i, ev := range ttvEnvironmentVariables {
162+
for i, ev := range ttvRequiredEnvironmentVariables {
153163
result += fmt.Sprintf("\t%2d. %s\n", i+1, ev)
154164
}
155165
return result

.ci/magician/cmd/vcr_cassette_update.go

+13-3
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ import (
1515
_ "embed"
1616
)
1717

18-
var vcuEnvironmentVariables = [...]string{
18+
var vcuRequiredEnvironmentVariables = [...]string{
1919
"GOCACHE",
2020
"GOPATH",
2121
"GOOGLE_BILLING_ACCOUNT",
@@ -38,6 +38,8 @@ var vcuEnvironmentVariables = [...]string{
3838
"GITHUB_TOKEN_CLASSIC",
3939
}
4040

41+
var vcuOptionalEnvironmentVariables = [...]string{}
42+
4143
var (
4244
//go:embed templates/vcr/vcr_cassettes_update_replaying.tmpl
4345
replayingTmplText string
@@ -73,14 +75,22 @@ var vcrCassetteUpdateCmd = &cobra.Command{
7375
Args: cobra.ExactArgs(1),
7476
RunE: func(cmd *cobra.Command, args []string) error {
7577

76-
env := make(map[string]string, len(vcuEnvironmentVariables))
77-
for _, ev := range vcuEnvironmentVariables {
78+
env := make(map[string]string)
79+
for _, ev := range vcuRequiredEnvironmentVariables {
7880
val, ok := os.LookupEnv(ev)
7981
if !ok {
8082
return fmt.Errorf("did not provide %s environment variable", ev)
8183
}
8284
env[ev] = val
8385
}
86+
for _, ev := range vcuOptionalEnvironmentVariables {
87+
val, ok := os.LookupEnv(ev)
88+
if ok {
89+
env[ev] = val
90+
} else {
91+
fmt.Printf("🟡 Did not provide %s environment variable\n", ev)
92+
}
93+
}
8494

8595
buildID := args[0]
8696

0 commit comments

Comments
 (0)