.PHONY: all build push APP=addlicense GROUP=devops REVISION="" VERSION=1.1.2$(REVISION) DOCKER_REGISTRY=harbor.avroid.tech all: @echo 'DEFAULT: ' @echo ' make build_image - Build docker image' @echo ' make push_image - Push docker image to registry' @echo ' make build - Build application' @echo ' make archive - Add application to archive' @echo ' make clean - Remove all builds' build: mkdir -p dist/{linux,windows,darwin}/{amd64,arm64} CGO_ENABLED=0 GOOS=linux GOARCH=amd64 go build -o dist/linux/amd64/addlicense CGO_ENABLED=0 GOOS=darwin GOARCH=arm64 go build -o dist/darwin/arm64/addlicense CGO_ENABLED=0 GOOS=darwin GOARCH=amd64 go build -o dist/darwin/amd64/addlicense CGO_ENABLED=0 GOOS=windows GOARCH=amd64 go build -o dist/windows/amd64/addlicense.exe @echo "See 'addlicense' in dist directory" archive: zip dist/linux/amd64/addlicense_$(VERSION)_linux_amd64.zip -j dist/linux/amd64/addlicense zip dist/darwin/arm64/addlicense_$(VERSION)_darwin_arm64.zip -j dist/darwin/arm64/addlicense zip dist/darwin/amd64/addlicense_$(VERSION)_darwin_amd64.zip -j dist/darwin/amd64/addlicense zip dist/windows/amd64/addlicense_$(VERSION)_windows_amd64.zip -j dist/windows/amd64/addlicense.exe clean: rm -rf dist build_image: DOCKER_BUILDKIT=1 docker build --no-cache --platform linux/amd64 -t $(DOCKER_REGISTRY)/$(GROUP)/$(APP):$(VERSION) . docker tag $(DOCKER_REGISTRY)/$(GROUP)/$(APP):$(VERSION) $(DOCKER_REGISTRY)/$(GROUP)/$(APP):latest push_image: docker push $(DOCKER_REGISTRY)/$(GROUP)/$(APP):$(VERSION) docker push $(DOCKER_REGISTRY)/$(GROUP)/$(APP):latest