Vadammt Vadammt - 1 month ago 7
Android Question

Read versionName from build.gradle in bash

Is there a way to read the value

versionName
from the
build.gradle
file of an Android project to use it in bash?

More precisely: How can I read this value from the file and use it in a Travis-CI script? I'll use it like

# ANDROID_VERSION=???
export GIT_TAG=build-$ANDROID_VERSION


I set up a Travis-CI like described in this post http://stackoverflow.com/a/28230711/1700776.

My build.gradle: http://pastebin.com/uiJ0LCSk

Answer

Thanks to alnet's comment I came up with this solution (note Doug Stevenson's objection):

# variables
export GRADLE_PATH=./app/build.gradle   # path to the gradle file
export GRADLE_FIELD="versionName"   # field name
# logic
export VERSION_TMP=$(grep $GRADLE_FIELD $GRADLE_PATH | awk '{print $2}')    # get value versionName"0.1.0"
export VERSION=$(echo $VERSION_TMP | sed -e 's/^"//'  -e 's/"$//')  # remove quotes 0.1.0
export GIT_TAG=$TRAVIS_BRANCH-$VERSION.$TRAVIS_BUILD_NUMBER
# result
echo gradle version: $VERSION
echo release tag: $GIT_TAG
Comments