Replace gh-release with curl (#1896)

* Replace gh-release with curl

This fix tries to address the issue raised in 1895 where
gh-release is deprecated.

As GitHub provides API that could be accessed easily,
and gh-release itself is just a wrapper to the API,
this fix replaces gh-release with the direct interaction
with GitHub API, so that it could be maintained by coredns
team.

This fix fixes 1895.

Signed-off-by: Yong Tang <yong.tang.github@outlook.com>

* Added `-o /dev/null`

Signed-off-by: Yong Tang <yong.tang.github@outlook.com>
This commit is contained in:
Yong Tang
2018-06-24 11:21:58 -07:00
committed by Miek Gieben
parent 1ef9e31262
commit c25a2e0fac

View File

@@ -46,8 +46,8 @@ EMPTY:=
SPACE:=$(EMPTY) $(EMPTY)
COMMA:=$(EMPTY),$(EMPTY)
ifeq (, $(shell which gh-release))
$(error "No gh-release in $$PATH, install with: go get github.com/progrium/gh-release")
ifeq (, $(shell which curl))
$(error "No curl in $$PATH, please install")
endif
ifeq (, $(shell which manifest-tool))
@@ -115,7 +115,14 @@ tar:
.PHONY: upload
upload:
@echo Releasing: $(VERSION)
gh-release create $(GITHUB)/$(NAME) $(VERSION)
$(eval RELEASE:=$(shell curl -s -d '{"tag_name": "v$(VERSION)", "name": "v$(VERSION)"}' "https://api.github.com/repos/$(GITHUB)/$(NAME)/releases?access_token=${GITHUB_ACCESS_TOKEN}" | grep -m 1 '"id"' | tr -cd '[[:digit:]]'))
@echo ReleaseID: $(RELEASE)
@for asset in `ls -A release`; do \
curl -o /dev/null -X POST \
-H "Content-Type: application/gzip" \
--data-binary "@release/$$asset" \
"https://uploads.github.com/repos/$(GITHUB)/$(NAME)/releases/$(RELEASE)/assets?name=$${asset}&access_token=${GITHUB_ACCESS_TOKEN}" ; \
done
.PHONY: docker-build
docker-build: tar