mirror of
https://github.com/lone-cloud/prism
synced 2026-06-03 19:54:44 -07:00
70 lines
1.7 KiB
Makefile
70 lines
1.7 KiB
Makefile
.PHONY: all build build-linux run dev fmt lint vet clean install-tools deps docker-build docker-run docker-down release
|
|
|
|
BINARY_NAME=prism
|
|
VERSION?=$(shell cat VERSION 2>/dev/null || echo "dev")
|
|
COMMIT?=$(shell git rev-parse --short HEAD 2>/dev/null || echo "unknown")
|
|
GOBIN?=$(shell go env GOPATH)/bin
|
|
export PATH := $(GOBIN):$(PATH)
|
|
|
|
all: fmt lint build
|
|
|
|
build:
|
|
go build -ldflags="-X main.version=$(VERSION) -X main.commit=$(COMMIT)" -o $(BINARY_NAME) .
|
|
|
|
run: build
|
|
./$(BINARY_NAME)
|
|
|
|
dev:
|
|
@which air > /dev/null || (echo "Installing air..." && go install github.com/air-verse/air@latest)
|
|
air
|
|
|
|
fmt:
|
|
gofmt -s -w .
|
|
goimports -w .
|
|
|
|
lint:
|
|
golangci-lint run
|
|
|
|
fix:
|
|
golangci-lint run --fix
|
|
|
|
vet:
|
|
go vet ./...
|
|
|
|
clean:
|
|
rm -f $(BINARY_NAME) $(BINARY_NAME)-*
|
|
rm -rf data/
|
|
|
|
install-tools:
|
|
@echo "Installing Go tools to $(GOBIN)..."
|
|
go install golang.org/x/tools/cmd/goimports@latest
|
|
curl -sSfL https://golangci-lint.run/install.sh | sh -s -- -b $(shell go env GOPATH)/bin v2.8.0
|
|
@echo "Installing signal-cli..."
|
|
@bash scripts/install-signal-cli.sh
|
|
|
|
deps:
|
|
go mod download
|
|
go mod tidy
|
|
|
|
check-updates:
|
|
@go list -u -m all | grep -v "indirect" | grep "=>" || echo "All dependencies are up to date"
|
|
|
|
docker-build:
|
|
docker build -t prism:$(VERSION) .
|
|
|
|
docker-run:
|
|
docker compose -f docker-compose.dev.yml up -d
|
|
|
|
docker-down:
|
|
docker compose -f docker-compose.dev.yml down
|
|
|
|
release:
|
|
@if [ ! -f VERSION ]; then \
|
|
echo "Error: VERSION file not found"; \
|
|
exit 1; \
|
|
fi
|
|
@VERSION=$$(cat VERSION); \
|
|
echo "Releasing v$$VERSION..."; \
|
|
git tag -a "v$$VERSION" -m "Release v$$VERSION"; \
|
|
git push origin "v$$VERSION"; \
|
|
echo "Tag pushed. GitHub Actions will build and push Docker image."
|