Created
June 30, 2015 13:26
-
-
Save taylanpince/fd6b291d283f5ff09fe8 to your computer and use it in GitHub Desktop.
Travis CI: Check for tag, generate release notes, sign binary and upload to Tryouts for release distribution
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/sh | |
if [[ "$TRAVIS_PULL_REQUEST" != "false" ]]; then | |
echo "This is a pull request. No deployment will be done." | |
exit 0 | |
fi | |
if [[ "$TRAVIS_BRANCH" != "master" ]]; then | |
echo "Testing on a branch other than master. No deployment will be done." | |
exit 0 | |
fi | |
CURRENT_TAG=`git describe --exact-match --abbrev=0 --tags` | |
if [[ $CURRENT_TAG == "" ]]; then | |
echo "No tags found, no need for a release." | |
exit 0 | |
fi | |
echo "***************************" | |
echo "* Generating Notes *" | |
echo "***************************" | |
PREVIOUS_TAG=`git describe HEAD^1 --abbrev=0 --tags` | |
GIT_HISTORY=`git log --no-merges --format="- %s" $PREVIOUS_TAG..HEAD` | |
if [[ $PREVIOUS_TAG == "" ]]; then | |
GIT_HISTORY=`git log --no-merges --format="- %s"` | |
fi | |
echo "Current Tag: $CURRENT_TAG" | |
echo "Previous Tag: $PREVIOUS_TAG" | |
echo "Release Notes: | |
$GIT_HISTORY" | |
# Thanks @djacobs https://gist.github.com/djacobs/2411095 | |
# Thanks @johanneswuerbach https://gist.github.com/johanneswuerbach/5559514 | |
PROVISIONING_PROFILE="$HOME/Library/MobileDevice/Provisioning Profiles/$PROFILE_NAME.mobileprovision" | |
OUTPUTDIR="$PWD/build/Release-iphoneos" | |
echo "***************************" | |
echo "* Signing *" | |
echo "***************************" | |
xcrun -log -sdk iphoneos PackageApplication "$OUTPUTDIR/$APP_NAME.app" -o "$OUTPUTDIR/$APP_NAME.ipa" -sign "$DEVELOPER_NAME" -embed "$PROVISIONING_PROFILE" | |
zip -r -9 "$OUTPUTDIR/$APP_NAME.app.dSYM.zip" "$OUTPUTDIR/$APP_NAME.app.dSYM" | |
RELEASE_DATE=`date '+%Y-%m-%d %H:%M:%S'` | |
RELEASE_NOTES="Build: $CURRENT_TAG | |
Uploaded: $RELEASE_DATE | |
$GIT_HISTORY" | |
if [ ! -z "$TRYOUTS_APP_ID" ] && [ ! -z "$TRYOUTS_APP_TOKEN" ]; then | |
echo "" | |
echo "************************" | |
echo "* Uploading to Tryouts *" | |
echo "************************" | |
curl https://tryouts.io/applications/$TRYOUTS_APP_ID/upload/ \ | |
-F status="2" \ | |
-F notify="0" \ | |
-F notes="$RELEASE_NOTES" \ | |
-F build="@$OUTPUTDIR/$APP_NAME.ipa" \ | |
-H "Authorization: $TRYOUTS_APP_TOKEN" | |
fi |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment