Skip to content

Commit

Permalink
Fix errors while running publishSigned
Browse files Browse the repository at this point in the history
In 54266c1 I upgraded sbt-pgp from
1.1.0 to 2.0.0-M2, this changed the way signing was done: instead of
using the bouncycastle Java library, sbt-pgp now just calls gpg.
Unfortunately, it turns out that multiple parallel calls to gpg can lead
to the gpg-agent running out of memory, causing `publishSigned` to
fai, as happened in https://dotty-ci.epfl.ch/lampepfl/dotty/1487/1/8
while trying to publish Dotty 0.19.0-RC1:
gpg: signing failed: Cannot allocate memory

I've opened an issue at sbt/sbt-pgp#168, but
meanwhile this is fixed by reverting back to using bouncycastle by
setting -DSBT_PGP_USE_GPG=false.
  • Loading branch information
smarter authored and anatoliykmetyuk committed Sep 21, 2019
1 parent 69f79a3 commit 0652fb6
Showing 1 changed file with 9 additions and 4 deletions.
13 changes: 9 additions & 4 deletions project/scripts/sbtPublish
Original file line number Diff line number Diff line change
Expand Up @@ -18,10 +18,15 @@ if [ ! "$NIGHTLYBUILD" = "yes" ] && [ ! "$RELEASEBUILD" = "yes" ]; then
exit 1
fi

# Setup gpg
export GPG_TTY="$(tty)"
echo "$PGP_SECRET" | gpg --batch --import
# Setup gpg (disabled, we use bouncycastle instead)
# export GPG_TTY="$(tty)"
# echo "$PGP_SECRET" | gpg --batch --import

# Setup bouncycastle instead of gpg to do signing, because gpg explodes when
# doing too many signing requests in parallel (https://github.com/sbt/sbt-pgp/issues/168)
mkdir -p "$HOME/.sbt/gpg"
echo "$PGP_SECRET" > "$HOME/.sbt/gpg/secring.asc"

# run sbt with the supplied arg
SBT="$(cd "$(dirname "${BASH_SOURCE[0]}")" >& /dev/null && pwd)/sbt"
"$SBT" "$RELEASE_CMD"
"$SBT" -DSBT_PGP_USE_GPG=false "$RELEASE_CMD"

0 comments on commit 0652fb6

Please sign in to comment.