Skip to content
This repository was archived by the owner on Aug 30, 2024. It is now read-only.

Commit c3802f8

Browse files
authored
Cleanup (#164)
1 parent 11cd031 commit c3802f8

File tree

12 files changed

+79
-63
lines changed

12 files changed

+79
-63
lines changed

ci/README.md

+10-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,13 @@
11
# ci
22

3+
## checks
4+
5+
- `steps/build.sh` builds release assets with the appropriate tag injected. Required to pass for merging.
6+
- `steps/fmt.sh` formats all Go source files.
7+
- `steps/gendocs.sh` generates CLI documentation into `/docs` from the command specifications.
8+
- `steps/lint.sh` lints all Go source files based on the rules set fourth in `/.golangci.yml`.
9+
10+
311
## integration tests
412

513
### `tcli`
@@ -8,7 +16,7 @@ Package `tcli` provides a framework for writing end-to-end CLI tests.
816
Each test group can have its own container for executing commands in a consistent
917
and isolated filesystem.
1018

11-
### prerequisites
19+
### running
1220

1321
Assign the following environment variables to run the integration tests
1422
against an existing Enterprise deployment instance.
@@ -22,5 +30,5 @@ export CODER_PASSWORD=...
2230
Then, simply run the test command from the project root
2331

2432
```sh
25-
go test -v ./ci/integration
33+
./ci/steps/integration.sh
2634
```

ci/integration/integration_test.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ func run(t *testing.T, container string, execute func(t *testing.T, ctx context.
1414
t.Run(container, func(t *testing.T) {
1515
t.Parallel()
1616

17-
ctx, cancel := context.WithTimeout(context.Background(), time.Minute*5)
17+
ctx, cancel := context.WithTimeout(context.Background(), 10*time.Minute)
1818
defer cancel()
1919

2020
c, err := tcli.NewContainerRunner(ctx, &tcli.ContainerConfig{

internal/cmd/auth.go

+1-2
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,7 @@ var errNeedLogin = clog.Fatal(
1919
clog.Hintf(`did you run "coder login [https://coder.domain.com]"?`),
2020
)
2121

22-
func newClient() (*coder.Client, error) {
23-
ctx := context.Background()
22+
func newClient(ctx context.Context) (*coder.Client, error) {
2423
sessionToken, err := config.Session.Read()
2524
if err != nil {
2625
return nil, errNeedLogin

internal/cmd/configssh.go

+5-8
Original file line numberDiff line numberDiff line change
@@ -49,9 +49,7 @@ func configSSH(configpath *string, remove *bool) func(cmd *cobra.Command, _ []st
4949
endToken := "# ------------END-CODER-ENTERPRISE------------"
5050

5151
return func(cmd *cobra.Command, _ []string) error {
52-
ctx, cancel := context.WithCancel(context.Background())
53-
defer cancel()
54-
52+
ctx := cmd.Context()
5553
usr, err := user.Current()
5654
if err != nil {
5755
return xerrors.Errorf("get user home directory: %w", err)
@@ -88,22 +86,21 @@ func configSSH(configpath *string, remove *bool) func(cmd *cobra.Command, _ []st
8886
return nil
8987
}
9088

91-
client, err := newClient()
89+
client, err := newClient(ctx)
9290
if err != nil {
9391
return err
9492
}
9593

96-
sshAvailable := isSSHAvailable(ctx)
97-
if !sshAvailable {
94+
if !isSSHAvailable(ctx) {
9895
return xerrors.New("SSH is disabled or not available for your Coder Enterprise deployment.")
9996
}
10097

101-
user, err := client.Me(cmd.Context())
98+
user, err := client.Me(ctx)
10299
if err != nil {
103100
return xerrors.Errorf("fetch username: %w", err)
104101
}
105102

106-
envs, err := getEnvs(cmd.Context(), client, coder.Me)
103+
envs, err := getEnvs(ctx, client, coder.Me)
107104
if err != nil {
108105
return err
109106
}

internal/cmd/envs.go

+22-18
Original file line numberDiff line numberDiff line change
@@ -46,11 +46,12 @@ func lsEnvsCommand(user *string) *cobra.Command {
4646
Short: "list all environments owned by the active user",
4747
Long: "List all Coder environments owned by the active user.",
4848
RunE: func(cmd *cobra.Command, args []string) error {
49-
client, err := newClient()
49+
ctx := cmd.Context()
50+
client, err := newClient(ctx)
5051
if err != nil {
5152
return err
5253
}
53-
envs, err := getEnvs(cmd.Context(), client, *user)
54+
envs, err := getEnvs(ctx, client, *user)
5455
if err != nil {
5556
return err
5657
}
@@ -101,7 +102,8 @@ coder envs --user charlie@coder.com ls -o json \
101102
| xargs coder envs --user charlie@coder.com stop`,
102103
Args: cobra.MinimumNArgs(1),
103104
RunE: func(cmd *cobra.Command, args []string) error {
104-
client, err := newClient()
105+
ctx := cmd.Context()
106+
client, err := newClient(ctx)
105107
if err != nil {
106108
return xerrors.Errorf("new client: %w", err)
107109
}
@@ -110,12 +112,12 @@ coder envs --user charlie@coder.com ls -o json \
110112
for _, envName := range args {
111113
envName := envName
112114
egroup.Go(func() error {
113-
env, err := findEnv(cmd.Context(), client, envName, *user)
115+
env, err := findEnv(ctx, client, envName, *user)
114116
if err != nil {
115117
return err
116118
}
117119

118-
if err = client.StopEnvironment(cmd.Context(), env.ID); err != nil {
120+
if err = client.StopEnvironment(ctx, env.ID); err != nil {
119121
return clog.Error(fmt.Sprintf("stop environment %q", env.Name),
120122
clog.Causef(err.Error()), clog.BlankLine,
121123
clog.Hintf("current environment status is %q", env.LatestStat.ContainerStatus),
@@ -152,16 +154,17 @@ coder envs create --image 5f443b16-30652892427b955601330fa5 my-env-name
152154
# create a new environment using custom resource amounts
153155
coder envs create --cpu 4 --disk 100 --memory 8 --image 5f443b16-30652892427b955601330fa5 my-env-name`,
154156
RunE: func(cmd *cobra.Command, args []string) error {
157+
ctx := cmd.Context()
155158
if img == "" {
156159
return xerrors.New("image unset")
157160
}
158161

159-
client, err := newClient()
162+
client, err := newClient(ctx)
160163
if err != nil {
161164
return err
162165
}
163166

164-
multiOrgMember, err := isMultiOrgMember(cmd.Context(), client, *user)
167+
multiOrgMember, err := isMultiOrgMember(ctx, client, *user)
165168
if err != nil {
166169
return err
167170
}
@@ -170,7 +173,7 @@ coder envs create --cpu 4 --disk 100 --memory 8 --image 5f443b16-30652892427b955
170173
return xerrors.New("org is required for multi-org members")
171174
}
172175

173-
importedImg, err := findImg(cmd.Context(),
176+
importedImg, err := findImg(ctx,
174177
findImgConf{
175178
client: client,
176179
email: *user,
@@ -207,14 +210,14 @@ coder envs create --cpu 4 --disk 100 --memory 8 --image 5f443b16-30652892427b955
207210
createReq.DiskGB = importedImg.DefaultDiskGB
208211
}
209212

210-
env, err := client.CreateEnvironment(cmd.Context(), importedImg.OrganizationID, *createReq)
213+
env, err := client.CreateEnvironment(ctx, importedImg.OrganizationID, *createReq)
211214
if err != nil {
212215
return xerrors.Errorf("create environment: %w", err)
213216
}
214217

215218
if follow {
216219
clog.LogSuccess("creating environment...")
217-
if err := trailBuildLogs(cmd.Context(), client, env.ID); err != nil {
220+
if err := trailBuildLogs(ctx, client, env.ID); err != nil {
218221
return err
219222
}
220223
return nil
@@ -261,19 +264,20 @@ func editEnvCmd(user *string) *cobra.Command {
261264
262265
coder envs edit back-end-env --disk 20`,
263266
RunE: func(cmd *cobra.Command, args []string) error {
264-
client, err := newClient()
267+
ctx := cmd.Context()
268+
client, err := newClient(ctx)
265269
if err != nil {
266270
return err
267271
}
268272

269273
envName := args[0]
270274

271-
env, err := findEnv(cmd.Context(), client, envName, *user)
275+
env, err := findEnv(ctx, client, envName, *user)
272276
if err != nil {
273277
return err
274278
}
275279

276-
multiOrgMember, err := isMultiOrgMember(cmd.Context(), client, *user)
280+
multiOrgMember, err := isMultiOrgMember(ctx, client, *user)
277281
if err != nil {
278282
return err
279283
}
@@ -288,7 +292,7 @@ coder envs edit back-end-env --disk 20`,
288292
diskGB, _ = cmd.Flags().GetInt("disk")
289293
gpus, _ = cmd.Flags().GetInt("gpus")
290294

291-
req, err := buildUpdateReq(cmd.Context(),
295+
req, err := buildUpdateReq(ctx,
292296
updateConf{
293297
cpu: cpuCores,
294298
memGB: memGB,
@@ -306,13 +310,13 @@ coder envs edit back-end-env --disk 20`,
306310
return err
307311
}
308312

309-
if err := client.EditEnvironment(cmd.Context(), env.ID, *req); err != nil {
313+
if err := client.EditEnvironment(ctx, env.ID, *req); err != nil {
310314
return xerrors.Errorf("failed to apply changes to environment %q: %w", envName, err)
311315
}
312316

313317
if follow {
314318
clog.LogSuccess("applied changes to the environment, rebuilding...")
315-
if err := trailBuildLogs(cmd.Context(), client, env.ID); err != nil {
319+
if err := trailBuildLogs(ctx, client, env.ID); err != nil {
316320
return err
317321
}
318322
return nil
@@ -344,7 +348,7 @@ func rmEnvsCmd(user *string) *cobra.Command {
344348
Args: cobra.MinimumNArgs(1),
345349
RunE: func(cmd *cobra.Command, args []string) error {
346350
ctx := cmd.Context()
347-
client, err := newClient()
351+
client, err := newClient(ctx)
348352
if err != nil {
349353
return err
350354
}
@@ -369,7 +373,7 @@ func rmEnvsCmd(user *string) *cobra.Command {
369373
if err != nil {
370374
return err
371375
}
372-
if err = client.DeleteEnvironment(cmd.Context(), env.ID); err != nil {
376+
if err = client.DeleteEnvironment(ctx, env.ID); err != nil {
373377
return clog.Error(
374378
fmt.Sprintf(`failed to delete environment "%s"`, env.Name),
375379
clog.Causef(err.Error()),

internal/cmd/rebuild.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ func rebuildEnvCommand(user *string) *cobra.Command {
2828
coder envs rebuild backend-env --force`,
2929
RunE: func(cmd *cobra.Command, args []string) error {
3030
ctx := cmd.Context()
31-
client, err := newClient()
31+
client, err := newClient(ctx)
3232
if err != nil {
3333
return err
3434
}
@@ -144,7 +144,7 @@ func watchBuildLogCommand(user *string) *cobra.Command {
144144
Args: cobra.ExactArgs(1),
145145
RunE: func(cmd *cobra.Command, args []string) error {
146146
ctx := cmd.Context()
147-
client, err := newClient()
147+
client, err := newClient(ctx)
148148
if err != nil {
149149
return err
150150
}

internal/cmd/resourcemanager.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ coder resources top --sort-by memory --show-empty`,
5555
func runResourceTop(options *resourceTopOptions) func(cmd *cobra.Command, args []string) error {
5656
return func(cmd *cobra.Command, args []string) error {
5757
ctx := cmd.Context()
58-
client, err := newClient()
58+
client, err := newClient(ctx)
5959
if err != nil {
6060
return err
6161
}

internal/cmd/secrets.go

+16-12
Original file line numberDiff line numberDiff line change
@@ -82,8 +82,9 @@ coder secrets create aws-credentials --from-file ./credentials.json`,
8282
name = args[0]
8383
value string
8484
err error
85+
ctx = cmd.Context()
8586
)
86-
client, err := newClient()
87+
client, err := newClient(ctx)
8788
if err != nil {
8889
return err
8990
}
@@ -112,11 +113,11 @@ coder secrets create aws-credentials --from-file ./credentials.json`,
112113
}
113114
}
114115

115-
user, err := client.UserByEmail(cmd.Context(), *userEmail)
116+
user, err := client.UserByEmail(ctx, *userEmail)
116117
if err != nil {
117118
return xerrors.Errorf("get user %q by email: %w", *userEmail, err)
118119
}
119-
err = client.InsertSecret(cmd.Context(), user, coder.InsertSecretReq{
120+
err = client.InsertSecret(ctx, user, coder.InsertSecretReq{
120121
Name: name,
121122
Value: value,
122123
Description: description,
@@ -138,16 +139,17 @@ coder secrets create aws-credentials --from-file ./credentials.json`,
138139

139140
func listSecretsCmd(userEmail *string) func(cmd *cobra.Command, _ []string) error {
140141
return func(cmd *cobra.Command, _ []string) error {
141-
client, err := newClient()
142+
ctx := cmd.Context()
143+
client, err := newClient(ctx)
142144
if err != nil {
143145
return err
144146
}
145-
user, err := client.UserByEmail(cmd.Context(), *userEmail)
147+
user, err := client.UserByEmail(ctx, *userEmail)
146148
if err != nil {
147149
return xerrors.Errorf("get user %q by email: %w", *userEmail, err)
148150
}
149151

150-
secrets, err := client.Secrets(cmd.Context(), user.ID)
152+
secrets, err := client.Secrets(ctx, user.ID)
151153
if err != nil {
152154
return xerrors.Errorf("get secrets: %w", err)
153155
}
@@ -173,17 +175,18 @@ func viewSecretCmd(userEmail *string) func(cmd *cobra.Command, args []string) er
173175
return func(cmd *cobra.Command, args []string) error {
174176
var (
175177
name = args[0]
178+
ctx = cmd.Context()
176179
)
177-
client, err := newClient()
180+
client, err := newClient(ctx)
178181
if err != nil {
179182
return err
180183
}
181-
user, err := client.UserByEmail(cmd.Context(), *userEmail)
184+
user, err := client.UserByEmail(ctx, *userEmail)
182185
if err != nil {
183186
return xerrors.Errorf("get user %q by email: %w", *userEmail, err)
184187
}
185188

186-
secret, err := client.SecretWithValueByName(cmd.Context(), name, user.ID)
189+
secret, err := client.SecretWithValueByName(ctx, name, user.ID)
187190
if err != nil {
188191
return xerrors.Errorf("get secret by name: %w", err)
189192
}
@@ -198,18 +201,19 @@ func viewSecretCmd(userEmail *string) func(cmd *cobra.Command, args []string) er
198201

199202
func removeSecretsCmd(userEmail *string) func(c *cobra.Command, args []string) error {
200203
return func(cmd *cobra.Command, args []string) error {
201-
client, err := newClient()
204+
ctx := cmd.Context()
205+
client, err := newClient(ctx)
202206
if err != nil {
203207
return err
204208
}
205-
user, err := client.UserByEmail(cmd.Context(), *userEmail)
209+
user, err := client.UserByEmail(ctx, *userEmail)
206210
if err != nil {
207211
return xerrors.Errorf("get user %q by email: %w", *userEmail, err)
208212
}
209213

210214
errorSeen := false
211215
for _, n := range args {
212-
err := client.DeleteSecretByName(cmd.Context(), n, user.ID)
216+
err := client.DeleteSecretByName(ctx, n, user.ID)
213217
if err != nil {
214218
clog.Log(clog.Error(
215219
fmt.Sprintf("failed to delete secret %q: %v", n, err),

internal/cmd/shell.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ import (
2424
func getEnvsForCompletion(user string) func(cmd *cobra.Command, args []string, toComplete string) ([]string, cobra.ShellCompDirective) {
2525
return func(cmd *cobra.Command, args []string, toComplete string) ([]string, cobra.ShellCompDirective) {
2626
ctx := cmd.Context()
27-
client, err := newClient()
27+
client, err := newClient(ctx)
2828
if err != nil {
2929
return nil, cobra.ShellCompDirectiveDefault
3030
}
@@ -98,7 +98,7 @@ func sendResizeEvents(ctx context.Context, termFD uintptr, process wsep.Process)
9898
}
9999

100100
func runCommand(ctx context.Context, envName, command string, args []string) error {
101-
client, err := newClient()
101+
client, err := newClient(ctx)
102102
if err != nil {
103103
return err
104104
}

internal/cmd/sync.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ func makeRunSync(init *bool) func(cmd *cobra.Command, args []string) error {
5252
remote = args[1]
5353
)
5454

55-
client, err := newClient()
55+
client, err := newClient(ctx)
5656
if err != nil {
5757
return err
5858
}
@@ -66,7 +66,7 @@ func makeRunSync(init *bool) func(cmd *cobra.Command, args []string) error {
6666
remoteDir = remoteTokens[1]
6767
)
6868

69-
env, err := findEnv(cmd.Context(), client, envName, coder.Me)
69+
env, err := findEnv(ctx, client, envName, coder.Me)
7070
if err != nil {
7171
return err
7272
}

0 commit comments

Comments
 (0)