Makefile
raw ยท 1255 bytes
include build.env
-include build.env.work
export
OUT_DIR := out
BIN_DIR := bin
IMAGE_NAME ?= ghcr.io/tgckpg/homekey-go
IMAGE_TAG ?= dev
BUILDX_BUILDER ?= container-builder
GO ?= go
BUILDINFO_FILE := internal/buildinfo/buildinfo_gen.go
BUILDX_BUILDER ?= container-builder
all: test build
ensure-buildx:
@if ! docker buildx inspect $(BUILDX_BUILDER) >/dev/null 2>&1; then \
echo "Creating buildx builder $(BUILDX_BUILDER)..."; \
docker buildx create \
--name $(BUILDX_BUILDER) \
--driver docker-container \
--driver-opt network=host \
--bootstrap --use; \
else \
echo "Using existing buildx builder $(BUILDX_BUILDER)"; \
docker buildx use $(BUILDX_BUILDER); \
fi
all: build
build:
mkdir -p $(BIN_DIR)
$(GO) build -buildvcs=false -trimpath -o $(BIN_DIR)/homekey ./cmd/homekey
test:
$(GO) test ./...
race:
$(GO) test -race ./...
vet:
$(GO) vet ./...
run:
$(GO) run -buildvcs=false ./cmd/homekey
push:
docker buildx build \
--platform linux/amd64,linux/arm64 \
--build-arg APT_PROXY=$(APT_PROXY) \
-f Dockerfile \
-t $(IMAGE_NAME):$(IMAGE_TAG) \
--push .
image-info:
docker buildx imagetools inspect $(IMAGE_NAME):$(IMAGE_TAG)
clean:
rm -rf bin
.PHONY: all build test race vet run clean push ensure-buildx