mirror of https://github.com/coder/coder.git
103 lines
2.4 KiB
Makefile
103 lines
2.4 KiB
Makefile
INSTALL_DIR=$(shell go env GOPATH)/bin
|
|
GOOS=$(shell go env GOOS)
|
|
GOARCH=$(shell go env GOARCH)
|
|
|
|
bin:
|
|
goreleaser build --snapshot --rm-dist
|
|
.PHONY: bin
|
|
|
|
build: site/out bin
|
|
.PHONY: build
|
|
|
|
# Runs migrations to output a dump of the database.
|
|
coderd/database/dump.sql: $(wildcard coderd/database/migrations/*.sql)
|
|
go run coderd/database/dump/main.go
|
|
.PHONY: coderd/database/dump.sql
|
|
|
|
# Generates Go code for querying the database.
|
|
coderd/database/generate: fmt/sql coderd/database/dump.sql $(wildcard coderd/database/queries/*.sql)
|
|
coderd/database/generate.sh
|
|
.PHONY: coderd/database/generate
|
|
|
|
fmt/prettier:
|
|
@echo "--- prettier"
|
|
# Avoid writing files in CI to reduce file write activity
|
|
ifdef CI
|
|
cd site && yarn run format:check
|
|
else
|
|
cd site && yarn run format:write
|
|
endif
|
|
.PHONY: fmt/prettier
|
|
|
|
fmt/sql: $(wildcard coderd/database/queries/*.sql)
|
|
# TODO: this is slightly slow
|
|
for fi in coderd/database/queries/*.sql; do \
|
|
npx sql-formatter \
|
|
--language postgresql \
|
|
--lines-between-queries 2 \
|
|
--tab-indent \
|
|
$$fi \
|
|
--output $$fi; \
|
|
done
|
|
|
|
sed -i 's/@ /@/g' ./coderd/database/queries/*.sql
|
|
|
|
fmt: fmt/prettier fmt/sql
|
|
.PHONY: fmt
|
|
|
|
gen: coderd/database/generate peerbroker/proto provisionersdk/proto provisionerd/proto
|
|
.PHONY: gen
|
|
|
|
install: bin
|
|
@echo "--- Copying from bin to $(INSTALL_DIR)"
|
|
cp -r ./dist/coder_$(GOOS)_$(GOARCH)/* $(INSTALL_DIR)
|
|
@echo "-- CLI available at $(shell ls $(INSTALL_DIR)/coder*)"
|
|
.PHONY: install
|
|
|
|
lint:
|
|
golangci-lint run
|
|
.PHONY: lint
|
|
|
|
peerbroker/proto: peerbroker/proto/peerbroker.proto
|
|
protoc \
|
|
--go_out=. \
|
|
--go_opt=paths=source_relative \
|
|
--go-drpc_out=. \
|
|
--go-drpc_opt=paths=source_relative \
|
|
./peerbroker/proto/peerbroker.proto
|
|
.PHONY: peerbroker/proto
|
|
|
|
provisionerd/proto: provisionerd/proto/provisionerd.proto
|
|
protoc \
|
|
--go_out=. \
|
|
--go_opt=paths=source_relative \
|
|
--go-drpc_out=. \
|
|
--go-drpc_opt=paths=source_relative \
|
|
./provisionerd/proto/provisionerd.proto
|
|
.PHONY: provisionerd/proto
|
|
|
|
provisionersdk/proto: provisionersdk/proto/provisioner.proto
|
|
protoc \
|
|
--go_out=. \
|
|
--go_opt=paths=source_relative \
|
|
--go-drpc_out=. \
|
|
--go-drpc_opt=paths=source_relative \
|
|
./provisionersdk/proto/provisioner.proto
|
|
.PHONY: provisionersdk/proto
|
|
|
|
release: site/out
|
|
goreleaser release --snapshot --rm-dist
|
|
.PHONY: release
|
|
|
|
site/out:
|
|
./scripts/yarn_install.sh
|
|
cd site && yarn typegen
|
|
cd site && yarn build
|
|
# Restores GITKEEP files!
|
|
git checkout HEAD site/out
|
|
.PHONY: site/out
|
|
|
|
test:
|
|
gotestsum -- -v -short ./...
|
|
|