BINARY = beerpong-elo BUILD_DIR = build BUILD_ARCH = $(shell go env GOARCH) BUILD_OS = $(shell go env GOOS) DOCKER_BUILD_FLAGS = DOCKER_BUILD_PLATFORM = linux/amd64,linux/arm64,linux/arm32v6,linux/arm32v7 DOCKER_BUILD_TAG = djeeberjr/beerpong-elo DIST_DIR = static EMBED_DIR = internal/web/static .PHONY: all all: clean build .PHONY:build build: $(BUILD_DIR)/$(BINARY) $(BUILD_DIR)/$(BINARY): $(EMBED_DIR) $(shell find . -name '*.go') GOARCH=$(BUILD_ARCH) GOOS=$(BUILD_OS) go build -o $(BUILD_DIR)/$(BINARY) cmd/beerpong-elo.go $(EMBED_DIR): $(BUILD_DIR)/$(DIST_DIR) cp -r $(BUILD_DIR)/$(DIST_DIR) $(EMBED_DIR) $(BUILD_DIR)/$(DIST_DIR): cd web/ && npm run build && mkdir ../$(BUILD_DIR) && cp -r dist/ ../$(BUILD_DIR)/$(DIST_DIR) .PHONY: deps deps: cd web/ && npm ci .PHONY:clean clean: rm -rf $(BUILD_DIR) $(EMBED_DIR) .PHONY: test test: go test ./... .PHONY: docker-push docker-push: docker buildx build $(DOCKER_BUILD_FLAGS) --platform $(DOCKER_BUILD_PLATFORM) -t $(DOCKER_BUILD_TAG) . --push .PHONY: docker-local docker-local: docker buildx build $(DOCKER_BUILD_FLAGS) -t $(DOCKER_BUILD_TAG) . --load