manual-approval/Makefile
2025-12-24 16:04:46 -07:00

50 lines
1.3 KiB
Makefile

IMAGE_REPO=ghcr.io/radicldefense/rad-manual-approval
.PHONY: tidy
tidy:
go mod tidy
.PHONY: build
build:
@if [ -z "$(VERSION)" ]; then \
echo "VERSION is required"; \
exit 1; \
fi
@echo "Building AMD64 image..."
docker build --platform linux/amd64 -t $(IMAGE_REPO):$(VERSION)-amd64 .
@echo "Building ARM64 image..."
docker build --platform linux/arm64 -t $(IMAGE_REPO):$(VERSION)-arm64 .
@echo "Pushing AMD64 image..."
docker push $(IMAGE_REPO):$(VERSION)-amd64
@echo "Pushing ARM64 image..."
docker push $(IMAGE_REPO):$(VERSION)-arm64
@echo "Creating multi-arch manifest..."
docker manifest create $(IMAGE_REPO):$(VERSION) \
--amend $(IMAGE_REPO):$(VERSION)-amd64 \
--amend $(IMAGE_REPO):$(VERSION)-arm64
@echo "Pushing multi-arch manifest..."
docker manifest push $(IMAGE_REPO):$(VERSION)
.PHONY: build-local
build-local:
@if [ -z "$(VERSION)" ]; then \
echo "VERSION is required"; \
exit 1; \
fi
docker build --platform linux/amd64 -t $(IMAGE_REPO):$(VERSION) .
.PHONY: push
push:
@if [ -z "$(VERSION)" ]; then \
echo "VERSION is required"; \
exit 1; \
fi
@echo "Images are already pushed during build step"
.PHONY: test
test:
go test -v .
.PHONY: lint
lint:
docker run --rm -v $$(pwd):/app -w /app golangci/golangci-lint:v1.46.2 golangci-lint run -v