From bce352bd86f7faf98b3ba5bbb31d3a7860533199 Mon Sep 17 00:00:00 2001 From: Jason Wray Date: Thu, 9 Mar 2017 16:09:38 -0800 Subject: [ios] Add nightly build infrastructure --- platform/ios/CHANGELOG.md | 1 + platform/ios/INSTALL.md | 14 +++++++++- .../ios/Mapbox-iOS-SDK-nightly-dynamic.podspec | 30 ++++++++++++++++++++++ platform/ios/bitrise.yml | 1 + platform/ios/scripts/deploy-nightly.sh | 20 +++++++++++++++ platform/ios/scripts/publish.sh | 15 +++++++++-- 6 files changed, 78 insertions(+), 3 deletions(-) create mode 100644 platform/ios/Mapbox-iOS-SDK-nightly-dynamic.podspec create mode 100755 platform/ios/scripts/deploy-nightly.sh (limited to 'platform') diff --git a/platform/ios/CHANGELOG.md b/platform/ios/CHANGELOG.md index ce99d4d015..e59e02c87e 100644 --- a/platform/ios/CHANGELOG.md +++ b/platform/ios/CHANGELOG.md @@ -54,6 +54,7 @@ Mapbox welcomes participation and contributions from everyone. Please read [CONT * Added a `MGLDistanceFormatter` class for formatting geographic distances. ([#7888](https://github.com/mapbox/mapbox-gl-native/pull/7888)) * Fixed an issue that was causing the system location indicator to stay on in background after telemetry was disabled. ([#7833](https://github.com/mapbox/mapbox-gl-native/pull/7833)) * Added support for predicates in rendered feature querying [8256](https://github.com/mapbox/mapbox-gl-native/pull/8246) +* Added a nightly build of the dynamic framework. ([#8337](https://github.com/mapbox/mapbox-gl-native/pull/8337)) ## 3.4.2 - February 21, 2017 diff --git a/platform/ios/INSTALL.md b/platform/ios/INSTALL.md index 3d50ab868f..4daefe55a9 100644 --- a/platform/ios/INSTALL.md +++ b/platform/ios/INSTALL.md @@ -50,6 +50,10 @@ bash "${BUILT_PRODUCTS_DIR}/${FRAMEWORKS_FOLDER_PATH}/Mapbox.framework/strip-fra (The last step, courtesy of [Realm](https://github.com/realm/realm-cocoa/), is required for working around an [iOS App Store bug](http://www.openradar.me/radar?id=6409498411401216) when archiving universal binaries.) +##### Nightly builds + +A nightly build of the dynamic framework, based on the master branch, is available for download [here](https://mapbox.s3.amazonaws.com/mapbox-gl-native/ios/builds/mapbox-ios-sdk-nightly-dynamic.zip). + #### Static framework You can alternatively install the SDK as a static framework: @@ -82,7 +86,15 @@ You can alternatively install the SDK as a static framework: To test pre-releases and/or betas, you can reference the pre-release like so in your Podfile: ```rb -pod 'Mapbox-iOS-SDK', podspec: 'https://raw.githubusercontent.com/mapbox/mapbox-gl-native//ios/Mapbox-iOS-SDK.podspec' +pod 'Mapbox-iOS-SDK', podspec: 'https://raw.githubusercontent.com/mapbox/mapbox-gl-native//platform/ios/Mapbox-iOS-SDK.podspec' +``` + +##### Testing nightly releases with CocoaPods + +To test a nightly dynamic framework build, update your app’s `Podfile` to point to: + +```rb +pod 'Mapbox-iOS-SDK-nightly-dynamic', podspec: 'https://raw.githubusercontent.com/mapbox/mapbox-gl-native/master/platform/ios/Mapbox-iOS-SDK-nightly-dynamic.podspec' ``` ##### Using your own build with CocoaPods diff --git a/platform/ios/Mapbox-iOS-SDK-nightly-dynamic.podspec b/platform/ios/Mapbox-iOS-SDK-nightly-dynamic.podspec new file mode 100644 index 0000000000..62d76d4897 --- /dev/null +++ b/platform/ios/Mapbox-iOS-SDK-nightly-dynamic.podspec @@ -0,0 +1,30 @@ +Pod::Spec.new do |m| + + version = '3.5.0-beta.2' + + m.name = 'Mapbox-iOS-SDK-nightly-dynamic' + m.version = "#{version}-nightly" + + m.summary = 'Open source vector map solution for iOS with full styling capabilities.' + m.description = 'Open source, OpenGL-based vector map solution for iOS with full styling capabilities and Cocoa Touch APIs.' + m.homepage = 'https://www.mapbox.com/ios-sdk/' + m.license = { :type => 'BSD', :file => 'LICENSE.md' } + m.author = { 'Mapbox' => 'mobile@mapbox.com' } + m.screenshot = "https://www.mapbox.com/ios-sdk/api/#{version}/img/screenshot.png" + m.social_media_url = 'https://twitter.com/mapbox' + m.documentation_url = 'https://www.mapbox.com/ios-sdk/api/' + + m.source = { + :http => "https://mapbox.s3.amazonaws.com/mapbox-gl-native/ios/builds/mapbox-ios-sdk-nightly-dynamic.zip", + :flatten => true + } + + m.platform = :ios + m.ios.deployment_target = '8.0' + + m.requires_arc = true + + m.vendored_frameworks = 'dynamic/Mapbox.framework' + m.module_name = 'Mapbox' + +end diff --git a/platform/ios/bitrise.yml b/platform/ios/bitrise.yml index 270d5b999b..01c64cb313 100644 --- a/platform/ios/bitrise.yml +++ b/platform/ios/bitrise.yml @@ -83,4 +83,5 @@ workflows: export FORMAT=dynamic make ipackage-strip CLOUDWATCH=true platform/ios/scripts/metrics.sh + platform/ios/scripts/deploy-nightly.sh - is_debug: 'yes' diff --git a/platform/ios/scripts/deploy-nightly.sh b/platform/ios/scripts/deploy-nightly.sh new file mode 100755 index 0000000000..9fec4df58a --- /dev/null +++ b/platform/ios/scripts/deploy-nightly.sh @@ -0,0 +1,20 @@ +#!/usr/bin/env bash + +set -e +set -o pipefail +set -u + +function step { >&2 echo -e "\033[1m\033[36m* $@\033[0m"; } +function finish { >&2 echo -en "\033[0m"; } +trap finish EXIT + +export TRAVIS_REPO_SLUG=mapbox-gl-native + +DATE=`date +%Y-%m-%d` +NIGHTLY_TYPE="nightly-dynamic" + +step "Uploading ${NIGHTLY_TYPE} build for ${DATE} to s3…" + +./platform/ios/scripts/publish.sh "${NIGHTLY_TYPE}" "${DATE}" + +step "Finished deploying ${NIGHTLY_TYPE} build in $(($SECONDS / 60)) minutes and $(($SECONDS % 60)) seconds" diff --git a/platform/ios/scripts/publish.sh b/platform/ios/scripts/publish.sh index e080ee825c..2934e10217 100755 --- a/platform/ios/scripts/publish.sh +++ b/platform/ios/scripts/publish.sh @@ -24,7 +24,7 @@ fi # zip # cd build/ios/pkg -ZIP=mapbox-ios-sdk-${PUBLISH_VERSION}${PUBLISH_STYLE}.zip +ZIP="mapbox-ios-sdk-${PUBLISH_VERSION}${PUBLISH_STYLE}.zip" step "Compressing ${ZIP}…" rm -f ../${ZIP} zip -r ../${ZIP} * @@ -35,4 +35,15 @@ zip -r ../${ZIP} * step "Uploading ${ZIP} to s3…" REPO_NAME=$(basename $TRAVIS_REPO_SLUG) aws s3 cp ../${ZIP} s3://mapbox/$REPO_NAME/ios/builds/ --acl public-read -echo http://mapbox.s3.amazonaws.com/$REPO_NAME/ios/builds/${ZIP} +echo "URL: https://mapbox.s3.amazonaws.com/$REPO_NAME/ios/builds/${ZIP}" + +# +# update nightly +# +if [[ ${PUBLISH_VERSION} =~ "nightly" ]]; then + step "Updating ${PUBLISH_VERSION} to ${PUBLISH_STYLE}…" + GENERIC_NIGHTLY_FILENAME="mapbox-ios-sdk-${PUBLISH_VERSION}.zip" + aws s3 cp \ + s3://mapbox/$REPO_NAME/ios/builds/${ZIP} \ + s3://mapbox/$REPO_NAME/ios/builds/${GENERIC_NIGHTLY_FILENAME} --acl public-read +fi -- cgit v1.2.1