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

Lines changed: 10 additions & 2 deletions
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

Lines changed: 1 addition & 1 deletion
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

Lines changed: 1 addition & 2 deletions
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

Lines changed: 5 additions & 8 deletions
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

Lines changed: 22 additions & 18 deletions
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

Lines changed: 2 additions & 2 deletions
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

Lines changed: 1 addition & 1 deletion
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

Lines changed: 16 additions & 12 deletions
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

Lines changed: 2 additions & 2 deletions
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

Lines changed: 2 additions & 2 deletions
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)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy