From af32a452e08268cec7857246e2e2e2aecc0a1a1c Mon Sep 17 00:00:00 2001 From: Jason Wray Date: Thu, 25 Jul 2019 16:04:35 -0700 Subject: [ios, build] Automatically deploy to CocoaPods --- circle.yml | 14 +++++++++ platform/ios/scripts/deploy-to-cocoapods.sh | 44 +++++++++++++++++++++++++++++ 2 files changed, 58 insertions(+) create mode 100755 platform/ios/scripts/deploy-to-cocoapods.sh diff --git a/circle.yml b/circle.yml index 422dbfc762..ff35e4456d 100644 --- a/circle.yml +++ b/circle.yml @@ -1074,9 +1074,18 @@ jobs: if [[ $CIRCLE_BRANCH == master ]]; then platform/ios/scripts/deploy-snapshot.sh fi + background: true + - deploy: + name: Deploy to Mapbox CocoaPods spec repo + command: | + if [[ $CIRCLE_BRANCH == master ]]; then + platform/ios/scripts/deploy-to-cocoapods.sh + fi + background: true - run: name: Record size command: platform/ios/scripts/metrics.sh + background: true - run: name: Trigger metrics command: | @@ -1087,6 +1096,7 @@ jobs: echo "MOBILE_METRICS_TOKEN not provided" fi fi + background: true - save-dependencies - collect-xcode-build-logs - upload-xcode-build-logs @@ -1124,6 +1134,10 @@ jobs: export VERSION_TAG=${CIRCLE_TAG} export GITHUB_TOKEN=${DANGER_GITHUB_API_TOKEN} platform/ios/scripts/deploy-packages.sh + - deploy: + name: Deploy to CocoaPods + command: platform/ios/scripts/deploy-to-cocoapods.sh + background: true - save-dependencies - collect-xcode-build-logs - upload-xcode-build-logs diff --git a/platform/ios/scripts/deploy-to-cocoapods.sh b/platform/ios/scripts/deploy-to-cocoapods.sh new file mode 100755 index 0000000000..27eb1fbabe --- /dev/null +++ b/platform/ios/scripts/deploy-to-cocoapods.sh @@ -0,0 +1,44 @@ +#!/usr/bin/env bash + +# This relies on either: +# 1. You being authenticated locally with CocoaPods trunk. +# 2. The `COCOAPODS_TRUNK_TOKEN` environment variable being set. + +set -euo pipefail + +function step { >&2 echo -e "\033[1m\033[36m* $@\033[0m"; } +function finish { >&2 echo -en "\033[0m"; } +trap finish EXIT + +CIRCLE_TAG=${CIRCLE_TAG:-""} + +step "Pushing release to CocoaPods trunk…" + +if [[ $CIRCLE_TAG ]]; then + pod trunk push platform/ios/Mapbox-iOS-SDK.podspec --allow-warnings +else + echo "Skipping push to CocoaPods trunk for untagged build" +fi + +step "Pushing release/builds to Mapbox podspecs repo…" + +if [[ -z $(pod repo list | grep -i mapbox-public) ]]; then + pod repo add mapbox-public https://github.com/mapbox/pod-specs +else + echo "Found existing mapbox-public podspecs repo" +fi + +if [[ -z $(git config --global user.email) && $CI ]]; then + echo "Setting machine user as git committer" + git config --global user.email "MapboxCI@users.noreply.github.com" +fi + +if [[ $CIRCLE_TAG ]]; then + pod repo push mapbox-public platform/ios/Mapbox-iOS-SDK.podspec --allow-warnings + pod repo push mapbox-public platform/ios/Mapbox-iOS-SDK-stripped.podspec --allow-warnings +else + echo "Skipping push of release podspecs to mapbox-public for untagged build" + + # pod repo push mapbox-public platform/ios/Mapbox-iOS-SDK-snapshot-dynamic.podspec --allow-warnings + echo "Skipping push of snapshot to mapbox-public until we have a way to update the versions in the snapshot podspec" +fi -- cgit v1.2.1