woj-server/Makefile

47 lines
1.2 KiB
Makefile

GO := go
PKG_BASE := $(shell head -n 1 go.mod | awk '{print $$2}')
BUILD_TIME := $(shell date -u '+%Y%m%d-%I%M%S')
VERSION := $(shell cat VERSION)
GIT_COMMIT := $(shell git rev-parse --short HEAD)
LDFLAGS += -X $(PKG_BASE)/cmd.BuildTime=$(BUILD_TIME)
LDFLAGS += -X $(PKG_BASE)/cmd.Version=$(VERSION)
LDFLAGS += -X $(PKG_BASE)/cmd.GitCommit=$(GIT_COMMIT)
LDFLAGS += -X $(PKG_BASE)/cmd.SentryDSN=$(shell cat dsn.txt)
LDFLAGS += -X $(PKG_BASE)/internal/service/runner.ContainerImageFull=$(CONTAINER_IMAGE_FULL)
LDFLAGS += -X $(PKG_BASE)/internal/service/runner.ContainerImageRun=$(CONTAINER_IMAGE_RUN)
LDFLAGS += -s -w
GOBUILD := $(GO) build -ldflags '$(LDFLAGS)'
GOBIN := $(shell go env GOPATH)/bin
.PHONY: all build clean dep swagger fmt coverage test
default: all
all: clean build
build: swagger dep
$(GOBUILD) -o woj ./cmd/woj
clean:
rm -f woj coverage.out coverage.html
dep:
go mod download
swagger:
go install github.com/swaggo/swag/cmd/swag@latest
$(GOBIN)/swag init -g internal/web/router/api.go -d .,./internal/e,./internal/model --pdl 1 -o internal/web/router/docs
fmt:
go fmt ./...
coverage:
go test ./... -coverprofile=coverage.out
go tool cover -html=coverage.out -o coverage.html
test:
go test -race ./...