Files

70 lines
1.6 KiB
Makefile

PKG_NAME := github.com/ArtalkJS/Artalk
BIN_NAME := ./bin/artalk
VERSION ?= $(shell git describe --tags --abbrev=0)
COMMIT_HASH := $(shell git rev-parse --short HEAD)
DEV_VERSION := dev-$(COMMIT_HASH)
HAS_RICHGO := $(shell which richgo)
GOTEST ?= $(if $(HAS_RICHGO), richgo test, go test)
ARGS ?= server
all: install build
install:
go mod tidy
build: build-frontend
go build \
-ldflags "-s -w -X $(PKG_NAME)/internal/config.Version=$(VERSION) \
-X $(PKG_NAME)/internal/config.CommitHash=$(COMMIT_HASH)" \
-o $(BIN_NAME) \
$(PKG_NAME)
build-frontend:
./scripts/build-frontend.sh
run: all
$(BIN_NAME) $(ARGS)
build-debug:
@echo "Building Artalk $(VERSION) for debugging..."
@go build \
-ldflags "-X $(PKG_NAME)/internal/config.Version=$(VERSION) \
-X $(PKG_NAME)/internal/config.CommitHash=$(COMMIT_HASH)" \
-gcflags "all=-N -l" \
-o $(BIN_NAME) \
$(PKG_NAME)
dev: build-debug
$(BIN_NAME) $(ARGS)
test:
$(GOTEST) -timeout 20m ./internal/...
test-coverage:
$(GOTEST) -cover ./...
test-coverage-html:
$(GOTEST) -v -coverprofile=coverage.out ./...
go tool cover -html=coverage.out
update-i18n:
go generate ./internal/i18n
update-swagger:
go install github.com/swaggo/swag/cmd/swag@latest
swag init -g server/server.go --output ./docs/swagger
docker-build:
./scripts/docker-build.sh
docker-push:
./scripts/docker-build.sh --push
test-frontend-e2e:
./scripts/frontend-e2e-test.sh $(if $(REPORT), --show-report)
.PHONY: all install build build-frontend build-debug \
dev test test-coverage test-coverage-html update-i18n \
docker-build docker-push test-frontend-e2e;