diff --git a/scripts/docker-release.sh b/scripts/docker-release.sh index 55a9fde..2c383a8 100755 --- a/scripts/docker-release.sh +++ b/scripts/docker-release.sh @@ -3,47 +3,42 @@ set -xeo pipefail shopt -s expand_aliases docker_name=shesek/bwt - version=$(grep -E '^version =' Cargo.toml | cut -d'"' -f2) base_tag=$docker_name:$version -docker_name=shesek/bwt-test -base_tag=$docker_name:$version - build_variant() { local docker_tag=$1 local docker_alias=$2 + local features=$3 + local bin_variant=$4 - build $1-amd64 $2-amd64 $3 "$4" x86_64-linux Dockerfile - build $1-arm32v7 $2-arm32v7 $3 "$4" arm32v7-linux arm32v7.Dockerfile - build $1-arm64v8 $2-arm64v8 $3 "$4" arm64v8-linux arm64v8.Dockerfile + build $1-amd64 $features "$bin_variant" x86_64-linux Dockerfile + build $1-arm32v7 $features "$bin_variant" arm32v7-linux arm32v7.Dockerfile + build $1-arm64v8 $features "$bin_variant" arm64v8-linux arm64v8.Dockerfile # can't tag manifests to create an alias, need to create them separately instead for target in $docker_tag $docker_alias; do - docker manifest create --amend $target $docker_tag-amd64 $docker_tag-arm32v7 $docker_tag-arm64v8 - docker manifest annotate $target $docker_tag-amd64 --os linux --arch amd64 - docker manifest annotate $target $docker_tag-arm32v7 --os linux --arch arm --variant v7 - docker manifest annotate $target $docker_tag-arm64v8 --os linux --arch arm64 --variant v8 - docker manifest push $target -p + docker manifest create --amend $target $docker_tag-amd64 $docker_tag-arm32v7 $docker_tag-arm64v8 + docker manifest annotate $target $docker_tag-amd64 --os linux --arch amd64 + docker manifest annotate $target $docker_tag-arm32v7 --os linux --arch arm --variant v7 + docker manifest annotate $target $docker_tag-arm64v8 --os linux --arch arm64 --variant v8 + docker manifest push $target -p done } build() { local docker_tag=$1 - local docker_alias=$2 - local features=$3 - local bin_variant=$4 - local bin_platform=$5 - local dockerfile=$6 + local features=$2 + local bin_variant=$3 + local bin_platform=$4 + local dockerfile=$5 docker build -t $docker_tag --build-arg FEATURES=$features \ --build-arg PREBUILT_BIN=dist/bwt-$version$bin_variant-$bin_platform/bwt \ -f docker/$dockerfile . - docker tag $docker_tag $docker_alias docker push $docker_tag - docker push $docker_alias } -build_variant $base_tag $docker_name:latest http,electrum,webhooks,track-spends '' -build_variant $base_tag-electrum $docker_name:electrum electrum '-electrum_only' +build_variant $base_tag $docker_name:latest http,electrum,webhooks,track-spends '' +build_variant $base_tag-electrum $docker_name:electrum electrum '-electrum_only' diff --git a/scripts/release.sh b/scripts/release.sh index 64d809b..ced1ff3 100755 --- a/scripts/release.sh +++ b/scripts/release.sh @@ -10,6 +10,11 @@ if ! git diff-index --quiet HEAD; then exit 1 fi +if [ -z "$BWT_BASE" ]; then + echo >&2 BWT_BASE is required + exit 1 +fi + version=$(grep -E '^version =' Cargo.toml | cut -d'"' -f2) if [[ "$1" == "patch" ]]; then @@ -61,7 +66,6 @@ if [ -z "$SKIP_BUILD" ]; then (cd dist && sha256sum *.{tar.gz,zip}) | sort | gpg --clearsign --digest-algo sha256 > SHA256SUMS.asc fi - if [ -z "$SKIP_GIT" ]; then echo Tagging... git add Cargo.{toml,lock} CHANGELOG.md SHA256SUMS.asc README.md @@ -109,3 +113,20 @@ if [ -z "$SKIP_DOCKER" ]; then echo Releasing docker images... ./scripts/docker-release.sh fi + +if [ -z "$SKIP_SUBPROJECTS" ]; then + export BWT_COMMIT=$(git rev-parse HEAD) + + echo '## Releasing libbwt' + (cd $BWT_BASE/libbwt && ./scripts/release.sh) + + echo '## Releasing libbwt-jni' + (cd $BWT_BASE/libbwt-jni && ./scripts/release.sh) + + echo '## Releasing bwt-electrum-plugin' + (cd $BWT_BASE/bwt-electrum-plugin && ./scripts/release.sh) + + echo '## Releasing libbwt-nodejs' + export LIBBWT_COMMIT=$(cd $BWT_BASE/libbwt && git rev-parse HEAD) + (cd $BWT_BASE/libbwt-nodejs && ./scripts/release.sh) +fi