mirror of
https://github.com/PrivateCaptcha/PrivateCaptcha.git
synced 2026-02-08 14:59:25 -06:00
124 lines
4.4 KiB
Makefile
124 lines
4.4 KiB
Makefile
.PHONY: clean build deploy
|
|
|
|
STAGE ?= dev
|
|
GIT_COMMIT ?= $(shell git rev-list -1 HEAD)
|
|
DOCKER_IMAGE ?= private-captcha
|
|
SQLC_MIGRATION_FIX = pkg/db/migrations/postgres/000000_sqlc_fix.sql
|
|
|
|
test-unit:
|
|
env GOFLAGS="-mod=vendor" CGO_ENABLED=0 go test -short -coverprofile=coverage_unit.out -tags tests ./...
|
|
|
|
bench-unit:
|
|
env GOFLAGS="-mod=vendor" CGO_ENABLED=0 go test -bench=. -benchtime=20s -short ./...
|
|
|
|
test-docker:
|
|
@env GIT_COMMIT="$(GIT_COMMIT)" docker compose -f docker/docker-compose.test.yml down -v --remove-orphans
|
|
@env GIT_COMMIT="$(GIT_COMMIT)" docker compose -f docker/docker-compose.test.yml run --build --remove-orphans --rm migration
|
|
@env GIT_COMMIT="$(GIT_COMMIT)" docker compose -f docker/docker-compose.test.yml up --build --abort-on-container-exit --remove-orphans --force-recreate testserver
|
|
@env GIT_COMMIT="$(GIT_COMMIT)" docker compose -f docker/docker-compose.test.yml down -v --remove-orphans
|
|
|
|
vendors:
|
|
go mod tidy
|
|
go mod vendor
|
|
|
|
build: build-server build-loadtest
|
|
|
|
build-tests: EXTRA_BUILD_FLAGS ?= -tags enterprise,tests
|
|
build-tests:
|
|
env GOFLAGS="-mod=vendor" CGO_ENABLED=0 go test -c -cover -covermode=atomic $(EXTRA_BUILD_FLAGS) -o tests/ $(shell go list $(EXTRA_BUILD_FLAGS) -f '{{if .TestGoFiles}}{{.ImportPath}}{{end}}' ./...)
|
|
|
|
build-server:
|
|
env GOFLAGS="-mod=vendor" CGO_ENABLED=0 go build -ldflags="-s -w -X main.GitCommit=$(GIT_COMMIT)" -o bin/server ./cmd/server
|
|
|
|
build-server-ee:
|
|
env GOFLAGS="-mod=vendor" CGO_ENABLED=0 go build -ldflags="-s -w -X main.GitCommit=$(GIT_COMMIT)" -tags enterprise -o bin/server ./cmd/server
|
|
|
|
build-loadtest:
|
|
env GOFLAGS="-mod=vendor" CGO_ENABLED=0 go build -ldflags="-s -w" -o bin/loadtest cmd/loadtest/*.go
|
|
|
|
build-puzzledbg:
|
|
env GOFLAGS="-mod=vendor" CGO_ENABLED=0 go build -ldflags="-s -w" -o bin/puzzledbg cmd/puzzledbg/*.go
|
|
|
|
deploy:
|
|
echo "Nothing here"
|
|
|
|
build-docker:
|
|
docker build -f ./docker/Dockerfile --build-arg GIT_COMMIT=$(GIT_COMMIT) -t $(DOCKER_IMAGE):latest .
|
|
|
|
build-js:
|
|
rm -v web/static/js/* || echo 'Nothing to remove'
|
|
cd web && env STAGE="$(STAGE)" npm run build
|
|
|
|
build-widget-script:
|
|
rm -v widget/static/js/* || echo 'Nothing to remove'
|
|
cd widget && env STAGE="$(STAGE)" npm run build
|
|
|
|
build-widget-library:
|
|
rm -v widget/lib/*.js widget/lib/*.js.map || echo 'Nothing to remove'
|
|
cd widget && env STAGE="$(STAGE)" BUILD_TARGET="library" npm run build
|
|
|
|
publish-widget-library:
|
|
cd widget/lib && npm publish --access public
|
|
|
|
build-view-emails:
|
|
env GOFLAGS="-mod=vendor" go build -o bin/viewemails cmd/viewemails/*.go
|
|
|
|
build-view-widget:
|
|
env GOFLAGS="-mod=vendor" go build -o bin/viewwidget cmd/viewwidget/*.go
|
|
|
|
copy-static-js:
|
|
cp -v web/js/index.js web/static/js/bundle.js
|
|
cp -v web/js/htmx.min.js web/static/js/
|
|
cp -v web/js/alpine.min.js web/static/js/
|
|
cp -v web/js/d3.v7.min.js web/static/js/
|
|
|
|
serve: build-js build-widget-script copy-static-js build-server
|
|
bin/server
|
|
|
|
run:
|
|
reflex -r '^(pkg|cmd|vendor|web)/' -R '^(web/static/js|web/node_modules)' -s -- sh -c 'make serve'
|
|
|
|
run-docker:
|
|
@env GIT_COMMIT="$(GIT_COMMIT)" docker compose -f docker/docker-compose.base.yml -f docker/docker-compose.local.yml up --build
|
|
|
|
run-docker-ee:
|
|
@env GIT_COMMIT="$(GIT_COMMIT)" docker compose -f docker/docker-compose.base.yml -f docker/docker-compose.local.yml -f docker/docker-compose.ee.yml up --build
|
|
|
|
profile-docker:
|
|
@env GIT_COMMIT="$(GIT_COMMIT)" docker compose -f docker/docker-compose.base.yml -f docker/docker-compose.monitoring.yml up --build
|
|
|
|
watch-docker:
|
|
@docker compose -f docker/docker-compose.base.yml watch
|
|
|
|
clean-docker:
|
|
@docker compose -f docker/docker-compose.base.yml down -v --remove-orphans
|
|
|
|
sqlc:
|
|
# https://github.com/sqlc-dev/sqlc/issues/3571
|
|
echo "CREATE SCHEMA backend;" > $(SQLC_MIGRATION_FIX)
|
|
cd pkg/db && sqlc generate --no-remote
|
|
rm -v $(SQLC_MIGRATION_FIX)
|
|
|
|
vet-sqlc:
|
|
# https://github.com/sqlc-dev/sqlc/issues/3571
|
|
echo "CREATE SCHEMA backend;" > $(SQLC_MIGRATION_FIX)
|
|
cd pkg/db && sqlc vet
|
|
rm -v $(SQLC_MIGRATION_FIX)
|
|
|
|
vet-docker:
|
|
@docker compose -f docker/docker-compose.test.yml run --build --remove-orphans --rm vetsqlc
|
|
|
|
view-emails: build-view-emails
|
|
bin/viewemails
|
|
|
|
run-view-emails:
|
|
reflex -r '^(pkg\/email|cmd\/viewemails)/' -s -- sh -c 'make view-emails'
|
|
|
|
view-widget: build-js build-widget-script build-view-widget
|
|
bin/viewwidget
|
|
|
|
run-view-widget:
|
|
reflex -r '^(widget|web|cmd\/viewwidget)/' \
|
|
-R '^(web/static/js|widget/static/js|widget/node_modules|web/node_modules)' \
|
|
-s -- sh -c 'make view-widget'
|