-
Notifications
You must be signed in to change notification settings - Fork 418
Expand file tree
/
Copy pathMakefile
More file actions
60 lines (45 loc) · 1.44 KB
/
Copy pathMakefile
File metadata and controls
60 lines (45 loc) · 1.44 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
.PHONY: help run build tidy test fmt vet lint migrate-up migrate-down migrate-status docker-up docker-down docker-logs
SHELL := /bin/sh
APP_NAME := gpt2api
BIN_DIR := bin
CONFIG ?= configs/config.yaml
DSN ?= $(shell awk '/mysql:/,/^[^ ]/' $(CONFIG) | grep -E "^\s*dsn:" | head -1 | sed 's/.*dsn:\s*//;s/"//g')
help:
@echo "Targets:"
@echo " run - go run cmd/server"
@echo " build - build binary to bin/$(APP_NAME)"
@echo " tidy - go mod tidy"
@echo " test - go test ./..."
@echo " fmt - gofmt -w"
@echo " vet - go vet ./..."
@echo " migrate-up - goose up"
@echo " migrate-down - goose down"
@echo " migrate-status - goose status"
@echo " docker-up - docker compose up -d"
@echo " docker-down - docker compose down"
@echo " docker-logs - docker compose logs -f"
run:
go run ./cmd/server
build:
@mkdir -p $(BIN_DIR)
go build -ldflags "-s -w" -o $(BIN_DIR)/$(APP_NAME) ./cmd/server
tidy:
go mod tidy
test:
go test ./...
fmt:
gofmt -w .
vet:
go vet ./...
migrate-up:
goose -dir sql/migrations mysql "$(DSN)" up
migrate-down:
goose -dir sql/migrations mysql "$(DSN)" down
migrate-status:
goose -dir sql/migrations mysql "$(DSN)" status
docker-up:
docker compose -f deploy/docker-compose.yml up -d
docker-down:
docker compose -f deploy/docker-compose.yml down
docker-logs:
docker compose -f deploy/docker-compose.yml logs -f