2024-09-07 02:07:32 +02:00
MAKEFLAGS += --always-make
2024-02-04 03:09:53 +01:00
help : ## Show this help.
@fgrep -h "##" $( MAKEFILE_LIST) | fgrep -v fgrep | sed -e 's/\\$$//' | sed -e 's/##//'
2024-08-11 21:26:09 +02:00
fmt : ## Format all files
2024-08-11 21:19:41 +02:00
gofumpt -l -w -extra .
gci write --custom-order -s standard -s 'Prefix(github.com/ddworken/hishtory)' -s default .
2024-02-04 03:11:20 +01:00
local-install : ## Build and install hishtory locally from the current directory
go build; ./hishtory install
2024-02-04 03:09:53 +01:00
forcetest : ## Force running all tests without a test cache
2022-04-15 05:18:49 +02:00
go clean -testcache
2023-10-22 00:41:32 +02:00
make test
2022-04-16 03:12:26 +02:00
2024-02-04 03:09:53 +01:00
test : ## Run all tests
2025-01-18 20:25:07 +01:00
TZ = 'America/Los_Angeles' HISHTORY_TEST = 1 HISHTORY_SKIP_INIT_IMPORT = 1 gotestsum --packages ./... --rerun-fails= 5 --rerun-fails-max-failures= 15 --format testname --jsonfile /tmp/testrun.json --post-run-command "go run client/posttest/main.go export" -- -p 1 -timeout 90m
2022-01-11 03:50:10 +01:00
2024-12-31 19:22:32 +01:00
ftest : ## Run a specific test specified via `make ftest FILTER=TestParam/testTui/color` or `make ftest FILTER=TestImportJson`
2022-12-17 06:18:37 +01:00
go clean -testcache
2023-12-22 02:06:46 +01:00
HISHTORY_FILTERED_TEST = 1 TZ = 'America/Los_Angeles' HISHTORY_TEST = 1 HISHTORY_SKIP_INIT_IMPORT = 1 gotestsum --packages ./... --rerun-fails= 0 --format testname -- -p 1 -run " $( FILTER) " -timeout 60m
2023-09-05 04:30:38 +02:00
2024-04-14 18:57:44 +02:00
fbench : ## Run a specific benchmark test specified via `make fbench FILTER=BenchmarkQuery`
HISHTORY_FILTERED_TEST = 1 TZ = 'America/Los_Angeles' HISHTORY_TEST = 1 HISHTORY_SKIP_INIT_IMPORT = 1 go test -benchmem -bench " $( FILTER) " -timeout 60m ./...
2024-12-31 19:22:32 +01:00
backup : ## Backup the local hishtory install. It is recommended to do this before doing any local dev or running any integration tests.
rm -rf ~/.hishtory.bak || true
cp -a ~/.hishtory ~/.hishtory.bak
restore : ## Restore the local hishtory install. If anything goes wrong during local dev or from running integration tests, you can restore the local hishtory install to the last backup.
rm -rf ~/.hishtory
mv ~/.hishtory.bak ~/.hishtory
2024-02-04 03:09:53 +01:00
release : ## [ddworken only] Release the latest version on Github
2022-04-17 20:44:57 +02:00
# Bump the version
2022-04-09 07:57:53 +02:00
expr ` cat VERSION` + 1 > VERSION
2022-04-09 08:07:44 +02:00
git add VERSION
2022-06-05 05:35:01 +02:00
git commit -m "Release v0.`cat VERSION`" --no-verify
2024-08-11 21:19:41 +02:00
git push
2022-04-17 21:30:46 +02:00
gh release create v0.` cat VERSION` --generate-notes
2022-04-26 07:21:17 +02:00
git push && git push --tags
2022-04-09 07:12:00 +02:00
2024-08-11 21:19:41 +02:00
build-static : ## [ddworken only] Build the server for hishtory.dev
2023-09-05 20:52:46 +02:00
ssh server "cd ~/code/hishtory/; git pull; docker build --build-arg GOARCH=amd64 --tag gcr.io/dworken-k8s/hishtory-static --file backend/web/caddy/Dockerfile ."
2022-04-03 07:27:20 +02:00
2024-08-11 21:19:41 +02:00
build-api : ## [ddworken only] Build the API for api.hishtory.dev
2022-12-24 02:17:44 +01:00
rm hishtory server || true
2023-09-05 20:52:46 +02:00
docker build --build-arg GOARCH = amd64 --tag gcr.io/dworken-k8s/hishtory-api --file backend/server/Dockerfile .
2022-01-11 03:50:10 +01:00
2024-08-11 21:19:41 +02:00
deploy-static : ## [ddworken only] Build and deploy the server for hishtory.dev
2022-04-03 07:27:20 +02:00
deploy-static : build -static
2023-03-01 06:22:35 +01:00
ssh server "docker push gcr.io/dworken-k8s/hishtory-static"
2024-09-04 06:18:54 +02:00
ssh monoserver "cd ~/code/infra/ && docker compose pull hishtory-static && docker compose rm -svf hishtory-static && docker compose up -d hishtory-static"
2022-04-03 07:27:20 +02:00
2024-08-11 21:19:41 +02:00
deploy-api : ## [ddworken only] Build and deploy the API server for api.hishtory.dev
2022-04-03 07:27:20 +02:00
deploy-api : build -api
docker push gcr.io/dworken-k8s/hishtory-api
2024-09-04 06:18:54 +02:00
ssh monoserver "cd ~/code/infra/ && docker compose pull hishtory-api && docker compose up -d --no-deps hishtory-api"
2022-04-07 07:43:07 +02:00
2024-08-11 21:19:41 +02:00
deploy : ## [ddworken only] Build and deploy all backend services
2022-04-09 08:07:44 +02:00
deploy : release deploy -static deploy -api