Skip to content

Commit 684b902

Browse files
committed
chore: merge branch 'main' of github.com:coder/coder into bq/755/account-page
2 parents bde7c15 + 1c55572 commit 684b902

Some content is hidden

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

41 files changed

+656
-498
lines changed

.github/dependabot.yaml

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,9 @@ updates:
3232
timezone: "America/Chicago"
3333
commit-message:
3434
prefix: "chore"
35+
labels:
36+
- "dependencies"
37+
- "go"
3538

3639
- package-ecosystem: "npm"
3740
directory: "/site/"
@@ -50,3 +53,18 @@ updates:
5053
- dependency-name: "@types/node"
5154
update-types:
5255
- version-update:semver-major
56+
57+
- package-ecosystem: "terraform"
58+
directory: "/examples"
59+
schedule:
60+
interval: "weekly"
61+
time: "06:00"
62+
timezone: "America/Chicago"
63+
commit-message:
64+
prefix: "chore"
65+
labels:
66+
- "dependencies"
67+
- "terraform"
68+
ignore:
69+
# We likely want to update this ourselves.
70+
- dependency-name: "coder/coder"

.github/workflows/coder.yaml

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -386,10 +386,6 @@ jobs:
386386
- name: Install node_modules
387387
run: ./scripts/yarn_install.sh
388388

389-
- name: Build frontend
390-
run: yarn build
391-
working-directory: site
392-
393389
- run: yarn test:coverage
394390
working-directory: site
395391

.goreleaser.yaml

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,8 @@ before:
1717
builds:
1818
- id: coder-slim
1919
dir: cmd/coder
20-
ldflags: ["-s -w -X github.com/coder/coder/cli/buildinfo.tag={{ .Version }}"]
20+
ldflags:
21+
["-s -w -X github.com/coder/coder/cli/buildinfo.tag={{ .Version }}"]
2122
env: [CGO_ENABLED=0]
2223
goos: [darwin, linux, windows]
2324
goarch: [amd64]
@@ -28,8 +29,9 @@ builds:
2829
2930
- id: coder
3031
dir: cmd/coder
31-
flags: [-tags=embed]
32-
ldflags: ["-s -w -X github.com/coder/coder/cli/buildinfo.tag={{ .Version }}"]
32+
flags: ["-tags=embed"]
33+
ldflags:
34+
["-s -w -X github.com/coder/coder/cli/buildinfo.tag={{ .Version }}"]
3335
env: [CGO_ENABLED=0]
3436
goos: [darwin, linux, windows]
3537
goarch: [amd64, arm64]
@@ -61,4 +63,4 @@ release:
6163
ids: [coder, packages]
6264

6365
snapshot:
64-
name_template: '{{ .Version }}-devel+{{ .ShortCommit }}'
66+
name_template: "{{ .Version }}-devel+{{ .ShortCommit }}"

