diff options
author | Tobrun <tobrun.van.nuland@gmail.com> | 2016-10-21 22:24:52 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2016-10-21 22:24:52 +0200 |
commit | 8633c34d014bd5390541bf74f95a5533ad971e89 (patch) | |
tree | 6cd67e82b3055a7149804e692b2f6ac53d0b0eaf /platform/android/bitrise.yml | |
parent | 7a4cd67aa8e3791c0460a649bcb5e0388a45c192 (diff) | |
download | qtlocation-mapboxgl-8633c34d014bd5390541bf74f95a5533ad971e89.tar.gz |
Android Bitrise cleanup (#6782)
* [android] - update bitrise.yml, always use latest deploy step
cleanup bitrise.yml
formatting, separate download step -> if tests fail, build fails
improve shown console messages, correct package for firebase filter
update steps
add slack integration for all workflows
* fixup SKIPCI check
Diffstat (limited to 'platform/android/bitrise.yml')
-rw-r--r-- | platform/android/bitrise.yml | 182 |
1 files changed, 136 insertions, 46 deletions
diff --git a/platform/android/bitrise.yml b/platform/android/bitrise.yml index 9e4ffd60dd..c168a9a6d6 100644 --- a/platform/android/bitrise.yml +++ b/platform/android/bitrise.yml @@ -26,58 +26,101 @@ workflows: envman add --key SKIPCI --value false fi - script: - title: Build + title: Configure GL-native build environement run_if: '{{enveq "SKIPCI" "false"}}' inputs: - content: |- #!/bin/bash + set -eu -o pipefail + curl -sL https://deb.nodesource.com/setup_4.x | sudo -E bash - + sudo apt-get install -y pkg-config nodejs cmake + - script: + title: Configure Google Cloud SDK + run_if: '{{enveq "SKIPCI" "false"}}' + inputs: + - content: |- + #!/bin/bash + # Install python tools for pip sudo apt-get install -y gcc python-dev python-setuptools sudo easy_install -U pip sudo pip uninstall crcmod sudo pip install -U crcmod - set -eu -o pipefail - curl -sL https://deb.nodesource.com/setup_4.x | sudo -E bash - - sudo apt-get install -y pkg-config nodejs cmake - export BUILDTYPE=Debug - make android - make android-test - make android-generate-test - wget -O platform/android/MapboxGLAndroidSDKTestApp/src/main/res/values/developer-config.xml "$BITRISEIO_TEST_ACCESS_TOKEN_UI_TEST_URL" - make android-test-apk - wget -O secret.json "$BITRISEIO_GCLOUD_SERVICE_ACCOUNT_JSON_URL" + + # Install Google Cloud SDK for Firebase export CLOUD_SDK_REPO="cloud-sdk-$(lsb_release -c -s)" echo "deb http://packages.cloud.google.com/apt $CLOUD_SDK_REPO main" | sudo tee /etc/apt/sources.list.d/google-cloud-sdk.list curl https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add - sudo apt-get update && sudo apt-get install google-cloud-sdk - gcloud auth activate-service-account --key-file secret.json --project android-gl-native - gcloud beta test android devices list - gcloud beta test android run --type instrumentation --app platform/android/MapboxGLAndroidSDKTestApp/build/outputs/apk/MapboxGLAndroidSDKTestApp-debug.apk --test platform/android/MapboxGLAndroidSDKTestApp/build/outputs/apk/MapboxGLAndroidSDKTestApp-debug-androidTest-unaligned.apk --device-ids shamu --os-version-ids 22 --locales en --orientations portrait --timeout 15m --test-targets "class com.mapbox.mapboxsdk.camera.RotateTest" + + # Get authentication secret + echo "Downloading Google Cloud authnetication:" + wget -O secret.json "$BITRISEIO_GCLOUD_SERVICE_ACCOUNT_JSON_URL" - script: - title: Download test results - is_always_run: true + title: Build libmapbox-gl.so for armeabi-v7a + run_if: '{{enveq "SKIPCI" "false"}}' inputs: - content: |- #!/bin/bash - testUri="gs://test-lab-wrrntqk05p31w-h3y1qk44vuunw/" - testUri=$(gsutil ls $testUri | tail -n1) - echo "Downloading from : "$testUri - cd platform/android/MapboxGLAndroidSDKTestApp/build/outputs/apk && gsutil -m cp -R -Z $testUri . - - deploy-to-bitrise-io@1.2.3: + echo "Compile libmapbox-gl.so for armeabi-v7a abi:" + export BUILDTYPE=Debug + make android-lib-arm-v7 + - script: + title: Run local JVM Unit tests + run_if: '{{enveq "SKIPCI" "false"}}' inputs: - - deploy_path: "platform/android/MapboxGLAndroidSDKTestApp/build/outputs/apk" - - notify_user_groups: none - - is_compress: 'true' + - content: |- + #!/bin/bash + echo "Running unit tests from testapp/src/test:" + make android-test + - script: + title: Generate Espresso sanity tests + run_if: '{{enveq "SKIPCI" "false"}}' + inputs: + - content: |- + #!/bin/bash + echo "Generate these test locally by executing:" + make android-generate-test + - script: + title: Run Firebase instrumentation tests + run_if: '{{enveq "SKIPCI" "false"}}' + inputs: + - content: |- + #!/bin/bash + echo "Downloading Mapbox accesstoken for running tests:" + wget -O platform/android/MapboxGLAndroidSDKTestApp/src/main/res/values/developer-config.xml "$BITRISEIO_TEST_ACCESS_TOKEN_UI_TEST_URL" + + echo "Build seperate test apk:" + make android-test-apk + + echo "Run tests on firebase:" + gcloud auth activate-service-account --key-file secret.json --project android-gl-native + gcloud beta test android devices list + gcloud beta test android run --type instrumentation --app platform/android/MapboxGLAndroidSDKTestApp/build/outputs/apk/MapboxGLAndroidSDKTestApp-debug.apk --test platform/android/MapboxGLAndroidSDKTestApp/build/outputs/apk/MapboxGLAndroidSDKTestApp-debug-androidTest-unaligned.apk --device-ids shamu --os-version-ids 22 --locales en --orientations portrait --timeout 15m --test-targets "class com.mapbox.mapboxsdk.testapp.camera.RotateActivityTest" + echo "The details are made available as a zipped build artefact on top of this page." - script: - title: Run ndk-stack + title: Download Firebase results + run_if: '{{enveq "SKIPCI" "false"}}' is_always_run: true inputs: - content: |- #!/bin/bash + echo "The details from Firebase will be downloaded, zipped and attached as a build artefact." + testUri=$(gsutil ls "gs://test-lab-wrrntqk05p31w-h3y1qk44vuunw/" | tail -n1) + echo "Downloading from : "$testUri + cd platform/android/MapboxGLAndroidSDKTestApp/build/outputs/apk && gsutil -m cp -R -Z $testUri . + + echo "Try running ndk-stack on downloaded logcat to symbolicate the stacktraces:" find platform/android/MapboxGLAndroidSDKTestApp/build/outputs/apk -type f -name "logcat" -print0 | xargs -0 -Imylogcat mv -i mylogcat ./ cat logcat | ndk-stack -sym build/android-arm-v7/Debug + - deploy-to-bitrise-io: + run_if: '{{enveq "SKIPCI" "false"}}' + inputs: + - deploy_path: platform/android/MapboxGLAndroidSDKTestApp/build/outputs/apk + - is_compress: 'true' + - notify_user_groups: none - slack: - title: Post to Slack run_if: '{{enveq "SKIPCI" "false"}}' + title: Post to Slack inputs: - webhook_url: "$SLACK_HOOK_URL" - channel: "#gl-bots" @@ -96,49 +139,98 @@ workflows: scheduled: steps: - script: - title: Build + title: Configure GL-native build environement inputs: - content: |- #!/bin/bash set -eu -o pipefail - curl -sL https://deb.nodesource.com/setup_4.x | sudo -E bash - - apt-get install -y pkg-config python-pip python-dev build-essential nodejs cmake + sudo apt-get install -y pkg-config nodejs cmake + - script: + title: Configure AWS-CLI + inputs: + - content: |- + #!/bin/bash + apt-get install -y python-pip python-dev build-essential pip install awscli - + - script: + title: Download maven credentials + inputs: + - content: |- + #!/bin/bash aws s3 cp s3://mapbox/android/signing-credentials/secring.gpg platform/android/MapboxGLAndroidSDK/secring.gpg + # Add maven credentals for publishing echo "NEXUS_USERNAME=$PUBLISH_NEXUS_USERNAME NEXUS_PASSWORD=$PUBLISH_NEXUS_PASSWORD signing.keyId=$SIGNING_KEYID signing.password=$SIGNING_PASSWORD signing.secretKeyRingFile=secring.gpg" >> platform/android/MapboxGLAndroidSDK/gradle.properties - + - script: + title: Build release + inputs: + - content: |- + #!/bin/bash + echo "Compile libmapbox-gl.so for all supportd abi's:" export BUILDTYPE=Release make apackage - - cd platform/android - ./gradlew uploadArchives + - script: + title: Publish to maven + inputs: + - content: |- + #!/bin/bash + echo "Upload aar file to maven:" + cd platform/android && ./gradlew uploadArchives + - slack: + title: Post to Slack + inputs: + - webhook_url: "$SLACK_HOOK_URL" + - channel: "#gl-bots" + - from_username: 'Bitrise Android' + - from_username_on_error: 'Bitrise Android' + - message: '<${BITRISE_BUILD_URL}|Build #${BITRISE_BUILD_NUMBER}> Publish to maven SUCCESS.' + - message_on_error: '<${BITRISE_BUILD_URL}|Build #${BITRISE_BUILD_NUMBER}> Publish to maven 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 devicefarmUpload: steps: - script: - title: Build + title: Configure GL-native build environement inputs: - content: |- #!/bin/bash set -eu -o pipefail curl -sL https://deb.nodesource.com/setup_4.x | sudo -E bash - sudo apt-get install -y pkg-config nodejs cmake - - echo "AWS_ACCESS_KEY_ID_DEVICE_FARM=$AWS_ACCESS_KEY_ID_DEVICE_FARM" >> platform/android/MapboxGLAndroidSDKTestApp/gradle.properties - echo "AWS_SECRET_ACCESS_KEY_DEVICE_FARM=$AWS_SECRET_ACCESS_KEY_DEVICE_FARM" >> platform/android/MapboxGLAndroidSDKTestApp/gradle.properties - + - script: + title: Build release + inputs: + - content: |- + #!/bin/bash + echo "Compile libmapbox-gl.so for all supportd abi's:" export BUILDTYPE=Release make apackage - + - script: + title: Add AWS credentials + inputs: + - content: |- + #!/bin/bash + echo "AWS_ACCESS_KEY_ID_DEVICE_FARM=$AWS_ACCESS_KEY_ID_DEVICE_FARM" >> platform/android/MapboxGLAndroidSDKTestApp/gradle.properties + echo "AWS_SECRET_ACCESS_KEY_DEVICE_FARM=$AWS_SECRET_ACCESS_KEY_DEVICE_FARM" >> platform/android/MapboxGLAndroidSDKTestApp/gradle.properties + - script: + title: Generate sanity tests + inputs: + - content: |- + #!/bin/bash + echo "Generate these test locally by executing:" make android-generate-test - cd platform/android/ - ./gradlew devicefarmUpload + - script: + title: Run AWS Device Farm instrumentation tests + inputs: + - content: |- + #!/bin/bash + echo "Run tests on device farm:" + cd platform/android && ./gradlew devicefarmUpload - slack: title: Post to Slack inputs: @@ -146,9 +238,7 @@ workflows: - channel: "#gl-bots" - from_username: 'Bitrise Android' - from_username_on_error: 'Bitrise Android' - - message: '<${BITRISE_BUILD_URL}|Build #${BITRISE_BUILD_NUMBER}> - for devicefarmUpload passed' - - message_on_error: '<${BITRISE_BUILD_URL}|Build #${BITRISE_BUILD_NUMBER}> - for devicefarmUpload failed' + - message: '<${BITRISE_BUILD_URL}|Build #${BITRISE_BUILD_NUMBER}> for devicefarmUpload passed' + - message_on_error: '<${BITRISE_BUILD_URL}|Build #${BITRISE_BUILD_NUMBER}> for devicefarmUpload 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 |