Files
sonr/cmd/hway/Makefile
T
Prad NukalaandGitHub 13e6c3e84d Master (#1262)
* clear

* feat: Add everything

* fix: Commenht
2025-10-03 14:45:52 -04:00

111 lines
3.2 KiB
Makefile

#!/usr/bin/make -f
# Version and build information
GIT_ROOT := $(shell git rev-parse --show-toplevel)
VERSION := $(shell echo $(shell git describe --tags 2>/dev/null || echo "dev") | sed 's/^v//')
COMMIT := $(shell git log -1 --format='%H')
BUMP_LEVEL := PATCH
# Build configuration
BUILD_FLAGS := -trimpath
# Linker flags for version info
ldflags = -X main.Version=$(VERSION) \
-X main.Commit=$(COMMIT) \
-s -w
BUILD_FLAGS += -ldflags '$(ldflags)'
HWAY_OUT := $(GIT_ROOT)/build/hway
.PHONY: all build install clean test version help docker
all: build
build:
ifeq ($(OS),Windows_NT)
$(error hway server not supported on Windows)
else
@echo "Building Highway service..."
@go build -mod=readonly $(BUILD_FLAGS) -o $(HWAY_OUT) .
@echo "Binary built: ../../build/hway"
endif
install:
ifeq ($(OS),Windows_NT)
$(error hway server not supported on Windows)
else
@echo "Installing Highway service..."
@go install -mod=readonly $(BUILD_FLAGS) .
@echo "Binary installed to $(GOPATH)/bin/hway"
endif
tidy:
@echo "Tidying Go module..."
@go mod tidy
clean:
@echo "Cleaning build artifacts..."
@rm -f $(HWAY_OUT)
@echo "Clean complete"
test:
@echo "Running Highway service tests..."
@go test -v -race ./...
release:
@echo "Creating hway release..."
@cd $(GIT_ROOT) && cz --config cmd/hway/.cz.toml --no-raise 6,21 bump --yes --increment PATCH
snapshot:
@echo "Dry-Run Bumping Highway version..."
@cd $(GIT_ROOT) && cz --config cmd/hway/.cz.toml bump --yes --no-verify --dry-run --increment PATCH
@echo "Creating hway snapshots for all platforms..."
@cd $(GIT_ROOT) && goreleaser release --snapshot --clean -f cmd/hway/.goreleaser.yml
# Docker build targets
docker:
@echo "Building Highway Docker image..."
@docker build -f Dockerfile -t onsonr/hway:latest -t ghcr.io/sonr-io/hway:latest ../..
@echo "Docker image built and tagged:"
@echo " - onsonr/hway:latest"
@echo " - ghcr.io/sonr-io/hway:latest"
docker-local:
@echo "Building Highway Docker image with local context..."
@docker build -f Dockerfile -t onsonr/hway:local -t ghcr.io/sonr-io/hway:local ../..
@echo "Docker image built and tagged:"
@echo " - onsonr/hway:local"
@echo " - ghcr.io/sonr-io/hway:local"
version:
@echo "Highway Service"
@echo "==============="
@echo "Version: $(VERSION)"
@echo "Commit: $(COMMIT)"
help:
@echo "Highway Service Makefile"
@echo "========================"
@echo ""
@echo "Highway is an Asynq-based task processing service for vault operations,"
@echo "using Redis-backed job queues and Proto.Actor framework for concurrency."
@echo ""
@echo "Available targets:"
@echo " build - Build Highway binary (default)"
@echo " install - Install Highway to GOPATH/bin"
@echo " docker - Build Docker image (onsonr/hway:latest)"
@echo " clean - Remove build artifacts"
@echo " test - Run Highway tests"
@echo " version - Display version information"
@echo " help - Show this help message"
@echo ""
@echo "Requirements:"
@echo " - Redis server running on 127.0.0.1:6379"
@echo " - IPFS nodes for vault operations"
@echo ""
@echo "Examples:"
@echo " make build # Build the Highway service"
@echo " make test # Run tests"
@echo " make install # Install to GOPATH/bin"