1*cd0cc2e3SAndroid Build Coastguard Worker#!/bin/sh 2*cd0cc2e3SAndroid Build Coastguard Worker# 3*cd0cc2e3SAndroid Build Coastguard Worker# Release automation script for Linux builds. This should be run 4*cd0cc2e3SAndroid Build Coastguard Worker# first. Must be run from the top-level conscrypt directory. 5*cd0cc2e3SAndroid Build Coastguard Worker 6*cd0cc2e3SAndroid Build Coastguard Workerset -e 7*cd0cc2e3SAndroid Build Coastguard Worker 8*cd0cc2e3SAndroid Build Coastguard Workerif [ -z "$1" ]; then 9*cd0cc2e3SAndroid Build Coastguard Worker echo "Usage: $0 <version>" 10*cd0cc2e3SAndroid Build Coastguard Worker exit 1 11*cd0cc2e3SAndroid Build Coastguard Workerfi 12*cd0cc2e3SAndroid Build Coastguard Worker 13*cd0cc2e3SAndroid Build Coastguard Worker# Replace the last numerical component of the release with and x, so 14*cd0cc2e3SAndroid Build Coastguard Worker# 1.2.3 becomes 1.2.x 15*cd0cc2e3SAndroid Build Coastguard WorkerBRANCH=$(echo "$1" | sed -E 's/([0-9]+[.][0-9]+[.])[0-9]+/\1x/') 16*cd0cc2e3SAndroid Build Coastguard Worker 17*cd0cc2e3SAndroid Build Coastguard Workergit checkout "$BRANCH" 18*cd0cc2e3SAndroid Build Coastguard Worker 19*cd0cc2e3SAndroid Build Coastguard Worker# Update the build.gradle file for the new version 20*cd0cc2e3SAndroid Build Coastguard Workersed -i 's/version = ".*"/version = "'"$1"'"/' build.gradle 21*cd0cc2e3SAndroid Build Coastguard Worker 22*cd0cc2e3SAndroid Build Coastguard Worker# Commit the build.gradle, tag the release, and push upstream 23*cd0cc2e3SAndroid Build Coastguard Workergit commit -a -m "Preparing version $1" 24*cd0cc2e3SAndroid Build Coastguard Workergit tag -a "$1" -m "Version $1" 25*cd0cc2e3SAndroid Build Coastguard Workergit push upstream "$BRANCH" 26*cd0cc2e3SAndroid Build Coastguard Workergit push upstream "$1" 27*cd0cc2e3SAndroid Build Coastguard Worker 28*cd0cc2e3SAndroid Build Coastguard Worker# Build and start the Docker container 29*cd0cc2e3SAndroid Build Coastguard WorkerCONTAINER_TAG="conscrypt-deploy-$1" 30*cd0cc2e3SAndroid Build Coastguard Workerdocker build -t $CONTAINER_TAG release 31*cd0cc2e3SAndroid Build Coastguard WorkerCONTAINER_ID=$(docker run -itd $CONTAINER_TAG) 32*cd0cc2e3SAndroid Build Coastguard Worker 33*cd0cc2e3SAndroid Build Coastguard Worker# Copy the relevant files from the host machine into the container 34*cd0cc2e3SAndroid Build Coastguard Workerdocker exec $CONTAINER_ID mkdir /root/.gradle 35*cd0cc2e3SAndroid Build Coastguard Workerdocker cp ~/.gnupg $CONTAINER_ID:/root/ 36*cd0cc2e3SAndroid Build Coastguard Workerdocker cp ~/.gradle/gradle.properties $CONTAINER_ID:/root/.gradle/ 37*cd0cc2e3SAndroid Build Coastguard Workerdocker cp "$(grep signingKeystore ~/.gradle/gradle.properties | cut -d= -f2)" $CONTAINER_ID:/root/certkeystore 38*cd0cc2e3SAndroid Build Coastguard Worker 39*cd0cc2e3SAndroid Build Coastguard Worker# Run the release automation script for the docker container 40*cd0cc2e3SAndroid Build Coastguard Workerdocker exec $CONTAINER_ID scl enable llvm-toolset-7 "/conscrypt/release/docker $1" 41