From df8c46705672905c975485ca00cf873898c0b063 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Konstantin=20K=C3=A4fer?= Date: Tue, 8 Nov 2016 16:49:04 +0100 Subject: [PATCH] [build] add binary size logging to iOS nightlies --- platform/ios/bitrise.yml | 31 +++++++++++++++++++++++++++++++ platform/ios/scripts/metrics.sh | 20 ++++++++++++++++++++ 2 files changed, 51 insertions(+) create mode 100755 platform/ios/scripts/metrics.sh diff --git a/platform/ios/bitrise.yml b/platform/ios/bitrise.yml index d8a9a4fcd..93d1d4afd 100644 --- a/platform/ios/bitrise.yml +++ b/platform/ios/bitrise.yml @@ -2,6 +2,8 @@ format_version: 1.0.0 default_step_lib_source: https://github.com/bitrise-io/bitrise-steplib.git trigger_map: +- pattern: nightly-release + workflow: nightly-release - pattern: "*" is_pull_request_allowed: true workflow: primary @@ -72,3 +74,32 @@ workflows: failed' - icon_url: https://bitrise-public-content-production.s3.amazonaws.com/slack/bitrise-slack-icon-128.png - icon_url_on_error: https://bitrise-public-content-production.s3.amazonaws.com/slack/bitrise-slack-error-icon-128.png + nightly-release: + steps: + - script: + title: Install Dependencies + inputs: + - content: |- + #!/bin/bash + set -eu -o pipefail + brew install cmake + - is_debug: 'yes' + - script: + title: Configure AWS-CLI + inputs: + - content: |- + #!/bin/bash + apt-get install -y python-pip python-dev build-essential + pip install awscli + - script: + title: Build package + inputs: + - content: |- + #!/bin/bash + set -eu -o pipefail + export BUILDTYPE=Release + export BUILD_DEVICE=true + export FORMAT=dynamic + make ipackage-strip + CLOUDWATCH=true platform/ios/scripts/metrics.sh + - is_debug: 'yes' diff --git a/platform/ios/scripts/metrics.sh b/platform/ios/scripts/metrics.sh new file mode 100755 index 000000000..c45beb3a1 --- /dev/null +++ b/platform/ios/scripts/metrics.sh @@ -0,0 +1,20 @@ +#!/usr/bin/env bash + +set -e +set -o pipefail + +# Generate stripped versions for every architecture +xcrun bitcode_strip build/ios/pkg/dynamic/Mapbox.framework/Mapbox -r -o build/ios/pkg/dynamic/Mapbox-stripped +lipo build/ios/pkg/dynamic/Mapbox-stripped -extract armv7 -output build/ios/pkg/dynamic/Mapbox-stripped-armv7 +lipo build/ios/pkg/dynamic/Mapbox-stripped -extract arm64 -output build/ios/pkg/dynamic/Mapbox-stripped-arm64 +lipo build/ios/pkg/dynamic/Mapbox-stripped -extract i386 -output build/ios/pkg/dynamic/Mapbox-stripped-i386 +lipo build/ios/pkg/dynamic/Mapbox-stripped -extract x86_64 -output build/ios/pkg/dynamic/Mapbox-stripped-x86_64 + +# Track individual architectures +scripts/log_binary_size.sh "build/ios/pkg/dynamic/Mapbox-stripped-armv7" "Platform=iOS,Arch=armv7" +scripts/log_binary_size.sh "build/ios/pkg/dynamic/Mapbox-stripped-arm64" "Platform=iOS,Arch=arm64" +scripts/log_binary_size.sh "build/ios/pkg/dynamic/Mapbox-stripped-i386" "Platform=iOS,Arch=i386" +scripts/log_binary_size.sh "build/ios/pkg/dynamic/Mapbox-stripped-x86_64" "Platform=iOS,Arch=x86_64" + +# Track overall library size +scripts/log_binary_size.sh "build/ios/pkg/dynamic/Mapbox-stripped" "Platform=iOS,Arch=Dynamic"