element-ios/Tools/Release/buildRelease.sh

72 lines
1.6 KiB
Bash
Executable File

#!/bin/sh
# Use sudo less Ruby
export GEM_HOME=$HOME/.gem
export PATH=$GEM_HOME/bin:$PATH
if [ ! $# -eq 1 ]; then
echo "Usage: ./buildRelease.sh [tag or branch]"
exit 1
fi
if [ ! -n "$APPLE_ID" ]; then
echo "You must set the APPLE_ID env var before calling this script"
echo 'export APPLE_ID="foo.bar@apple.com"'
exit 1
fi
TAG=$1
BUILD_DIR="build"/$TAG
BUILD_NUMBER=$( date +%Y%m%d%H%M%S )
# Enable this flag to build the ipa from the current local source code. Not git clone
# LOCAL_SOURCE=true
if [ -e $BUILD_DIR ]; then
echo "Error: Folder ${BUILD_DIR} already exists"
exit 1
fi
# Checkout the source to build
mkdir -p $BUILD_DIR
cd $BUILD_DIR
REPO_URL=$(git ls-remote --get-url origin)
REPO_NAME=$(basename -s .git $REPO_URL)
if [ "$LOCAL_SOURCE" = true ]; then
echo "Reuse source code of the local copy..."
rm -rf /tmp/$REPO_NAME
cp -R ../../../.. /tmp/$REPO_NAME
mv /tmp/$REPO_NAME .
else
echo "Git clone $REPO_URL with branch/tag $TAG..."
git clone $REPO_URL --depth=1 --branch $TAG
fi
cd $REPO_NAME
# Fastlane update
gem install bundler
bundle install
bundle update
# Update fastlane plugins
bundle exec fastlane update_plugins
# Use appropriated dependencies according to the current branch
if [ "$LOCAL_SOURCE" != true ]; then
bundle exec fastlane point_dependencies_to_same_feature
fi
# Build
bundle exec fastlane app_store build_number:$BUILD_NUMBER git_tag:$TAG
if [ -e out/Riot.ipa ]; then
# Here is the artefact
cp out/Riot.ipa ../../../Riot-$TAG-$BUILD_NUMBER.ipa
echo "Riot-$TAG-$BUILD_NUMBER.ipa has been successfully built"
fi