api/Makefile

48 lines
1.2 KiB
Makefile

.PHONY: all setup ytrssil-api build gen-mocks lint yamllint test migrate image-build image-push
DB_URI ?= postgres://ytrssil:ytrssil@localhost:5431/ytrssil?sslmode=disable
all: lint test build
setup: bin/golangci-lint
go mod download
ytrssil-api:
go build -o dist/ytrssil-api cmd/main.go
build: ytrssil-api
bin/moq:
GOBIN=$(PWD)/bin go install github.com/matryer/moq@v0.2.7
gen-mocks: bin/moq
./bin/moq -pkg db_mock -out ./mocks/db/db.go ./db DB
./bin/moq -pkg parser_mock -out ./mocks/feedparser/feedparser.go ./feedparser Parser
go fmt ./...
bin/golangci-lint:
curl -sSfL https://raw.githubusercontent.com/golangci/golangci-lint/master/install.sh | sh -s v1.48.0
lint: bin/golangci-lint
go fmt ./...
go vet ./...
bin/golangci-lint -c .golangci.yml run ./...
go mod tidy
test:
go mod tidy
go test -timeout=10s -race -benchmem ./...
migrate:
migrate -database "$(DB_URI)" -path migrations up
image-build:
@echo "# Building docker image..."
docker build -t theedgeofrage/ytrssil:api --target api .
docker build -t theedgeofrage/ytrssil:migrations --target migrations .
image-push: image-build
@echo "# Pushing docker image..."
docker push theedgeofrage/ytrssil:api
docker push theedgeofrage/ytrssil:migrations