aboutsummaryrefslogtreecommitdiff
path: root/Makefile.release
diff options
context:
space:
mode:
authorGravatar Miek Gieben <miek@miek.nl> 2016-09-18 14:14:01 +0100
committerGravatar GitHub <noreply@github.com> 2016-09-18 14:14:01 +0100
commit338b77667b9c70c443eccc74af6b9d960b78950a (patch)
treea9f6f3e9ea51c4036f1ef3d9d200bf5f89a9efd8 /Makefile.release
parentb440b1c8f63952a0a4457468e60276995d8b676c (diff)
downloadcoredns-338b77667b9c70c443eccc74af6b9d960b78950a.tar.gz
coredns-338b77667b9c70c443eccc74af6b9d960b78950a.tar.zst
coredns-338b77667b9c70c443eccc74af6b9d960b78950a.zip
Add Makefile.release (#267)
Document the release process and encode it in Makefile.release. We use gh-release to minimize the amount of effort required.
Diffstat (limited to 'Makefile.release')
-rw-r--r--Makefile.release45
1 files changed, 45 insertions, 0 deletions
diff --git a/Makefile.release b/Makefile.release
new file mode 100644
index 000000000..bca224bcb
--- /dev/null
+++ b/Makefile.release
@@ -0,0 +1,45 @@
+# Makefile for releasing CoreDNS
+#
+# The release is controlled from coremain/version.go. The version found
+# there is used to tag the git repo and to build the assets that are
+# uploaded to github (after some sanity checks).
+#
+# The release should be accompanied by release notes published on
+# blog.coredns.io. For example:
+# https://blog.coredns.io/2016/09/18/coredns-001-release/
+#
+# We use https://github.com/progrium/gh-release to automate github stuff
+# be sure to have that binary in your path.
+#
+# Steps:
+# * Get an access token: https://help.github.com/articles/creating-an-access-token-for-command-line-use/
+# * export GITHUB_ACCESS_TOKEN=<token>
+# * Up the version in coremain/version.go
+# * Commit
+# * Run: make -f Makefile.release
+
+NAME=coredns
+VERSION:=$(shell grep 'coreVersion' coremain/version.go | awk '{ print $$3 }' | tr -d '"')
+ARCH=$(shell uname -m)
+GITHUB=miekg
+
+all: build release
+
+.PHONY: build
+build:
+ @echo Releasing: $(VERSION)
+ mkdir -p build/Linux && CGO_ENABLED=0 GOOS=linux go build -o build/Linux/$(NAME)
+ mkdir -p build/Darwin && CGO_ENABLED=0 GOOS=darwin go build -o build/Darwin/$(NAME)
+
+
+.PHONY: release
+release:
+ rm -rf release && mkdir release
+ tar -zcf release/$(NAME)_$(VERSION)_linux_$(ARCH).tgz -C build/Linux $(NAME)
+ tar -zcf release/$(NAME)_$(VERSION)_darwin_$(ARCH).tgz -C build/Darwin $(NAME)
+ build/$(shell uname)/gh-release create $(GITHUB)/$(NAME) $(VERSION)
+
+.PHONY: clean
+clean:
+ rm -rf release
+ rm -rf build