1
0
Fork 0
mirror of https://github.com/Luzifer/wasm-openssl.git synced 2024-11-08 14:50:10 +00:00
wasm-openssl/golang.sh
Knut Ahlers 7049fc4299
Convert to be auto-build compliant
Signed-off-by: Knut Ahlers <knut@ahlers.me>
2018-09-18 18:40:13 +02:00

86 lines
2.1 KiB
Bash

#!/bin/bash
set -euo pipefail
(which zip 2>&1 1>/dev/null) || {
(which apk 2>&1 1>/dev/null) && apk add --update zip
(which apt-get 2>&1 1>/dev/null) && apt-get update && apt-get install -y zip
}
function step() {
echo "===> $@..."
}
VERSION=$(git describe --tags --exact-match || echo "ghpublish__notags")
PWD=$(pwd)
godir=${PWD/${GOPATH}\/src\//}
REPO=${REPO:-$(echo ${godir} | cut -d '/' -f 3)}
GHUSER=${GHUSER:-$(echo ${godir} | cut -d '/' -f 2)}
DEPLOYMENT_TAG=${DEPLOYMENT_TAG:-${VERSION}}
PACKAGES=${PACKAGES:-$(echo ${godir} | cut -d '/' -f 1-3)}
BUILD_DIR=${BUILD_DIR:-.build}
DRAFT=${DRAFT:-true}
go version
step "Retrieve dependencies"
go get github.com/aktau/github-release
step "Cleanup build directory if present"
rm -rf ${BUILD_DIR}
step "Compile program"
mkdir ${BUILD_DIR}
GOOS=js GOARCH=wasm go build -ldflags="-X main.version=${VERSION}" \
-o "${BUILD_DIR}/openssl.wasm" \
${PACKAGES}
step "Generate binary SHASUMs"
cd ${BUILD_DIR}
sha256sum * >SHA256SUMS
step "Packing archives"
for file in *; do
if [ "${file}" = "SHA256SUMS" ]; then
continue
fi
tar -czf "${file%%.*}.tar.gz" "${file}"
rm "${file}"
done
step "Generate archive SHASUMs"
sha256sum * >>SHA256SUMS
grep -v 'SHA256SUMS' SHA256SUMS >SHA256SUMS.tmp
mv SHA256SUMS.tmp SHA256SUMS
step "Publish builds to Github"
if (test "${VERSION}" == "ghpublish__notags"); then
echo "No tag present, stopping build now."
exit 0
fi
if [ -z "${GITHUB_TOKEN}" ]; then
echo "Please set \$GITHUB_TOKEN environment variable"
exit 1
fi
if [[ "${DRAFT}" == "true" ]]; then
step "Create a drafted release"
github-release release --user ${GHUSER} --repo ${REPO} --tag ${DEPLOYMENT_TAG} --name ${DEPLOYMENT_TAG} --draft || true
else
step "Create a published release"
github-release release --user ${GHUSER} --repo ${REPO} --tag ${DEPLOYMENT_TAG} --name ${DEPLOYMENT_TAG} || true
fi
step "Upload build assets"
for file in *; do
echo "- ${file}"
github-release upload --user ${GHUSER} --repo ${REPO} --tag ${DEPLOYMENT_TAG} --name ${file} --file ${file}
done
echo -e "\n\n=== Recorded checksums ==="
cat SHA256SUMS
cd -