Skip to content
This repository has been archived by the owner on Aug 8, 2023. It is now read-only.

Commit

Permalink
fixes #1189, #880: split OS X/iOS builds & deploy iOS to S3
Browse files Browse the repository at this point in the history
  • Loading branch information
incanus committed Apr 7, 2015
1 parent 0a2ee76 commit 4e86e2c
Show file tree
Hide file tree
Showing 4 changed files with 50 additions and 9 deletions.
5 changes: 4 additions & 1 deletion .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,10 @@ matrix:
env: BUILDTYPE=Release JOBS=8
compiler: gcc
- os: osx
env: BUILDTYPE=Debug JOBS=8
env: BUILDTYPE=Debug JOBS=8 MASON_PLATFORM=osx
compiler: clang
- os: osx
env: BUILDTYPE=Release JOBS=8 MASON_PLATFORM=ios
compiler: clang

env:
Expand Down
5 changes: 4 additions & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -114,7 +114,7 @@ xproj: xosx-proj
Xcode/ios: ios/app/mapboxgl-app.gyp config/ios.gypi styles/styles SMCalloutView
deps/run_gyp ios/app/mapboxgl-app.gyp $(CONFIG_ios) $(LIBS_ios) --generator-output=./build/ios -f xcode

.PHONY: ios-proj ios run-ios
.PHONY: ios-proj ios isim ipackage
ios-proj: Xcode/ios
open ./build/ios/ios/app/mapboxgl-app.xcodeproj

Expand All @@ -124,6 +124,9 @@ ios: Xcode/ios
isim: Xcode/ios
xcodebuild -sdk iphonesimulator ARCHS="x86_64 i386" -project ./build/ios/ios/app/mapboxgl-app.xcodeproj -configuration Debug -target iosapp -jobs $(JOBS)

ipackage: clean Xcode/ios
./scripts/package_ios.sh

# Legacy name
iproj: ios-proj

Expand Down
24 changes: 24 additions & 0 deletions scripts/publish_ios.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
#!/usr/bin/env bash

set -e
set -o pipefail
set -u

#
# iOS release tag format is `ios-vX.Y.Z`; `X.Y.Z` gets passed in
#
PUBLISH_VERSION="$1"

#
# zip
#
cd build/ios/pkg/static
ZIP=mapbox-gl-ios-${PUBLISH_VERSION}.zip
rm -f ../${ZIP}
zip -r ../${ZIP} *
#
# upload
#
REPO_NAME=$(basename $TRAVIS_REPO_SLUG)
aws s3 cp ../${ZIP} s3://mapbox/$REPO_NAME/ios/builds/ --acl public-read > /dev/null
echo http://mapbox.s3.amazonaws.com/$REPO_NAME/ios/builds/${ZIP}
25 changes: 18 additions & 7 deletions scripts/travis_script.sh
Original file line number Diff line number Diff line change
@@ -1,5 +1,10 @@
#!/usr/bin/env bash

COMMIT_MESSAGE=$(git show -s --format=%B $1 | tr -d '\n')
PUBLISH_TAG=$(echo "$COMMIT_MESSAGE" | grep -oE '\[publish [a-z0-9\.\-]+\]' | grep -oE '[a-z0-9\.\-]+' | tail -n1)
PUBLISH_PLATFORM=$(echo "$PUBLISH_TAG" | awk -F '-v' '{ print $1 }')
PUBLISH_VERSION=$(echo "$PUBLISH_TAG" | awk -F '-v' '{ print $2 }')

set -e
set -o pipefail

Expand Down Expand Up @@ -34,18 +39,24 @@ elif [[ ${TRAVIS_OS_NAME} == "linux" ]]; then
mapbox_time_finish
fi

elif [[ ${TRAVIS_OS_NAME} == "osx" ]]; then
elif [[ ${TRAVIS_OS_NAME} == "osx" && ${MASON_PLATFORM} == "osx" ]]; then
#
# build OS X
#
mapbox_time "build_osx_project" \
mapbox_time "build_osx" \
make xosx -j$JOBS

elif [[ ${TRAVIS_OS_NAME} == "osx" && ${MASON_PLATFORM} == "ios" ]]; then
#
# build & package iOS
#
# build iOS
mapbox_time "package_ios"
make ipackage
#
mapbox_time "build_ios_project_device_release" \
make ios -j$JOBS
mapbox_time "build_ios_project_simulator_debug" \
make isim -j$JOBS
# conditionally deploy iOS build
#
if [[ -n "$PUBLISH_TAG" ]]; then
mapbox_time "deploy_ios"
./scripts/publish_ios.sh "$PUBLISH_VERSION"
fi
fi

0 comments on commit 4e86e2c

Please sign in to comment.