aboutsummaryrefslogtreecommitdiff
path: root/Makefile.release
diff options
context:
space:
mode:
authorGravatar Miek Gieben <miek@miek.nl> 2017-11-02 21:21:57 +0000
committerGravatar GitHub <noreply@github.com> 2017-11-02 21:21:57 +0000
commitaf6086d6535e3309e3bd1e521cb4d51ef113f850 (patch)
tree2023df7c970562496ef1b1f2614bb6c9fcf30f9a /Makefile.release
parent7d545aeff7403ea41cd859513f02643f0938290d (diff)
downloadcoredns-af6086d6535e3309e3bd1e521cb4d51ef113f850.tar.gz
coredns-af6086d6535e3309e3bd1e521cb4d51ef113f850.tar.zst
coredns-af6086d6535e3309e3bd1e521cb4d51ef113f850.zip
release: use for-loop to minimize duplication (#1196)
* release: use for-loop to minize duplication Use LINUX_ARCH as the basis for all release. Fix a few typos along the way. * remove echo
Diffstat (limited to 'Makefile.release')
-rw-r--r--Makefile.release61
1 files changed, 18 insertions, 43 deletions
diff --git a/Makefile.release b/Makefile.release
index 3a3d7bf0b..952b00038 100644
--- a/Makefile.release
+++ b/Makefile.release
@@ -42,7 +42,7 @@ ifeq (, $(shell which gh-release))
endif
ifeq (, $(shell which manifest-tool))
- $(error "No manifest-tool in $PATH, install with `go get github.com/estesp/manifest-tool")
+ $(error "No manifest-tool in $$PATH, install with `go get github.com/estesp/manifest-tool")
endif
NAME:=coredns
@@ -51,6 +51,7 @@ GITHUB:=coredns
DOCKER:=coredns
DOCKER_IMAGE_NAME:=$(DOCKER)/$(NAME)
GITCOMMIT:=$(shell git describe --dirty --always)
+LINUX_ARCH=amd64 arm arm64 ppc64le s390x
all:
@echo Use the 'release' target to start a release
@@ -73,29 +74,21 @@ commit:
build:
@echo Cleaning old builds
rm -rf build && mkdir build
- @echo Building: linux $(VERSION)
- mkdir -p build/linux/amd64 && $(MAKE) coredns BINARY=build/linux/amd64/$(NAME) SYSTEM="GOOS=linux GOARCH=amd64" CHECKS=""
@echo Building: darwin $(VERSION)
mkdir -p build/darwin/amd64 && $(MAKE) coredns BINARY=build/darwin/amd64/$(NAME) SYSTEM="GOOS=darwin GOARCH=amd64" CHECKS=""
- @echo Building: arm $(VERSION)
- mkdir -p build/linux/arm && $(MAKE) coredns BINARY=build/linux/arm/$(NAME) SYSTEM="GOOS=linux GOARCH=arm" CHECKS=""
- @echo Building: arm64 $(VERSION)
- mkdir -p build/linux/arm64 && $(MAKE) coredns BINARY=build/linux/arm64/$(NAME) SYSTEM="GOOS=linux GOARCH=arm64" CHECKS=""
- @echo Building: ppc64 $(VERSION)
- mkdir -p build/linux/ppc64 && $(MAKE) coredns BINARY=build/linux/ppc64/$(NAME) SYSTEM="GOOS=linux GOARCH=ppc64le" CHECKS=""
- @echo Building: s390x $(VERSION)
- mkdir -p build/linux/s390 && $(MAKE) coredns BINARY=build/linux/s390/$(NAME) SYSTEM="GOOS=linux GOARCH=s390x" CHECKS=""
+ for arch in $(LINUX_ARCH); do \
+ @echo Building: linux/$$arch $(VERSION) ;\
+ mkdir -p build/linux/amd64 && $(MAKE) coredns BINARY=build/linux/$$arch/$(NAME) SYSTEM="GOOS=linux GOARCH=$$arch" CHECKS="" ;\
+ done
.PHONY: tar
tar:
@echo Cleaning old releases
rm -rf release && mkdir release
- tar -zcf release/$(NAME)_$(VERSION)_linux_amd64.tgz -C build/linux/amd64 $(NAME)
tar -zcf release/$(NAME)_$(VERSION)_darwin_amd64.tgz -C build/darwin/amd64 $(NAME)
- tar -zcf release/$(NAME)_$(VERSION)_linux_arm.tgz -C build/linux/arm $(NAME)
- tar -zcf release/$(NAME)_$(VERSION)_linux_arm64.tgz -C build/linux/arm64 $(NAME)
- tar -zcf release/$(NAME)_$(VERSION)_linux_ppc64le.tgz -C build/linux/ppc64 $(NAME)
- tar -zcf release/$(NAME)_$(VERSION)_linux_s390x.tgz -C build/linux/s390 $(NAME)
+ for arch in $(LINUX_ARCH); do \
+ tar -zcf release/$(NAME)_$(VERSION)_linux_$$arch.tgz -C build/linux/$$arch $(NAME) ;\
+ done
.PHONY: upload
upload:
@@ -103,37 +96,19 @@ upload:
gh-release create $(GITHUB)/$(NAME) $(VERSION)
.PHONY: docker-build
-docker-build:
- tar -xzf release/$(NAME)_$(VERSION)_linux_amd64.tgz
- docker build -t coredns .
- docker tag coredns $(DOCKER_IMAGE_NAME):coredns-amd64
-
- tar -xzf release/$(NAME)_$(VERSION)_linux_arm.tgz
- docker build -t coredns .
- docker tag coredns $(DOCKER_IMAGE_NAME):coredns-arm
-
- tar -xzf release/$(NAME)_$(VERSION)_linux_arm64.tgz
- docker build -t coredns .
- docker tag coredns $(DOCKER_IMAGE_NAME):coredns-arm64
-
- tar -xzf release/$(NAME)_$(VERSION)_linux_ppc64le.tgz
- docker build -t coredns .
- docker tag coredns $(DOCKER_IMAGE_NAME):coredns-ppc64le
-
- tar -xzf release/$(NAME)_$(VERSION)_linux_s390x.tgz
- docker build -t coredns .
- docker tag coredns $(DOCKER_IMAGE_NAME):coredns-s390x
-
+docker-build: tar
+ for arch in $(LINUX_ARCH); do \
+ tar -xzf release/$(NAME)_$(VERSION)_linux_$$arch.tgz ;\
+ docker build -t coredns . ;\
+ docker tag coredns $(DOCKER_IMAGE_NAME):coredns-$$arch ;\
+ done
.PHONY: docker-upload
docker-upload:
@echo Pushing: $(VERSION)
- docker push $(DOCKER_IMAGE_NAME):coredns-amd64
- docker push $(DOCKER_IMAGE_NAME):coredns-arm
- docker push $(DOCKER_IMAGE_NAME):coredns-arm64
- docker push $(DOCKER_IMAGE_NAME):coredns-ppc64le
- docker push $(DOCKER_IMAGE_NAME):coredns-s390x
-
+ for arch in $(LINUX_ARCH); do \
+ docker push $(DOCKER_IMAGE_NAME):coredns-$$arch \;
+ done
manifest-tool push from-args --platforms linux/amd64,linux/arm,linux/arm64,linux/ppc64,linux/s390x --template $(DOCKER_IMAGE_NAME):coredns-ARCH --target $(DOCKER_IMAGE_NAME):$(VERSION)
manifest-tool push from-args --platforms linux/amd64,linux/arm,linux/arm64,linux/ppc64,linux/s390x --template $(DOCKER_IMAGE_NAME):coredns-ARCH --target $(DOCKER_IMAGE_NAME):latest