agent/agent_test.go

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -63,11 +63,9 @@ func TestAgent(t *testing.T) {
6363
t.Run("SessionTTY", func(t *testing.T) {
6464
t.Parallel()
6565
session := setupSSHSession(t)
66-
prompt := "$"
6766
command := "bash"
6867
if runtime.GOOS == "windows" {
6968
command = "cmd.exe"
70-
prompt = ">"
7169
}
7270
err := session.RequestPty("xterm", 128, 128, ssh.TerminalModes{})
7371
require.NoError(t, err)
@@ -78,7 +76,6 @@ func TestAgent(t *testing.T) {
7876
session.Stdin = ptty.Input()
7977
err = session.Start(command)
8078
require.NoError(t, err)
81-
ptty.ExpectMatch(prompt)
8279
ptty.WriteLine("echo test")
8380
ptty.ExpectMatch("test")
8481
ptty.WriteLine("exit")

cli/gitssh_test.go

Lines changed: 13 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,9 @@ import (
66
"net"
77
"sync/atomic"
88
"testing"
9-
"time"
109

1110
"github.com/gliderlabs/ssh"
11+
"github.com/google/uuid"
1212
"github.com/spf13/cobra"
1313
"github.com/stretchr/testify/require"
1414
gossh "golang.org/x/crypto/ssh"
@@ -24,34 +24,30 @@ import (
2424
func TestGitSSH(t *testing.T) {
2525
t.Parallel()
2626
t.Run("Dial", func(t *testing.T) {
27-
ctx, cancel := context.WithTimeout(context.Background(), time.Second*5)
28-
defer cancel()
29-
instanceID := "instanceidentifier"
30-
certificates, metadataClient := coderdtest.NewAWSInstanceIdentity(t, instanceID)
31-
client := coderdtest.New(t, &coderdtest.Options{
32-
AWSInstanceIdentity: certificates,
33-
})
27+
client := coderdtest.New(t, nil)
3428
user := coderdtest.CreateFirstUser(t, client)
3529

3630
// get user public key
37-
keypair, err := client.GitSSHKey(ctx, codersdk.Me)
31+
keypair, err := client.GitSSHKey(context.Background(), codersdk.Me)
3832
require.NoError(t, err)
3933
publicKey, _, _, _, err := gossh.ParseAuthorizedKey([]byte(keypair.PublicKey))
4034
require.NoError(t, err)
4135

4236
// setup provisioner
37+
agentToken := uuid.NewString()
4338
coderdtest.NewProvisionerDaemon(t, client)
4439
version := coderdtest.CreateTemplateVersion(t, client, user.OrganizationID, &echo.Responses{
45-
Parse: echo.ParseComplete,
40+
Parse: echo.ParseComplete,
41+
ProvisionDryRun: echo.ProvisionComplete,
4642
Provision: []*proto.Provision_Response{{
4743
Type: &proto.Provision_Response_Complete{
4844
Complete: &proto.Provision_Complete{
4945
Resources: []*proto.Resource{{
5046
Name: "somename",
5147
Type: "someinstance",
5248
Agents: []*proto.Agent{{
53-
Auth: &proto.Agent_InstanceId{
54-
InstanceId: instanceID,
49+
Auth: &proto.Agent_Token{
50+
Token: agentToken,
5551
},
5652
}},
5753
}},
@@ -65,23 +61,20 @@ func TestGitSSH(t *testing.T) {
6561
coderdtest.AwaitWorkspaceBuildJob(t, client, workspace.LatestBuild.ID)
6662

6763
// start workspace agent
68-
cmd, root := clitest.New(t, "agent", "--auth", "aws-instance-identity", "--url", client.URL.String())
64+
cmd, root := clitest.New(t, "agent", "--token", agentToken, "--url", client.URL.String())
6965
agentClient := &*client
7066
clitest.SetupConfig(t, agentClient, root)
7167
ctx, cancelFunc := context.WithCancel(context.Background())
7268
defer cancelFunc()
7369
go func() {
74-
// A linting error occurs for weakly typing the context value here,
75-
// but it seems reasonable for a one-off test.
76-
// nolint
77-
ctx = context.WithValue(ctx, "aws-client", metadataClient)
7870
err := cmd.ExecuteContext(ctx)
7971
require.NoError(t, err)
8072
}()
73+
8174
coderdtest.AwaitWorkspaceAgents(t, client, workspace.LatestBuild.ID)
82-
resources, err := client.WorkspaceResourcesByBuild(ctx, workspace.LatestBuild.ID)
75+
resources, err := client.WorkspaceResourcesByBuild(context.Background(), workspace.LatestBuild.ID)
8376
require.NoError(t, err)
84-
dialer, err := client.DialWorkspaceAgent(ctx, resources[0].Agents[0].ID, nil, nil)
77+
dialer, err := client.DialWorkspaceAgent(context.Background(), resources[0].Agents[0].ID, nil, nil)
8578
require.NoError(t, err)
8679
defer dialer.Close()
8780
_, err = dialer.Ping()
@@ -113,7 +106,7 @@ func TestGitSSH(t *testing.T) {
113106
cmd, root = clitest.New(t, "gitssh", "--global-config="+string(cfgDir), "--", fmt.Sprintf("-p%d", addr.Port), "-o", "StrictHostKeyChecking=no", "127.0.0.1")
114107
clitest.SetupConfig(t, agentClient, root)
115108

116-
err = cmd.ExecuteContext(ctx)
109+
err = cmd.ExecuteContext(context.Background())
117110
require.NoError(t, err)
118111
require.EqualValues(t, 1, inc)
119112
})

cli/start.go

Lines changed: 20 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -32,8 +32,8 @@ import (
3232
"github.com/coder/coder/coderd"
3333
"github.com/coder/coder/coderd/database"
3434
"github.com/coder/coder/coderd/database/databasefake"
35+
"github.com/coder/coder/coderd/devtunnel"
3536
"github.com/coder/coder/coderd/gitsshkey"
36-
"github.com/coder/coder/coderd/tunnel"
3737
"github.com/coder/coder/codersdk"
3838
"github.com/coder/coder/provisioner/terraform"
3939
"github.com/coder/coder/provisionerd"
@@ -105,7 +105,13 @@ func start() *cobra.Command {
105105
// If an access URL is specified, always skip tunneling.
106106
skipTunnel = true
107107
}
108-
var tunnelErr <-chan error
108+
109+
var (
110+
tunnelErrChan <-chan error
111+
ctxTunnel, closeTunnel = context.WithCancel(cmd.Context())
112+
)
113+
defer closeTunnel()
114+
109115
// If we're attempting to tunnel in dev-mode, the access URL
110116
// needs to be changed to use the tunnel.
111117
if dev && !skipTunnel {
@@ -124,13 +130,14 @@ func start() *cobra.Command {
124130
return err
125131
}
126132
if err == nil {
127-
accessURL, tunnelErr, err = tunnel.New(cmd.Context(), localURL.String())
133+
accessURL, tunnelErrChan, err = devtunnel.New(ctxTunnel, localURL)
128134
if err != nil {
129135
return xerrors.Errorf("create tunnel: %w", err)
130136
}
131137
}
132138
_, _ = fmt.Fprintln(cmd.ErrOrStderr())
133139
}
140+
134141
validator, err := idtoken.NewValidator(cmd.Context(), option.WithoutAuthentication())
135142
if err != nil {
136143
return err
@@ -263,8 +270,10 @@ func start() *cobra.Command {
263270
case <-cmd.Context().Done():
264271
closeCoderd()
265272
return cmd.Context().Err()
266-
case err := <-tunnelErr:
267-
return err
273+
case err := <-tunnelErrChan:
274+
if err != nil {
275+
return err
276+
}
268277
case err := <-errCh:
269278
closeCoderd()
270279
return err
@@ -328,6 +337,12 @@ func start() *cobra.Command {
328337
spin.Stop()
329338
}
330339

340+
if dev && !skipTunnel {
341+
_, _ = fmt.Fprintf(cmd.OutOrStdout(), cliui.Styles.Prompt.String()+"Waiting for dev tunnel to close...\n")
342+
closeTunnel()
343+
<-tunnelErrChan
344+
}
345+
331346
_, _ = fmt.Fprintf(cmd.OutOrStdout(), cliui.Styles.Prompt.String()+"Waiting for WebSocket connections to close...\n")
332347
shutdownConns()
333348
closeCoderd()

cli/templatecreate.go

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,13 +26,14 @@ func templateCreate() *cobra.Command {
2626
provisioner string
2727
)
2828
cmd := &cobra.Command{
29-
Use: "create <directory> [name]",
29+
Use: "create [name]",
3030
Short: "Create a template from the current directory",
3131
RunE: func(cmd *cobra.Command, args []string) error {
3232
client, err := createClient(cmd)
3333
if err != nil {
3434
return err
3535
}
36+
3637
organization, err := currentOrganization(cmd, client)
3738
if err != nil {
3839
return err
@@ -44,6 +45,7 @@ func templateCreate() *cobra.Command {
4445
} else {
4546
templateName = args[0]
4647
}
48+
4749
_, err = client.TemplateByName(cmd.Context(), organization.ID, templateName)
4850
if err == nil {
4951
return xerrors.Errorf("A template already exists named %q!", templateName)
@@ -113,7 +115,7 @@ func templateCreate() *cobra.Command {
113115
"The "+cliui.Styles.Keyword.Render(templateName)+" template has been created! "+
114116
"Developers can provision a workspace with this template using:")+"\n")
115117

116-
_, _ = fmt.Fprintln(cmd.OutOrStdout(), " "+cliui.Styles.Code.Render("coder workspaces create "+templateName))
118+
_, _ = fmt.Fprintln(cmd.OutOrStdout(), " "+cliui.Styles.Code.Render(fmt.Sprintf("coder workspaces create --template=%q [workspace name]", templateName)))
117119
_, _ = fmt.Fprintln(cmd.OutOrStdout())
118120

119121
return nil
@@ -214,9 +216,15 @@ func createValidTemplateVersion(cmd *cobra.Command, client *codersdk.Client, org
214216
if err != nil {
215217
return nil, nil, err
216218
}
217-
return &version, parameters, cliui.WorkspaceResources(cmd.OutOrStdout(), resources, cliui.WorkspaceResourcesOptions{
219+
220+
err = cliui.WorkspaceResources(cmd.OutOrStdout(), resources, cliui.WorkspaceResourcesOptions{
218221
HideAgentState: true,
219222
HideAccess: true,
220223
Title: "Template Preview",
221224
})
225+
if err != nil {
226+
return nil, nil, xerrors.Errorf("preview template resources: %w", err)
227+
}
228+
229+
return &version, parameters, nil
222230
}

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