Skip to content

Commit f173c2b

Browse files
committed
Merge branch 'main' into colorful-rebased
2 parents aa66d59 + 876d448 commit f173c2b

File tree

102 files changed

+2639
-825
lines changed

Some content is hidden

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

102 files changed

+2639
-825
lines changed

.devcontainer/devcontainer.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "Development environments on your infrastructure",
3-
"image": "codercom/oss-dogfood:pre-nix",
3+
"image": "codercom/oss-dogfood:latest",
44

55
"features": {
66
// See all possible options here https://github.com/devcontainers/features/tree/main/src/docker-in-docker

.github/workflows/ci.yaml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -573,6 +573,10 @@ jobs:
573573

574574
- name: Install go tools
575575
run: |
576+
go install google.golang.org/protobuf/cmd/protoc-gen-go@v1.30
577+
go install storj.io/drpc/cmd/protoc-gen-go-drpc@v0.0.33
578+
go install golang.org/x/tools/cmd/goimports@latest
579+
go install github.com/mikefarah/yq/v4@v4.30.6
576580
go install github.com/golang/mock/mockgen@v1.6.0
577581
578582
- name: Setup sqlc

.github/workflows/dogfood.yaml

Lines changed: 11 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -5,15 +5,11 @@ on:
55
branches:
66
- main
77
paths:
8-
- "flake.nix"
9-
- "flake.lock"
108
- "dogfood/**"
119
- ".github/workflows/dogfood.yaml"
1210
# Uncomment these lines when testing with CI.
1311
# pull_request:
1412
# paths:
15-
# - "flake.nix"
16-
# - "flake.lock"
1713
# - "dogfood/**"
1814
# - ".github/workflows/dogfood.yaml"
1915
workflow_dispatch:
@@ -37,24 +33,24 @@ jobs:
3733
tag=${tag//\//--}
3834
echo "tag=${tag}" >> $GITHUB_OUTPUT
3935
40-
- name: Install Nix
41-
uses: DeterminateSystems/nix-installer-action@v8
42-
43-
- name: Run the Magic Nix Cache
44-
uses: DeterminateSystems/magic-nix-cache-action@v2
45-
46-
- run: nix build .#devEnvImage && ./result | docker load
36+
- name: Set up Docker Buildx
37+
uses: docker/setup-buildx-action@v2
4738

4839
- name: Login to DockerHub
4940
uses: docker/login-action@v3
5041
with:
5142
username: ${{ secrets.DOCKERHUB_USERNAME }}
5243
password: ${{ secrets.DOCKERHUB_PASSWORD }}
5344

54-
- name: Tag and Push
55-
run: |
56-
docker tag codercom/oss-dogfood:latest codercom/oss-dogfood:${{ steps.docker-tag-name.outputs.tag }}
57-
docker push codercom/oss-dogfood -a
45+
- name: Build and push
46+
uses: docker/build-push-action@v4
47+
with:
48+
context: "{{defaultContext}}:dogfood"
49+
pull: true
50+
push: true
51+
tags: "codercom/oss-dogfood:${{ steps.docker-tag-name.outputs.tag }},codercom/oss-dogfood:latest"
52+
cache-from: type=registry,ref=codercom/oss-dogfood:latest
53+
cache-to: type=inline
5854

5955
deploy_template:
6056
needs: deploy_image

.github/workflows/release.yaml

Lines changed: 12 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -434,27 +434,26 @@ jobs:
434434
435435
$release_assets = gh release view --repo coder/coder "v${version}" --json assets | `
436436
ConvertFrom-Json
437-
# Get the installer URL from the release assets.
438-
$installer_url = $release_assets.assets | `
437+
# Get the installer URLs from the release assets.
438+
$amd64_installer_url = $release_assets.assets | `
439439
Where-Object name -Match ".*_windows_amd64_installer.exe$" | `
440440
Select -ExpandProperty url
441+
$amd64_zip_url = $release_assets.assets | `
442+
Where-Object name -Match ".*_windows_amd64.zip$" | `
443+
Select -ExpandProperty url
444+
$arm64_zip_url = $release_assets.assets | `
445+
Where-Object name -Match ".*_windows_arm64.zip$" | `
446+
Select -ExpandProperty url
441447
442-
echo "Installer URL: ${installer_url}"
448+
echo "amd64 Installer URL: ${amd64_installer_url}"
449+
echo "amd64 zip URL: ${amd64_zip_url}"
450+
echo "arm64 zip URL: ${arm64_zip_url}"
443451
echo "Package version: ${version}"
444452
445-
# The URL "|X64" suffix forces the architecture as it cannot be
446-
# sniffed properly from the URL. wingetcreate checks both the URL and
447-
# binary magic bytes for the architecture and they need to both match,
448-
# but they only check for `x64`, `win64` and `_64` in the URL. Our URL
449-
# contains `amd64` which doesn't match sadly.
450-
#
451-
# wingetcreate will still do the binary magic bytes check, so if we
452-
# accidentally change the architecture of the installer, it will fail
453-
# submission.
454453
.\wingetcreate.exe update Coder.Coder `
455454
--submit `
456455
--version "${version}" `
457-
--urls "${installer_url}|X64" `
456+
--urls "${amd64_installer_url}" "${amd64_zip_url}" "${arm64_zip_url}" `
458457
--token "$env:WINGET_GH_TOKEN"
459458
460459
env:

cli/exp_scaletest.go

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -419,9 +419,9 @@ func (r *RootCmd) scaletestCleanup() *clibase.Cmd {
419419
}
420420

421421
client.HTTPClient = &http.Client{
422-
Transport: &headerTransport{
423-
transport: http.DefaultTransport,
424-
header: map[string][]string{
422+
Transport: &codersdk.HeaderTransport{
423+
Transport: http.DefaultTransport,
424+
Header: map[string][]string{
425425
codersdk.BypassRatelimitHeader: {"true"},
426426
},
427427
},
@@ -570,9 +570,9 @@ func (r *RootCmd) scaletestCreateWorkspaces() *clibase.Cmd {
570570
}
571571

572572
client.HTTPClient = &http.Client{
573-
Transport: &headerTransport{
574-
transport: http.DefaultTransport,
575-
header: map[string][]string{
573+
Transport: &codersdk.HeaderTransport{
574+
Transport: http.DefaultTransport,
575+
Header: map[string][]string{
576576
codersdk.BypassRatelimitHeader: {"true"},
577577
},
578578
},
@@ -896,9 +896,9 @@ func (r *RootCmd) scaletestWorkspaceTraffic() *clibase.Cmd {
896896

897897
// Bypass rate limiting
898898
client.HTTPClient = &http.Client{
899-
Transport: &headerTransport{
900-
transport: http.DefaultTransport,
901-
header: map[string][]string{
899+
Transport: &codersdk.HeaderTransport{
900+
Transport: http.DefaultTransport,
901+
Header: map[string][]string{
902902
codersdk.BypassRatelimitHeader: {"true"},
903903
},
904904
},

cli/root.go

Lines changed: 22 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -471,11 +471,11 @@ type RootCmd struct {
471471
}
472472

473473
func addTelemetryHeader(client *codersdk.Client, inv *clibase.Invocation) {
474-
transport, ok := client.HTTPClient.Transport.(*headerTransport)
474+
transport, ok := client.HTTPClient.Transport.(*codersdk.HeaderTransport)
475475
if !ok {
476-
transport = &headerTransport{
477-
transport: client.HTTPClient.Transport,
478-
header: http.Header{},
476+
transport = &codersdk.HeaderTransport{
477+
Transport: client.HTTPClient.Transport,
478+
Header: http.Header{},
479479
}
480480
client.HTTPClient.Transport = transport
481481
}
@@ -509,7 +509,7 @@ func addTelemetryHeader(client *codersdk.Client, inv *clibase.Invocation) {
509509
return
510510
}
511511

512-
transport.header.Add(codersdk.CLITelemetryHeader, s)
512+
transport.Header.Add(codersdk.CLITelemetryHeader, s)
513513
}
514514

515515
// InitClient sets client to a new client.
@@ -609,10 +609,10 @@ func (r *RootCmd) initClientInternal(client *codersdk.Client, allowTokenMissing
609609
}
610610
}
611611

612-
func (r *RootCmd) setClient(ctx context.Context, client *codersdk.Client, serverURL *url.URL) error {
613-
transport := &headerTransport{
614-
transport: http.DefaultTransport,
615-
header: http.Header{},
612+
func (r *RootCmd) HeaderTransport(ctx context.Context, serverURL *url.URL) (*codersdk.HeaderTransport, error) {
613+
transport := &codersdk.HeaderTransport{
614+
Transport: http.DefaultTransport,
615+
Header: http.Header{},
616616
}
617617
headers := r.header
618618
if r.headerCommand != "" {
@@ -630,23 +630,32 @@ func (r *RootCmd) setClient(ctx context.Context, client *codersdk.Client, server
630630
cmd.Stderr = io.Discard
631631
err := cmd.Run()
632632
if err != nil {
633-
return xerrors.Errorf("failed to run %v: %w", cmd.Args, err)
633+
return nil, xerrors.Errorf("failed to run %v: %w", cmd.Args, err)
634634
}
635635
scanner := bufio.NewScanner(&outBuf)
636636
for scanner.Scan() {
637637
headers = append(headers, scanner.Text())
638638
}
639639
if err := scanner.Err(); err != nil {
640-
return xerrors.Errorf("scan %v: %w", cmd.Args, err)
640+
return nil, xerrors.Errorf("scan %v: %w", cmd.Args, err)
641641
}
642642
}
643643
for _, header := range headers {
644644
parts := strings.SplitN(header, "=", 2)
645645
if len(parts) < 2 {
646-
return xerrors.Errorf("split header %q had less than two parts", header)
646+
return nil, xerrors.Errorf("split header %q had less than two parts", header)
647647
}
648-
transport.header.Add(parts[0], parts[1])
648+
transport.Header.Add(parts[0], parts[1])
649+
}
650+
return transport, nil
651+
}
652+
653+
func (r *RootCmd) setClient(ctx context.Context, client *codersdk.Client, serverURL *url.URL) error {
654+
transport, err := r.HeaderTransport(ctx, serverURL)
655+
if err != nil {
656+
return xerrors.Errorf("create header transport: %w", err)
649657
}
658+
650659
client.URL = serverURL
651660
client.HTTPClient = &http.Client{
652661
Transport: transport,
@@ -853,24 +862,6 @@ func (r *RootCmd) Verbosef(inv *clibase.Invocation, fmtStr string, args ...inter
853862
}
854863
}
855864

856-
type headerTransport struct {
857-
transport http.RoundTripper
858-
header http.Header
859-
}
860-
861-
func (h *headerTransport) Header() http.Header {
862-
return h.header.Clone()
863-
}
864-
865-
func (h *headerTransport) RoundTrip(req *http.Request) (*http.Response, error) {
866-
for k, v := range h.header {
867-
for _, vv := range v {
868-
req.Header.Add(k, vv)
869-
}
870-
}
871-
return h.transport.RoundTrip(req)
872-
}
873-
874865
// DumpHandler provides a custom SIGQUIT and SIGTRAP handler that dumps the
875866
// stacktrace of all goroutines to stderr and a well-known file in the home
876867
// directory. This is useful for debugging deadlock issues that may occur in

coderd/apidoc/docs.go

Lines changed: 9 additions & 18 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

coderd/apidoc/swagger.json

Lines changed: 9 additions & 18 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

coderd/database/dump.sql

Lines changed: 3 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
ALTER TABLE provisioner_daemons
2+
DROP COLUMN last_seen_at,
3+
DROP COLUMN version;
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
ALTER TABLE provisioner_daemons
2+
ADD COLUMN last_seen_at TIMESTAMP WITH TIME ZONE NULL,
3+
ADD COLUMN version TEXT NOT NULL DEFAULT ''::TEXT;

coderd/database/models.go

Lines changed: 2 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)