Files
software-station/Makefile
Sudo-Ivan aa55beab4a Add build arguments for Docker image and update Makefile
- Introduced VERSION, BUILD_DATE, and VCS_REF variables to the Makefile for enhanced Docker image metadata.
- Added a new docker-build target to facilitate building the Docker image with the specified metadata, improving version tracking and documentation.
2025-12-27 11:34:11 -06:00

58 lines
1.3 KiB
Makefile

.PHONY: all build-frontend build-go clean release run lint scan check format test dev docker-build
BINARY_NAME=software-station
FRONTEND_DIR=frontend
BUILD_DIR=build
VERSION=$(shell grep '"version":' $(FRONTEND_DIR)/package.json | cut -d'"' -f4)
BUILD_DATE=$(shell date -u +'%Y-%m-%dT%H:%M:%SZ')
VCS_REF=$(shell git rev-parse --short HEAD 2>/dev/null || echo "unknown")
all: build-frontend build-go
dev:
@echo "Starting development environment..."
@pnpm --prefix $(FRONTEND_DIR) dev & go run main.go
build-frontend:
cd $(FRONTEND_DIR) && pnpm install && pnpm build
build-go:
go build -o $(BINARY_NAME) main.go
release: build-frontend
CGO_ENABLED=0 go build -ldflags="-s -w" -o $(BINARY_NAME) main.go
@echo "Release build complete: $(BINARY_NAME)"
run: all
./$(BINARY_NAME)
format:
go fmt ./...
cd $(FRONTEND_DIR) && pnpm run format
lint:
go vet ./...
cd $(FRONTEND_DIR) && pnpm run lint
scan:
gosec ./...
check:
cd $(FRONTEND_DIR) && pnpm run check
test:
go test -v -coverpkg=./... ./...
clean:
rm -rf $(FRONTEND_DIR)/build
rm -f $(BINARY_NAME)
rm -f coverage.out
docker-build:
docker build \
--build-arg VERSION=$(VERSION) \
--build-arg BUILD_DATE=$(BUILD_DATE) \
--build-arg VCS_REF=$(VCS_REF) \
-t $(BINARY_NAME):latest \
-t $(BINARY_NAME):$(VERSION) .