41 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
			
		
		
	
	
			41 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			Bash
		
	
	
		
			Executable File
		
	
	
| #!/bin/sh
 | |
| #
 | |
| # Release automation script for Linux builds.  This should be run
 | |
| # first.  Must be run from the top-level conscrypt directory.
 | |
| 
 | |
| set -e
 | |
| 
 | |
| if [ -z "$1" ]; then
 | |
|   echo "Usage: $0 <version>"
 | |
|   exit 1
 | |
| fi
 | |
| 
 | |
| # Replace the last numerical component of the release with and x, so
 | |
| # 1.2.3 becomes 1.2.x
 | |
| BRANCH=$(echo "$1" | sed -E 's/([0-9]+[.][0-9]+[.])[0-9]+/\1x/')
 | |
| 
 | |
| git checkout "$BRANCH"
 | |
| 
 | |
| # Update the build.gradle file for the new version
 | |
| sed -i 's/version = ".*"/version = "'"$1"'"/' build.gradle
 | |
| 
 | |
| # Commit the build.gradle, tag the release, and push upstream
 | |
| git commit -a -m "Preparing version $1"
 | |
| git tag -a "$1" -m "Version $1"
 | |
| git push upstream "$BRANCH"
 | |
| git push upstream "$1"
 | |
| 
 | |
| # Build and start the Docker container
 | |
| CONTAINER_TAG="conscrypt-deploy-$1"
 | |
| docker build -t $CONTAINER_TAG release
 | |
| CONTAINER_ID=$(docker run -itd $CONTAINER_TAG)
 | |
| 
 | |
| # Copy the relevant files from the host machine into the container
 | |
| docker exec $CONTAINER_ID mkdir /root/.gradle
 | |
| docker cp ~/.gnupg $CONTAINER_ID:/root/
 | |
| docker cp ~/.gradle/gradle.properties $CONTAINER_ID:/root/.gradle/
 | |
| docker cp "$(grep signingKeystore ~/.gradle/gradle.properties | cut -d= -f2)" $CONTAINER_ID:/root/certkeystore
 | |
| 
 | |
| # Run the release automation script for the docker container
 | |
| docker exec $CONTAINER_ID scl enable llvm-toolset-7 "/conscrypt/release/docker $1"
 |