summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjmkiley <jordan.kiley@mapbox.com>2018-11-29 12:40:53 -0800
committerjmkiley <jordan.kiley@mapbox.com>2018-11-29 12:40:53 -0800
commit66994fb6b5f079905824bc36a9a2efda05099f92 (patch)
tree9152bd146cfe624c868e5f3f06686cafb6e2aafb
parent02906077e1c24540d35a2a1fba91aa0a68e74f38 (diff)
downloadqtlocation-mapboxgl-66994fb6b5f079905824bc36a9a2efda05099f92.tar.gz
[ios] made separate deploy-packages.sh for cn
-rw-r--r--circle.yml3
-rw-r--r--platform/ios/scripts/deploy-packages-cn.sh51
-rwxr-xr-xplatform/ios/scripts/deploy-packages.sh72
3 files changed, 121 insertions, 5 deletions
diff --git a/circle.yml b/circle.yml
index 087418de3d..efdd07aaa9 100644
--- a/circle.yml
+++ b/circle.yml
@@ -972,8 +972,7 @@ jobs:
name: Build, package, and upload iOS release
command: |
export VERSION_TAG=${CIRCLE_TAG}
- export GITHUB_TOKEN=${DANGER_GITHUB_API_TOKEN}
- platform/ios/scripts/deploy-packages.sh
+ platform/ios/scripts/deploy-packages-cn.sh
- save-dependencies
- collect-xcode-build-logs
- upload-xcode-build-logs
diff --git a/platform/ios/scripts/deploy-packages-cn.sh b/platform/ios/scripts/deploy-packages-cn.sh
new file mode 100644
index 0000000000..82894ae746
--- /dev/null
+++ b/platform/ios/scripts/deploy-packages-cn.sh
@@ -0,0 +1,51 @@
+#!/usr/bin/env bash
+
+set -e
+set -o pipefail
+set -u
+
+# dynamic environment variables:
+# VERSION_TAG={determined automatically}: Version tag in format ios-vX.X.X-pre.X
+# GITHUB_RELEASE=true: Upload to github
+# BINARY_DIRECTORY=build/ios/deploy: Directory in which to save test packages
+
+# environment variables and dependencies:
+# - You must run "mbx auth ..." before running
+# - Set GITHUB_TOKEN to a GitHub API access token in your environment to use GITHUB_RELEASE
+# - "wget" is required for downloading the zip files from s3
+# - The "github-release" command is required to use GITHUB_RELEASE
+
+function step { >&2 echo -e "\033[1m\033[36m* $@\033[0m"; }
+function finish { >&2 echo -en "\033[0m"; }
+trap finish EXIT
+
+buildPackageStyle() {
+ local package=$1 style=""
+ if [[ ${#} -eq 2 ]]; then
+ style="$2"
+ fi
+ step "Building: make ${package} ${style}"
+ make ${package}
+ step "Publishing ${package} with ${style}"
+ local file_name=""
+ if [ -z ${style} ]
+ then
+ ./platform/ios/scripts/publish-cn.sh "${PUBLISH_VERSION}"
+ file_name=mapbox-ios-sdk-${PUBLISH_VERSION}.zip
+ else
+ ./platform/ios/scripts/publish-cn.sh "${PUBLISH_VERSION}" ${style}
+ file_name=mapbox-ios-sdk-${PUBLISH_VERSION}-${style}.zip
+ fi
+PUBLISH_VERSION=$( echo ${VERSION_TAG} | sed 's/^ios-v//' )
+git checkout ${VERSION_TAG}
+
+step "Deploying version ${PUBLISH_VERSION}…"
+#
+make clean && make distclean
+npm install --ignore-scripts
+mkdir -p ${BINARY_DIRECTORY}
+
+buildPackageStyle "iframework" "symbols-dynamic"
+buildPackageStyle "iframework SYMBOLS=NO" "dynamic"
+
+step "Finished deploying ${PUBLISH_VERSION} in $(($SECONDS / 60)) minutes and $(($SECONDS % 60)) seconds"
diff --git a/platform/ios/scripts/deploy-packages.sh b/platform/ios/scripts/deploy-packages.sh
index 82894ae746..01c666db34 100755
--- a/platform/ios/scripts/deploy-packages.sh
+++ b/platform/ios/scripts/deploy-packages.sh
@@ -30,21 +30,87 @@ buildPackageStyle() {
local file_name=""
if [ -z ${style} ]
then
- ./platform/ios/scripts/publish-cn.sh "${PUBLISH_VERSION}"
+ ./platform/ios/scripts/publish.sh "${PUBLISH_VERSION}"
file_name=mapbox-ios-sdk-${PUBLISH_VERSION}.zip
else
- ./platform/ios/scripts/publish-cn.sh "${PUBLISH_VERSION}" ${style}
+ ./platform/ios/scripts/publish.sh "${PUBLISH_VERSION}" ${style}
file_name=mapbox-ios-sdk-${PUBLISH_VERSION}-${style}.zip
fi
+ step "Downloading ${file_name} from s3 to ${BINARY_DIRECTORY}"
+ wget -O ${BINARY_DIRECTORY}/${file_name} http://mapbox.s3.amazonaws.com/mapbox-gl-native/ios/builds/${file_name}
+ if [[ "${GITHUB_RELEASE}" == true ]]; then
+ step "Uploading ${file_name} to GitHub"
+ github-release upload \
+ --tag "ios-v${PUBLISH_VERSION}" \
+ --name ${file_name} \
+ --file "${BINARY_DIRECTORY}/${file_name}" > /dev/null
+ fi
+}
+
+export TRAVIS_REPO_SLUG=mapbox-gl-native
+export GITHUB_USER=mapbox
+export GITHUB_REPO=mapbox-gl-native
+export BUILDTYPE=Release
+
+VERSION_TAG=${VERSION_TAG:-''}
+PUBLISH_VERSION=
+BINARY_DIRECTORY=${BINARY_DIRECTORY:-build/ios/deploy}
+GITHUB_RELEASE=${GITHUB_RELEASE:-true}
+PUBLISH_PRE_FLAG=''
+
+if [[ -z `which github-release` ]]; then
+ step "Installing github-release…"
+ brew install github-release
+ if [ -z `which github-release` ]; then
+ echo "Unable to install github-release. See: https://github.com/aktau/github-release"
+ exit 1
+ fi
+fi
+
+if [[ ${GITHUB_RELEASE} = "true" ]]; then
+ GITHUB_RELEASE=true # Assign bool, not just a string
+fi
+
+if [[ -z ${VERSION_TAG} ]]; then
+ step "Determining version number from most recent relevant git tag…"
+ VERSION_TAG=$( git describe --tags --match=ios-v*.*.* --abbrev=0 )
+ echo "Found tag: ${VERSION_TAG}"
+fi
+
+if [[ $( echo ${VERSION_TAG} | grep --invert-match ios-v ) ]]; then
+ echo "Error: ${VERSION_TAG} is not a valid iOS version tag"
+ echo "VERSION_TAG should be in format: ios-vX.X.X-pre.X"
+ exit 1
+fi
+
+if github-release info --tag ${VERSION_TAG} | grep --quiet "draft: ✗"; then
+ echo "Error: ${VERSION_TAG} has already been published on GitHub"
+ echo "See: https://github.com/${GITHUB_USER}/${GITHUB_REPO}/releases/tag/${VERSION_TAG}"
+ exit 1
+fi
+
PUBLISH_VERSION=$( echo ${VERSION_TAG} | sed 's/^ios-v//' )
git checkout ${VERSION_TAG}
step "Deploying version ${PUBLISH_VERSION}…"
-#
+
make clean && make distclean
npm install --ignore-scripts
mkdir -p ${BINARY_DIRECTORY}
+if [[ "${GITHUB_RELEASE}" == true ]]; then
+ step "Create GitHub release…"
+ if [[ $( echo ${PUBLISH_VERSION} | awk '/[0-9]-/' ) ]]; then
+ PUBLISH_PRE_FLAG='--pre-release'
+ fi
+ RELEASE_NOTES=$( ./platform/ios/scripts/release-notes.js github )
+ github-release release \
+ --tag "ios-v${PUBLISH_VERSION}" \
+ --name "ios-v${PUBLISH_VERSION}" \
+ --draft ${PUBLISH_PRE_FLAG} \
+ --description "${RELEASE_NOTES}"
+fi
+
buildPackageStyle "iframework" "symbols-dynamic"
buildPackageStyle "iframework SYMBOLS=NO" "dynamic"