update gitignore for generated tests add camera move test add realtime geojson to be excluded when generating Activity sanity tests by default show workaround for showing a MapView in a dialog add annotation tests remove older camera tests, introduce tests for move, ease and animate, bring back setLatLng and getLatLng on MapView, add tests for internal camera API. compass view tests add tests for attribution and logo. fix annotation tests Rename Actiivity test class, split up annotation tests, added MarkerView tests, added infowindow tests, added MyLocationView tests fix addRemoveLayer test by integrating map interactions inside a ViewAction
245 lines
11 KiB
YAML
245 lines
11 KiB
YAML
---
|
|
format_version: 1.0.0
|
|
default_step_lib_source: https://github.com/bitrise-io/bitrise-steplib.git
|
|
trigger_map:
|
|
- pattern: devicefarmUpload
|
|
workflow: devicefarmUpload
|
|
- pattern: scheduled
|
|
workflow: scheduled
|
|
- pattern: "*"
|
|
workflow: primary
|
|
workflows:
|
|
primary:
|
|
steps:
|
|
- script:
|
|
title: Check for skipping CI
|
|
inputs:
|
|
- content: |-
|
|
#!/bin/bash
|
|
|
|
if [[ -n "$(echo $GIT_CLONE_COMMIT_MESSAGE_SUBJECT | sed -n '/\[skip ci\]/p')" ||
|
|
-n "$(echo $GIT_CLONE_COMMIT_MESSAGE_SUBJECT | sed -n '/\[ci skip\]/p')" ||
|
|
-n "$(echo $GIT_CLONE_COMMIT_MESSAGE_BODY | sed -n 's/\[skip ci\]/p')" ||
|
|
-n "$(echo $GIT_CLONE_COMMIT_MESSAGE_BODY | sed -n 's/\[ci skip\]/p')" ]]; then
|
|
envman add --key SKIPCI --value true
|
|
else
|
|
envman add --key SKIPCI --value false
|
|
fi
|
|
- script:
|
|
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
|
|
|
|
# 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
|
|
|
|
# Get authentication secret
|
|
echo "Downloading Google Cloud authnetication:"
|
|
wget -O secret.json "$BITRISEIO_GCLOUD_SERVICE_ACCOUNT_JSON_URL"
|
|
- script:
|
|
title: Build libmapbox-gl.so for armeabi-v7a
|
|
run_if: '{{enveq "SKIPCI" "false"}}'
|
|
inputs:
|
|
- content: |-
|
|
#!/bin/bash
|
|
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:
|
|
- content: |-
|
|
#!/bin/bash
|
|
echo "Running unit tests from testapp/src/test:"
|
|
make run-android-unit-test
|
|
- script:
|
|
title: Generate Espresso sanity tests
|
|
run_if: '{{enveq "SKIPCI" "false"}}'
|
|
inputs:
|
|
- content: |-
|
|
#!/bin/bash
|
|
echo "Generate these test locally by executing:"
|
|
make test-code-android
|
|
- 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-ui-test
|
|
|
|
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.CameraMoveTest"
|
|
echo "The details are made available as a zipped build artefact on top of this page."
|
|
- script:
|
|
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:
|
|
run_if: '{{enveq "SKIPCI" "false"}}'
|
|
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}>
|
|
for <https://github.com/mapbox/mapbox-gl-native/compare/${BITRISE_GIT_BRANCH}|mapbox/mapbox-gl-native@${BITRISE_GIT_BRANCH}>
|
|
by ${GIT_CLONE_COMMIT_COMMITER_NAME}
|
|
passed'
|
|
- message_on_error: '<${BITRISE_BUILD_URL}|Build #${BITRISE_BUILD_NUMBER}>
|
|
for <https://github.com/mapbox/mapbox-gl-native/compare/${BITRISE_GIT_BRANCH}|mapbox/mapbox-gl-native@${BITRISE_GIT_BRANCH}>
|
|
by ${GIT_CLONE_COMMIT_COMMITER_NAME}
|
|
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
|
|
scheduled:
|
|
steps:
|
|
- script:
|
|
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
|
|
- 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
|
|
- 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: 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
|
|
- 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 test-code-android
|
|
- 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:
|
|
- 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}> 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
|