mirror of
https://github.com/coder/coder.git
synced 2025-07-12 00:14:10 +00:00
This change bundles the static assets like we have for v1 - using the [`embed`](https://pkg.go.dev/embed) go package. Fixes #22 In addition, it sets up a development script that runs `coderd` locally and serves the front-end, with hot-reloading. The script used is `./develop.sh`:  > NOTE: The UI is still placeholder, of course. Need to start testing out a simple, placeholder flow for the new v2 world as a next step Summary of changes: - Add build steps for `go` in the `Makefile` - Add a step for production build, in which we use the `embed` tag - Add a step for development, which doesn't need the `embed` tag - so we don't need to build the front-end twice - Add `next export` build step to output front-end artifacts in `out` - Add a `site` package for `go` - Add `embed_static.go` and `embed.go`. This is mostly brought in as-is from v1, except removing some intercom/sentry CSP entries that we aren't using. - Add a [next development server](https://nextjs.org/docs/advanced-features/custom-server) - Add a `v2-dev` script, that runs `coderd` and the `next` dev server side-by-side - Use the `site` package as the fallback handler. - Add `.gitignore` entries for additional build collateral
16 lines
631 B
Bash
Executable File
16 lines
631 B
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
set -euo pipefail
|
|
|
|
PROJECT_ROOT="$(git rev-parse --show-toplevel)"
|
|
cd "${PROJECT_ROOT}"
|
|
|
|
# Do initial build - a dev build for coderd.
|
|
# It's OK that we don't build the front-end before - because the front-end
|
|
# assets are handled by the `yarn dev` devserver.
|
|
make bin/coderd
|
|
|
|
# This is a way to run multiple processes in parallel, and have Ctrl-C work correctly
|
|
# to kill both at the same time. For more details, see:
|
|
# https://stackoverflow.com/questions/3004811/how-do-you-run-multiple-programs-in-parallel-from-a-bash-script
|
|
(trap 'kill 0' SIGINT; CODERV2_HOST=http://127.0.0.1:3000 yarn dev & ./bin/coderd) |