From fc3a5cd038ea99c8fc4133e6b638e426b74fe957 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=B6ran=20Karl?= <3951388+JoeKar@users.noreply.github.com> Date: Wed, 12 Jun 2024 19:06:57 +0200 Subject: [PATCH] tools: Improve `cross-compile.sh` 1. doesn't need a given parameter to set the VERSION, since it is determined itself 2. moves the *.deb only in case package-deb.sh succeeded 3. rename *.tar.gz to *.tgz shorten the extension to... 4. add SHA256 sums per artifact --- tools/cross-compile.sh | 111 +++++++++++++++++++---------------------- 1 file changed, 50 insertions(+), 61 deletions(-) diff --git a/tools/cross-compile.sh b/tools/cross-compile.sh index dcd6ca97..a79acf25 100755 --- a/tools/cross-compile.sh +++ b/tools/cross-compile.sh @@ -1,120 +1,109 @@ -cd .. +#!/bin/sh -mkdir -p binaries -mkdir -p micro-$1 - -cp LICENSE micro-$1 -cp README.md micro-$1 -cp LICENSE-THIRD-PARTY micro-$1 -cp assets/packaging/micro.1 micro-$1 -cp assets/packaging/micro.desktop micro-$1 -cp assets/micro-logo-mark.svg micro-$1/micro.svg +set -e HASH="$(git rev-parse --short HEAD)" VERSION="$(go run tools/build-version.go)" DATE="$(go run tools/build-date.go)" ADDITIONAL_GO_LINKER_FLAGS="$(go run tools/info-plist.go $VERSION)" +mkdir -p binaries +mkdir -p micro-$VERSION + +cp LICENSE micro-$VERSION +cp README.md micro-$VERSION +cp LICENSE-THIRD-PARTY micro-$VERSION +cp assets/packaging/micro.1 micro-$VERSION +cp assets/packaging/micro.desktop micro-$VERSION +cp assets/micro-logo-mark.svg micro-$VERSION/micro.svg + +create_artefact_generic() +{ + mv micro micro-$VERSION/ + tar -czf micro-$VERSION-$1.tgz micro-$VERSION + sha256sum micro-$VERSION-$1.tgz > micro-$VERSION-$1.tgz.sha + mv micro-$VERSION-$1.* binaries + rm micro-$VERSION/micro +} + +create_artefact_windows() +{ + mv micro.exe micro-$VERSION/ + zip -r -q -T micro-$VERSION-$1.zip micro-$VERSION + sha256sum micro-$VERSION-$1.zip > micro-$VERSION-$1.zip.sha + mv micro-$VERSION-$1.* binaries + rm micro-$VERSION/micro.exe +} + # Mac echo "OSX 64" GOOS=darwin GOARCH=amd64 make build -mv micro micro-$1 -tar -czf micro-$1-osx.tar.gz micro-$1 -mv micro-$1-osx.tar.gz binaries +create_artefact_generic "osx" # Mac ARM64 echo "MacOS ARM64" GOOS=darwin GOARCH=arm64 make build -mv micro micro-$1 -tar -czf micro-$1-macos-arm64.tar.gz micro-$1 -mv micro-$1-macos-arm64.tar.gz binaries +create_artefact_generic "macos-arm64" # Linux echo "Linux 64" GOOS=linux GOARCH=amd64 make build -./tools/package-deb.sh $1 -mv micro-$1-amd64.deb binaries - -mv micro micro-$1 -tar -czf micro-$1-linux64.tar.gz micro-$1 -mv micro-$1-linux64.tar.gz binaries +if ./tools/package-deb.sh $VERSION; then + sha256sum micro-$VERSION-amd64.deb > micro-$VERSION-amd64.deb.sha + mv micro-$VERSION-amd64.* binaries +fi +create_artefact_generic "linux64" echo "Linux 64 fully static" CGO_ENABLED=0 GOOS=linux GOARCH=amd64 make build -mv micro micro-$1 -tar -czf micro-$1-linux64-static.tar.gz micro-$1 -mv micro-$1-linux64-static.tar.gz binaries +create_artefact_generic "linux64-static" echo "Linux 32" GOOS=linux GOARCH=386 make build -mv micro micro-$1 -tar -czf micro-$1-linux32.tar.gz micro-$1 -mv micro-$1-linux32.tar.gz binaries +create_artefact_generic "linux32" echo "Linux ARM 32" GOOS=linux GOARM=6 GOARCH=arm make build -mv micro micro-$1 -tar -czf micro-$1-linux-arm.tar.gz micro-$1 -mv micro-$1-linux-arm.tar.gz binaries +create_artefact_generic "linux-arm" echo "Linux ARM 64" GOOS=linux GOARCH=arm64 make build -mv micro micro-$1 -tar -czf micro-$1-linux-arm64.tar.gz micro-$1 -mv micro-$1-linux-arm64.tar.gz binaries +create_artefact_generic "linux-arm64" # NetBSD echo "NetBSD 64" GOOS=netbsd GOARCH=amd64 make build -mv micro micro-$1 -tar -czf micro-$1-netbsd64.tar.gz micro-$1 -mv micro-$1-netbsd64.tar.gz binaries +create_artefact_generic "netbsd64" echo "NetBSD 32" GOOS=netbsd GOARCH=386 make build -mv micro micro-$1 -tar -czf micro-$1-netbsd32.tar.gz micro-$1 -mv micro-$1-netbsd32.tar.gz binaries +create_artefact_generic "netbsd32" # OpenBSD echo "OpenBSD 64" GOOS=openbsd GOARCH=amd64 make build -mv micro micro-$1 -tar -czf micro-$1-openbsd64.tar.gz micro-$1 -mv micro-$1-openbsd64.tar.gz binaries +create_artefact_generic "openbsd64" echo "OpenBSD 32" GOOS=openbsd GOARCH=386 make build -mv micro micro-$1 -tar -czf micro-$1-openbsd32.tar.gz micro-$1 -mv micro-$1-openbsd32.tar.gz binaries +create_artefact_generic "openbsd32" # FreeBSD echo "FreeBSD 64" GOOS=freebsd GOARCH=amd64 make build -mv micro micro-$1 -tar -czf micro-$1-freebsd64.tar.gz micro-$1 -mv micro-$1-freebsd64.tar.gz binaries +create_artefact_generic "freebsd64" echo "FreeBSD 32" GOOS=freebsd GOARCH=386 make build -mv micro micro-$1 -tar -czf micro-$1-freebsd32.tar.gz micro-$1 -mv micro-$1-freebsd32.tar.gz binaries - -rm micro-$1/micro +create_artefact_generic "freebsd32" # Windows echo "Windows 64" GOOS=windows GOARCH=amd64 make build -mv micro.exe micro-$1 -zip -r -q -T micro-$1-win64.zip micro-$1 -mv micro-$1-win64.zip binaries +create_artefact_windows "win64" echo "Windows 32" GOOS=windows GOARCH=386 make build -mv micro.exe micro-$1 -zip -r -q -T micro-$1-win32.zip micro-$1 -mv micro-$1-win32.zip binaries +create_artefact_windows "win32" -rm -rf micro-$1 +rm -rf micro-$VERSION