Skip to content

Instantly share code, notes, and snippets.

@b099l3
Last active August 29, 2015 14:22
Show Gist options
  • Save b099l3/f7ff3ae85f626b9962e6 to your computer and use it in GitHub Desktop.
Save b099l3/f7ff3ae85f626b9962e6 to your computer and use it in GitHub Desktop.
#!/bin/bash
incrementBuildnumber ()
{
echo "\n ********************** Build Number++ Started ********************** \n"
BRANCH_NAME=`git rev-parse --symbolic-full-name --abbrev-ref HEAD`
git symbolic-ref --short HEAD
git reset --hard origin/$BRANCH_NAME
git branch --set-upstream-to=origin/$BRANCH_NAME $BRANCH_NAME
git pull
if [ $osType = "droid" ]
then
incremenetAndroidBuildNumber
elif [ $osType = "touch" ]
then
incremenetiOSBuildNumber
fi
incremenetBuildNotes
echo "Build number incremeneted to $NEW_BUILD_NUMBER"
git commit -a -m "$BUILDTYPE build number incremented to $NEW_BUILD_NUMBER"
#DONT PUSH HERE LET JENKINS DO IT IF ITS SUCCESSFULL
echo "\n ********************** Build Number++ Finished ********************** \n"
}
incremenetiOSBuildNumber ()
{
BUILDTYPE="iOS"
# iOS plist file
INFOPLIST_FILE="$IOS_LOCATION/Info.plist"
VERSION_NUMBER=$(/usr/libexec/PlistBuddy -c "Print CFBundleShortVersionString" "$INFOPLIST_FILE")
BUILD_NUMBER=$(/usr/libexec/PlistBuddy -c "Print CFBundleVersion" "$INFOPLIST_FILE")
NEW_BUILD_NUMBER=$(($BUILD_NUMBER + 1))
#iOS set build number on plist file
/usr/libexec/PlistBuddy -c "Set :CFBundleVersion $NEW_BUILD_NUMBER" "$INFOPLIST_FILE"
echo "Updated Build Number To ${NEW_BUILD_NUMBER} In ${INFOPLIST_FILE}";
}
incremenetAndroidBuildNumber ()
{
BUILDTYPE="Android"
# ANDROID Manifest file
MANIFEST_FILE="$DROID_LOCATION/Properties/AndroidManifest.xml"
MANIFEST_TEMP_FILE="$DROID_LOCATION/Properties/AndroidManifest.temp"
REGEX_FOR_VERSION_NUMBER="android:versionName=\"([0-9\.]+)\""
REGEX_FOR_BUILD_NUMBER="android:versionCode=\"([0-9]+)\""
VAR=$(<$MANIFEST_FILE)
if [[ $VAR =~ $REGEX_FOR_BUILD_NUMBER ]]; then
echo "Build number - found " ${BASH_REMATCH[1]} #buildnumber e.g. 101 build number should NOT be a version number e.g. 3.1.0
BUILD_NUMBER=${BASH_REMATCH[1]}
else
echo "No build number found"
exit
fi
if [[ $VAR =~ $REGEX_FOR_VERSION_NUMBER ]]; then
echo "Version number found - " ${BASH_REMATCH[1]} #version number e.g. 3.1.0
VERSION_NUMBER=${BASH_REMATCH[1]}
else
echo "No version number found"
exit
fi
NEW_BUILD_NUMBER=$(($BUILD_NUMBER + 1))
#Android set build number on manifest file
if [ -f $MANIFEST_FILE ]
then
sed 's/android:versionCode=\"[0-9]*\"/android:versionCode=\"'$NEW_BUILD_NUMBER'\"/g' $MANIFEST_FILE > MANIFEST_TEMP_FILE ; mv MANIFEST_TEMP_FILE $MANIFEST_FILE
echo "Updated Build Number To ${NEW_BUILD_NUMBER} In ${MANIFEST_FILE}";
else
echo "Cant find ${MANIFEST_FILE}"
exit
fi
# Update Version number on Assembly Info
ASSEMBLY_INFO_FILE="$DROID_LOCATION/Properties/AssemblyInfo.cs"
ASSEMBLY_INFO_TEMP_FILE="$DROID_LOCATION/Properties/AssemblyInfo.temp"
if [ -f $ASSEMBLY_INFO_FILE ]
then
sed 's/AssemblyVersion(\"[0-9\.]*\")/AssemblyVersion(\"'$VERSION_NUMBER'\")/g' $ASSEMBLY_INFO_FILE > ASSEMBLY_INFO_TEMP_FILE ; mv ASSEMBLY_INFO_TEMP_FILE $ASSEMBLY_INFO_FILE
echo "Updated Version Number To ${VERSION_NUMBER} In ${ASSEMBLY_INFO_FILE}";
else
echo "Cant find ${ASSEMBLY_INFO_FILE}"
exit
fi
}
incremenetBuildNotes()
{
# Add to build notes
RELEASE_NOTES_FILE="$ROOT_LOCATION/ReleaseNotes/ReleaseNotes.md"
RELEASE_NOTES_TEMP_FILE="$ROOT_LOCATION/ReleaseNotes/ReleaseNotes.temp"
#Set build number on Releease notes
if [ -f $RELEASE_NOTES_FILE ]
then
sed 's/## Version [0-9\.]* ([0-9]*)/## Version '$VERSION_NUMBER' ('$NEW_BUILD_NUMBER')/g' $RELEASE_NOTES_FILE > RELEASE_NOTES_TEMP_FILE ; mv RELEASE_NOTES_TEMP_FILE $RELEASE_NOTES_FILE
echo "Updated Build Number To ${VERSION_NUMBER} (${NEW_BUILD_NUMBER}) In ${RELEASE_NOTES_FILE}";
else
echo "Cant find ${RELEASE_NOTES_FILE}"
exit
fi
}
incrementBuildnumber
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment