From a564b48f6129971c0674481b177e1c01e9050f30 Mon Sep 17 00:00:00 2001 From: "Michael Bradley, Jr" Date: Fri, 4 Jun 2021 14:44:39 -0500 Subject: [PATCH] build: on Linux use tar+gzip to preserve +x attribute of .AppImage MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit We create a separate make target to avoid tarballing every time. This is really useful only for releases we upload for users. Signed-off-by: Jakub SokoĊ‚owski --- Makefile | 8 ++++++++ ci/Jenkinsfile.linux | 7 ++++--- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/Makefile b/Makefile index 911c8c3113..7e222d8960 100644 --- a/Makefile +++ b/Makefile @@ -245,6 +245,7 @@ $(APPIMAGE_TOOL): chmod +x $(APPIMAGE_TOOL) STATUS_CLIENT_APPIMAGE ?= pkg/Status.AppImage +STATUS_CLIENT_TARBALL ?= pkg/Status.tar.gz $(STATUS_CLIENT_APPIMAGE): override RESOURCES_LAYOUT := -d:production $(STATUS_CLIENT_APPIMAGE): nim_status_client $(APPIMAGE_TOOL) nim-status.desktop @@ -280,6 +281,11 @@ $(STATUS_CLIENT_APPIMAGE): nim_status_client $(APPIMAGE_TOOL) nim-status.desktop mkdir -p pkg $(APPIMAGE_TOOL) tmp/linux/dist $(STATUS_CLIENT_APPIMAGE) +$(STATUS_CLIENT_TARBALL): $(STATUS_CLIENT_APPIMAGE) + tar czvf $(STATUS_CLIENT_TARBALL) \ + -C $(shell dirname $(STATUS_CLIENT_APPIMAGE)) \ + $(shell basename $(STATUS_CLIENT_APPIMAGE)) + DMG_TOOL := node_modules/.bin/create-dmg $(DMG_TOOL): @@ -393,6 +399,8 @@ pkg: $(PKG_TARGET) pkg-linux: check-pkg-target-linux $(STATUS_CLIENT_APPIMAGE) +tgz-linux: $(STATUS_CLIENT_TARBALL) + pkg-macos: check-pkg-target-macos $(STATUS_CLIENT_DMG) pkg-windows: check-pkg-target-windows $(STATUS_CLIENT_ZIP) diff --git a/ci/Jenkinsfile.linux b/ci/Jenkinsfile.linux index cfe4b4fa8b..e30e2c8db5 100644 --- a/ci/Jenkinsfile.linux +++ b/ci/Jenkinsfile.linux @@ -40,6 +40,7 @@ pipeline { QTDIR = "/opt/qt/5.14.0/gcc_64" /* Control output the filename */ STATUS_CLIENT_APPIMAGE = "pkg/${utils.pkgFilename('AppImage')}" + STATUS_CLIENT_TARBALL = "pkg/${utils.pkgFilename('tar.gz')}" } stages { @@ -68,7 +69,7 @@ pipeline { credentialsId: utils.getInfuraTokenCred(), variable: 'INFURA_TOKEN' )]) { - sh 'make pkg-linux' + sh 'make tgz-linux' } } } @@ -77,13 +78,13 @@ pipeline { parallel { stage('Upload') { steps { script { - env.PKG_URL = s3.uploadArtifact(env.STATUS_CLIENT_APPIMAGE) + env.PKG_URL = s3.uploadArtifact(env.STATUS_CLIENT_TARBALL) jenkins.setBuildDesc(AppImage: env.PKG_URL) } } } stage('Archive') { steps { script { - archiveArtifacts(env.STATUS_CLIENT_APPIMAGE) + archiveArtifacts(env.STATUS_CLIENT_TARBALL) } } } }