Parent directory

Makefile

1394 bytes
 1.PHONY: all lint govulncheck test templ build gen-mocks migrate image-build
 2
 3DB_URI ?= postgres://ytrssil:ytrssil@localhost:5432/ytrssil?sslmode=disable
 4
 5bin:
 6	mkdir bin
 7bin/moq: bin
 8	GOBIN=$(PWD)/bin go install github.com/matryer/moq@v0.8.0
 9bin/golangci-lint: .golangci-lint-version | bin
10	GOBIN=$(PWD)/bin go install github.com/golangci/golangci-lint/v2/cmd/golangci-lint@$$(cat .golangci-lint-version)
11bin/migrate: bin
12	GOBIN=$(PWD)/bin go install -tags 'postgres' github.com/golang-migrate/migrate/v4/cmd/migrate@v4.20.1
13bin/govulncheck: bin
14	GOBIN=$(PWD)/bin go install golang.org/x/vuln/cmd/govulncheck@v1.9.0
15
16fmt:
17	go mod tidy
18	bin/golangci-lint fmt
19
20lint: bin/golangci-lint
21	go mod tidy -diff
22	go vet ./...
23	bin/golangci-lint run
24	bin/golangci-lint fmt -d
25	$(MAKE) govulncheck
26
27govulncheck:  bin/govulncheck
28	bin/govulncheck ./...
29
30test:
31	go test -timeout=30s -race ./...
32
33templ:
34	go tool templ generate
35
36build: templ
37	go build -o dist/ytrssil ./cmd/main.go
38
39gen-mocks: bin/moq
40	./bin/moq -pkg db_mock -out ./mocks/db/db.go ./db DB
41	./bin/moq -pkg parser_mock -out ./mocks/feedparser/feedparser.go ./feedparser Parser
42	./bin/moq -pkg youtube_mock -out ./mocks/youtube/youtube.go ./lib/clients/youtube Client
43	go fmt ./...
44
45migrate: bin/migrate
46	bin/migrate -database "$(DB_URI)" -path migrations up
47
48image-build:
49	docker buildx build --push -t theedgeofrage/ytrssil:api --target api .