[dev.boringcrypto] misc/boring: add scripts to automate merges and releases

Change-Id: Id62b84b110af78e4ec8c34a8b71244027931b4f7
Reviewed-on: https://go-review.googlesource.com/c/go/+/182340
Reviewed-by: Dmitri Shuralyov <dmitshur@golang.org>
This commit is contained in:
Filippo Valsorda 2019-06-13 18:50:47 -04:00
parent 98188f3001
commit 6eccf6a6cd
2 changed files with 64 additions and 0 deletions

32
misc/boring/merge.sh Executable file
View file

@ -0,0 +1,32 @@
#! /bin/bash
set -euo pipefail
if [ "$#" -ne 2 ]; then
echo "usage: merge.sh <target branch> <source revision>"
echo ""
echo "example: merge.sh dev.boringcrypto master"
echo " merge.sh dev.boringcrypto.go1.10 go1.10.7"
exit 1
fi
set -x
TARGET="$1"
SOURCE="$2"
WORKTREE="$(mktemp -d)"
BRANCH="boring/merge-$TARGET-$(date +%Y%m%d%H%M%S)"
git fetch
git worktree add --track -b "$BRANCH" "$WORKTREE" "origin/$TARGET"
cd "$WORKTREE"
export GIT_GOFMT_HOOK=off
git merge -m "all: merge $SOURCE into $TARGET" "$SOURCE" || \
(git rm VERSION && git commit -m "all: merge $SOURCE into $TARGET")
if ! git log --format=%B -n 1 | grep "\[dev.boringcrypto"; then
echo "The commit does not seem to be targeting a BoringCrypto branch."
exit 1
fi
git codereview mail -r dmitshur@golang.org,filippo@golang.org -trybot HEAD
cd - && git worktree remove "$WORKTREE"

32
misc/boring/release.sh Executable file
View file

@ -0,0 +1,32 @@
#! /bin/bash
set -euo pipefail
if [ "$#" -eq 0 ]; then
echo "usage: <target branch> [<target branch> ...]"
echo ""
echo "example: release.sh dev.boringcrypto.go1.11 dev.boringcrypto.go1.12"
exit 1
fi
set -x
WORKTREE="$(mktemp -d)"
BRANCH="boring/release-$(date +%Y%m%d%H%M%S)"
git fetch
git worktree add --track -b "$BRANCH" "$WORKTREE" origin/dev.boringcrypto
cd "$WORKTREE/src"
./make.bash
cd ../misc/boring
for branch in "$@"; do
./build.release "origin/$branch"
done
./build.docker
git add RELEASES
git commit -m "misc/boring: add new releases to RELEASES file"
git codereview mail -r dmitshur@golang.org,filippo@golang.org
rm *.tar.gz
cd - && git worktree remove "$WORKTREE"