Parent directory

Makefile

1512 bytes
 1.PHONY: all lint govulncheck test air 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.7.1
 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/air: bin
14	GOBIN=$(PWD)/bin go install github.com/air-verse/air@v1.67.4
15bin/govulncheck: bin
16	GOBIN=$(PWD)/bin go install golang.org/x/vuln/cmd/govulncheck@v1.8.0
17
18fmt:
19	go mod tidy
20	bin/golangci-lint fmt
21
22lint: bin/golangci-lint
23	go mod tidy -diff
24	go vet ./...
25	bin/golangci-lint run
26	bin/golangci-lint fmt -d
27	$(MAKE) govulncheck
28
29govulncheck:  bin/govulncheck
30	bin/govulncheck ./...
31
32test:
33	go test -timeout=30s -race ./...
34
35air: bin/air
36	@./bin/air -c .air.toml
37
38templ:
39	go tool templ generate
40
41build: templ
42	go build -o dist/ytrssil ./cmd/main.go
43
44gen-mocks: bin/moq
45	./bin/moq -pkg db_mock -out ./mocks/db/db.go ./db DB
46	./bin/moq -pkg parser_mock -out ./mocks/feedparser/feedparser.go ./feedparser Parser
47	./bin/moq -pkg youtube_mock -out ./mocks/youtube/youtube.go ./lib/clients/youtube Client
48	go fmt ./...
49
50migrate: bin/migrate
51	bin/migrate -database "$(DB_URI)" -path migrations up
52
53image-build:
54	docker buildx build --push -t theedgeofrage/ytrssil:api --target api .