Skip to content

Commit 67a0664

Browse files
committed
Merge branch 'main' into wslogs
2 parents 58e060f + dc7d6de commit 67a0664

File tree

6 files changed

+41
-29
lines changed

6 files changed

+41
-29
lines changed

Makefile

+2-1
Original file line numberDiff line numberDiff line change
@@ -60,8 +60,9 @@ coderd/database/dump.sql: $(wildcard coderd/database/migrations/*.sql)
6060
coderd/database/querier.go: coderd/database/dump.sql $(wildcard coderd/database/queries/*.sql)
6161
coderd/database/generate.sh
6262

63+
# This target is deprecated, as GNU make has issues passing signals to subprocesses.
6364
dev:
64-
./scripts/develop.sh
65+
@echo Please run ./scripts/develop.sh manually.
6566
.PHONY: dev
6667

6768
fmt/prettier:

scripts/develop.sh

+22-10
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,21 @@
11
#!/usr/bin/env bash
22

3+
# Allow toggling verbose output
4+
[[ -n ${VERBOSE:-""} ]] && set -x
35
set -euo pipefail
4-
set -x
56

67
SCRIPT_DIR=$(dirname "${BASH_SOURCE[0]}")
8+
# shellcheck disable=SC1091
9+
source "${SCRIPT_DIR}/lib.sh"
710
PROJECT_ROOT=$(cd "$SCRIPT_DIR" && git rev-parse --show-toplevel)
11+
set +u
12+
CODER_DEV_ADMIN_PASSWORD="${CODER_DEV_ADMIN_PASSWORD:-password}"
13+
set -u
14+
15+
# Preflight checks: ensure we have our required dependencies, and make sure nothing is listening on port 3000 or 8080
16+
dependencies curl git go make nc yarn
17+
nc -z 127.0.0.1 3000 >/dev/null 2>&1 && echo '== ERROR: something is listening on port 3000. Kill it and re-run this script.' && exit 1
18+
nc -z 127.0.0.1 8080 >/dev/null 2>&1 && echo '== ERROR: something is listening on port 8080. Kill it and re-run this script.' && exit 1
819

920
echo '== Run "make build" before running this command to build binaries.'
1021
echo '== Without these binaries, workspaces will fail to start!'
@@ -16,19 +27,20 @@ echo '== Without these binaries, workspaces will fail to start!'
1627
# to kill both at the same time. For more details, see:
1728
# https://stackoverflow.com/questions/3004811/how-do-you-run-multiple-programs-in-parallel-from-a-bash-script
1829
(
30+
SCRIPT_PID=$$
1931
cd "${PROJECT_ROOT}"
32+
CODERV2_HOST=http://127.0.0.1:3000 INSPECT_XSTATE=true yarn --cwd=./site dev || kill -INT -${SCRIPT_PID} &
33+
go run -tags embed cmd/coder/main.go server --address 127.0.0.1:3000 --in-memory --tunnel || kill -INT -${SCRIPT_PID} &
2034

21-
trap 'kill 0' SIGINT
22-
CODER_HOST=http://127.0.0.1:3000 INSPECT_XSTATE=true yarn --cwd=./site dev &
23-
go run -tags embed cmd/coder/main.go server --in-memory --tunnel &
24-
25-
# Just a minor sleep to ensure the first user was created to make the member.
26-
sleep 5
35+
echo '== Waiting for Coder to become ready'
36+
timeout 60s bash -c 'until curl -s --fail http://localhost:3000 > /dev/null 2>&1; do sleep 0.5; done'
2737

2838
# create the first user, the admin
29-
go run cmd/coder/main.go login http://127.0.0.1:3000 --username=admin --email=admin@coder.com --password=password || true
39+
go run cmd/coder/main.go login http://127.0.0.1:3000 --username=admin --email=admin@coder.com --password="${CODER_DEV_ADMIN_PASSWORD}" ||
40+
echo 'Failed to create admin user. To troubleshoot, try running this command manually.'
3041

31-
# || yes to always exit code 0. If this fails, whelp.
32-
go run cmd/coder/main.go users create --email=member@coder.com --username=member --password=password || true
42+
# || true to always exit code 0. If this fails, whelp.
43+
go run cmd/coder/main.go users create --email=member@coder.com --username=member --password="${CODER_DEV_ADMIN_PASSWORD}" ||
44+
echo 'Failed to create regular user. To troubleshoot, try running this command manually.'
3345
wait
3446
)

site/src/api/api.ts

+3-1
Original file line numberDiff line numberDiff line change
@@ -280,7 +280,9 @@ export const getWorkspaceBuildByNumber = async (
280280
}
281281

282282
export const getWorkspaceBuildLogs = async (buildname: string, before: Date): Promise<TypesGen.ProvisionerJobLog[]> => {
283-
const response = await axios.get<TypesGen.ProvisionerJobLog[]>(`/api/v2/workspacebuilds/${buildname}/logs?before=${before.getTime()}`)
283+
const response = await axios.get<TypesGen.ProvisionerJobLog[]>(
284+
`/api/v2/workspacebuilds/${buildname}/logs?before=${before.getTime()}`,
285+
)
284286
return response.data
285287
}
286288

site/src/api/typesGenerated.ts

+6-6
Original file line numberDiff line numberDiff line change
@@ -201,7 +201,7 @@ export interface ParameterSchema {
201201
readonly validation_contains?: string[]
202202
}
203203

204-
// From codersdk/provisionerdaemons.go:33:6
204+
// From codersdk/provisionerdaemons.go:38:6
205205
export interface ProvisionerDaemon {
206206
readonly id: string
207207
readonly created_at: string
@@ -210,7 +210,7 @@ export interface ProvisionerDaemon {
210210
readonly provisioners: ProvisionerType[]
211211
}
212212

213-
// From codersdk/provisionerdaemons.go:62:6
213+
// From codersdk/provisionerdaemons.go:67:6
214214
export interface ProvisionerJob {
215215
readonly id: string
216216
readonly created_at: string
@@ -222,7 +222,7 @@ export interface ProvisionerJob {
222222
readonly storage_source: string
223223
}
224224

225-
// From codersdk/provisionerdaemons.go:73:6
225+
// From codersdk/provisionerdaemons.go:78:6
226226
export interface ProvisionerJobLog {
227227
readonly id: string
228228
readonly created_at: string
@@ -485,10 +485,10 @@ export interface WorkspaceResource {
485485
// From codersdk/workspacebuilds.go:22:6
486486
export type BuildReason = "autostart" | "autostop" | "initiator"
487487

488-
// From codersdk/provisionerdaemons.go:23:6
488+
// From codersdk/provisionerdaemons.go:28:6
489489
export type LogLevel = "debug" | "error" | "info" | "trace" | "warn"
490490

491-
// From codersdk/provisionerdaemons.go:16:6
491+
// From codersdk/provisionerdaemons.go:21:6
492492
export type LogSource = "provisioner" | "provisioner_daemon"
493493

494494
// From codersdk/parameters.go:29:6
@@ -503,7 +503,7 @@ export type ParameterSourceScheme = "data" | "none"
503503
// From codersdk/parameters.go:37:6
504504
export type ParameterTypeSystem = "hcl" | "none"
505505

506-
// From codersdk/provisionerdaemons.go:42:6
506+
// From codersdk/provisionerdaemons.go:47:6
507507
export type ProvisionerJobStatus = "canceled" | "canceling" | "failed" | "pending" | "running" | "succeeded"
508508

509509
// From codersdk/organizations.go:14:6

site/src/pages/WorkspaceBuildPage/WorkspaceBuildPage.test.tsx

+1-5
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,6 @@
11
import { screen } from "@testing-library/react"
22
import WS from "jest-websocket-mock"
3-
import {
4-
MockWorkspace,
5-
MockWorkspaceBuild,
6-
renderWithAuth,
7-
} from "../../testHelpers/renderHelpers"
3+
import { MockWorkspace, MockWorkspaceBuild, renderWithAuth } from "../../testHelpers/renderHelpers"
84
import { WorkspaceBuildPage } from "./WorkspaceBuildPage"
95

106
describe("WorkspaceBuildPage", () => {

site/src/xServices/workspaceBuild/workspaceBuildXService.ts

+7-6
Original file line numberDiff line numberDiff line change
@@ -16,11 +16,10 @@ type LogsContext = {
1616
logs?: ProvisionerJobLog[]
1717
}
1818

19-
type LogsEvent =
20-
| {
21-
type: "ADD_LOG"
22-
log: ProvisionerJobLog
23-
}
19+
type LogsEvent = {
20+
type: "ADD_LOG"
21+
log: ProvisionerJobLog
22+
}
2423

2524
export const workspaceBuildMachine = createMachine(
2625
{
@@ -121,7 +120,9 @@ export const workspaceBuildMachine = createMachine(
121120
return new Promise<void>((resolve, reject) => {
122121
const proto = location.protocol === "https:" ? "wss:" : "ws:"
123122
const socket = new WebSocket(
124-
`${proto}//${location.host}/api/v2/workspacebuilds/${ctx.buildId}/logs?follow=true&after=${ctx.timeCursor.getTime()}`,
123+
`${proto}//${location.host}/api/v2/workspacebuilds/${
124+
ctx.buildId
125+
}/logs?follow=true&after=${ctx.timeCursor.getTime()}`,
125126
)
126127
socket.binaryType = "blob"
127128
socket.addEventListener("message", (event) => {

0 commit comments

Comments
 (0)