From 04602accc42dc4efb16b2171f134993e2864a3fc Mon Sep 17 00:00:00 2001 From: Jamis Buck Date: Tue, 13 Feb 2024 10:03:49 -0700 Subject: [PATCH] final tweaks for BSON 5 release (#324) --- release.sh | 27 +++++++++++++++++++++++---- release/jruby/Dockerfile | 4 ++-- release/jruby/install.sh | 6 +++++- release/mri/Dockerfile | 2 +- 4 files changed, 31 insertions(+), 8 deletions(-) diff --git a/release.sh b/release.sh index b48e116a4..735653c9d 100755 --- a/release.sh +++ b/release.sh @@ -6,12 +6,26 @@ NAME=bson RELEASE_NAME=bson-ruby-release VERSION_REQUIRE=bson/version VERSION_CONSTANT_NAME=BSON::VERSION +CMD=echo if ! test -f gem-private_key.pem; then echo "gem-private_key.pem missing - cannot release" 1>&2 exit 1 fi +if test -z "$PRODUCTION_RELEASE"; then + echo "PRODUCTION_RELEASE is not set. The script will run in 'dry run'" + echo "mode. The gems will be built, but not actually published. To" + echo "publish the gems, set the PRODUCTION_RELEASE env variable to 1 and" + echo "re-run this script." +else + echo "PRODUCTION_RELEASE is set. Gems will be built and published." + CMD='' +fi + +echo +read -p "-- Press RETURN to continue, or CTRL-C to abort --" + VERSION=`ruby -Ilib -r$VERSION_REQUIRE -e "puts $VERSION_CONSTANT_NAME"` echo "Releasing $NAME $VERSION" @@ -41,8 +55,13 @@ echo Built: $NAME-$VERSION.gem echo Built: $NAME-$VERSION-java.gem echo -git tag -a v$VERSION -m "Tagging release: $VERSION" -git push origin v$VERSION +if test -z "$PRODUCTION_RELEASE"; then + echo "*** SHOWING COMMANDS IN 'DRY RUN' MODE ***" + echo +fi + +$CMD git tag -a v$VERSION -m "Tagging release: $VERSION" +$CMD git push origin v$VERSION -gem push $NAME-$VERSION.gem -gem push $NAME-$VERSION-java.gem +$CMD gem push $NAME-$VERSION.gem +$CMD gem push $NAME-$VERSION-java.gem diff --git a/release/jruby/Dockerfile b/release/jruby/Dockerfile index 137a8a710..51c9ccd7b 100644 --- a/release/jruby/Dockerfile +++ b/release/jruby/Dockerfile @@ -1,4 +1,4 @@ -FROM debian:9 +FROM debian:latest ENV DEBIAN_FRONTEND=noninteractive @@ -7,7 +7,7 @@ ENV DEBIAN_FRONTEND=noninteractive # https://github.com/hazelcast/hazelcast/issues/14214 RUN apt-get update && \ - apt-get -y install openjdk-8-jdk ruby git curl make g++ + apt-get -y install openjdk-17-jdk ruby git curl make g++ WORKDIR /rubies COPY release/jruby/install.sh /rubies/ diff --git a/release/jruby/install.sh b/release/jruby/install.sh index a7ffca329..d8cd2950f 100755 --- a/release/jruby/install.sh +++ b/release/jruby/install.sh @@ -8,4 +8,8 @@ cd /rubies git clone https://github.com/rbenv/ruby-build.git PREFIX=/usr ./ruby-build/install.sh -ruby-build -v jruby-9.3.13.0 /rubies/jruby +# JRuby 9.3.9.0 is the most recent version that uses +# JOpenSSL 0.12.2. More recent versions use JOpenSSL 0.14.2, +# which appears to be unable to build signed gems. +# See: https://github.com/jruby/jruby-openssl/issues/292 +ruby-build -v jruby-9.3.9.0 /rubies/jruby diff --git a/release/mri/Dockerfile b/release/mri/Dockerfile index b6da2a23c..6cfee88eb 100644 --- a/release/mri/Dockerfile +++ b/release/mri/Dockerfile @@ -1,4 +1,4 @@ -FROM debian:10 +FROM debian:latest ENV DEBIAN_FRONTEND=noninteractive