penguin/AstroJS

Javascript framework for my blog

mk/resolver-go.mk

raw ยท 1108 bytes

RESOLVER_IMAGE_NAME ?= botanjs
RESOLVER_IMAGE_TAG  ?= dev

GO_SRC_DIR ?= ./resolver-go

BUILDINFO_FILE := $(GO_SRC_DIR)/internal/generated/buildinfo_gen.go

.buildinfo:
	@mkdir -p $(dir $(BUILDINFO_FILE))
	@printf '%s\n' \
		'package generated' \
		'' \
		'const (' \
		'	IMAGE_TAG   = "$(RESOLVER_IMAGE_TAG)"' \
		'	Timestamp   = "'$$(TZ=UTC date +%Y%m%d.%H%M%S)'"' \
		')' \
	> $(BUILDINFO_FILE)

resolver-gen:
	docker build \
		-f $(GO_SRC_DIR)/dockerfiles/gen.Dockerfile \
		--output type=local,dest=$(GO_SRC_DIR)/internal/generated .

build-resolver: .buildinfo ensure-buildx resolver-gen
	docker build \
		-f $(GO_SRC_DIR)/dockerfiles/api.Dockerfile \
		--load \
		-t $(RESOLVER_IMAGE_NAME):$(RESOLVER_IMAGE_TAG) .

push-resolver: .buildinfo ensure-buildx resolver-gen
	docker buildx build \
		--platform linux/amd64,linux/arm64 \
		-f $(GO_SRC_DIR)/dockerfiles/api.Dockerfile \
		-t $(RESOLVER_IMAGE_NAME):$(RESOLVER_IMAGE_TAG) \
		--push .

inspect-resolver:
	docker buildx imagetools inspect $(RESOLVER_IMAGE_NAME):$(RESOLVER_IMAGE_TAG)

.PHONY: push-resolver build-resolver .buildinfo resolver-gen