diff --git a/build_release_binaries.sh b/build_release_binaries.sh new file mode 100755 index 000000000..dced59690 --- /dev/null +++ b/build_release_binaries.sh @@ -0,0 +1,64 @@ +#!/bin/bash + +set -e + +if [[ -z "$VERSION" ]]; then + echo '$VERSION unset' + exit 1 +fi + +dir=$(mktemp -d --tmpdir restic-release-XXXXXX) +echo "path is ${dir}" + +for R in \ + darwin/386 \ + darwin/amd64 \ + freebsd/386 \ + freebsd/amd64 \ + freebsd/arm \ + linux/386 \ + linux/amd64 \ + linux/arm \ + linux/arm64 \ + openbsd/386 \ + openbsd/amd64 \ + windows/386 \ + windows/amd64 \ + ; do \ + + OS=$(dirname $R) + ARCH=$(basename $R) + filename=restic_${VERSION}_${OS}_${ARCH} + + if [[ "$OS" == "windows" ]]; then + filename="${filename}.exe" + fi + + echo $filename + + go run ../build.go --goos $OS --goarch $ARCH --output ${filename} + if [[ "$OS" == "windows" ]]; then + zip ${filename%.exe}.zip ${filename} + rm ${filename} + mv ${filename%.exe}.zip ${dir} + else + bzip2 ${filename} + mv ${filename}.bz2 ${dir} + fi +done + +echo "packing sources" +git archive --format=tar --prefix=restic-$VERSION/ v$VERSION | gzip -n > restic-$VERSION.tar.gz +mv restic-$VERSION.tar.gz ${dir} + +echo "creating checksums" +pushd ${dir} +sha256sum restic_*.{zip,bz2} > SHA256SUMS +gpg --armor --detach-sign SHA256SUMS +popd + +echo "creating source signature file" +gpg --armor --detach-sign ${dir}/restic-$VERSION.tar.gz + +echo +echo "done, path is ${dir}"