From f0eba7d51b87d50e04f69e886d79cb9aa2a3c184 Mon Sep 17 00:00:00 2001 From: Maxim Baz Date: Sat, 21 Dec 2019 00:32:39 +0100 Subject: [PATCH] Improvements for distribution (#417) * Don't pack sources (github does it better), sign sources * Make CircleCI generate the same git archive as Github, return make dist * Revert make clean too * Upload signature to Github release * Read Github token from an env variable --- .circleci/config.yml | 4 +--- Makefile | 14 ++++++++++++-- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/.circleci/config.yml b/.circleci/config.yml index 81c6c7b6..d50b1999 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -65,9 +65,7 @@ jobs: rm -rf ./.git rm -rf ./dist/* # Pack source - cd .. - tar -czf ${CIRCLE_PROJECT_REPONAME}-${CIRCLE_TAG}.tar.gz ${CIRCLE_PROJECT_REPONAME} - cd ${CIRCLE_PROJECT_REPONAME} + git archive -o ../${CIRCLE_PROJECT_REPONAME}-${CIRCLE_TAG}.tar.gz --format tar.gz --prefix=${CIRCLE_PROJECT_REPONAME}-${CIRCLE_TAG#v}/ ${CIRCLE_TAG} # Use latest installed python3 from pyenv export PYENV_VERSION="$(pyenv versions | grep -Po '\b3\.\d+\.\d+' | tail -1)" pip install packagecore diff --git a/Makefile b/Makefile index 43287f81..51dee976 100644 --- a/Makefile +++ b/Makefile @@ -92,9 +92,19 @@ dist: gzip nnn-$(VERSION).tar $(RM) -r nnn-$(VERSION) +sign: + git archive -o nnn-$(VERSION).tar.gz --format tar.gz --prefix=nnn-$(VERSION)/ v$(VERSION) + gpg --detach-sign --yes nnn-$(VERSION).tar.gz + rm -f nnn-$(VERSION).tar.gz + + $(eval ID=$(shell curl -s 'https://api.github.com/repos/jarun/nnn/releases/tags/v$(VERSION)' | jq .id)) + curl -XPOST 'https://uploads.github.com/repos/jarun/nnn/releases/$(ID)/assets?name=nnn-$(VERSION).tar.gz.sig' \ + -H 'Authorization: token $(NNN_SIG_UPLOAD_TOKEN)' -H 'Content-Type: application/pgp-signature' \ + --upload-file nnn-$(VERSION).tar.gz.sig + clean: - $(RM) -f $(BIN) nnn-$(VERSION).tar.gz + $(RM) -f $(BIN) nnn-$(VERSION).tar.gz *.sig skip: ; -.PHONY: all debug install uninstall strip dist clean +.PHONY: all debug install uninstall strip dist sign clean