Created
June 17, 2017 12:45
-
-
Save DennisAlund/8b05aab1f7ccbd99aac07366fdefb661 to your computer and use it in GitHub Desktop.
Gitlab CI script for Medium article: https://medium.com/evenbit/c66b93bf896a
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| .test_lab_template: &test_lab_template_def | |
| stage: test | |
| before_script: | |
| # Install Google Cloud SDK | |
| - wget --quiet --output-document=/tmp/google-cloud-sdk.tar.gz https://dl.google.com/dl/cloudsdk/channels/rapid/google-cloud-sdk.tar.gz | |
| - mkdir -p /opt | |
| - tar zxf /tmp/google-cloud-sdk.tar.gz --directory /opt | |
| - /opt/google-cloud-sdk/install.sh --quiet | |
| - source /opt/google-cloud-sdk/path.bash.inc | |
| # Setup and configure the project | |
| - gcloud components update | |
| - echo $CLOUD_PROJECT_ID | |
| - gcloud config set project $CLOUD_PROJECT_ID | |
| # Activate cloud credentials | |
| - echo $SERVICE_ACCOUNT > /tmp/service-account.json | |
| - gcloud auth activate-service-account --key-file /tmp/service-account.json | |
| # List available options for logging purpose only (so that we can review available options) | |
| - gcloud firebase test android models list | |
| - gcloud firebase test android versions list | |
| after_script: | |
| - source /opt/google-cloud-sdk/path.bash.inc | |
| # Iterate up to 10 possible test lab configurations and create CLI tool options | |
| - for i in `seq 1 10`; do export CONFIG="TEST_LAB_DEVICE_CONFIGURATION_$i"; if [ -n "${!CONFIG}" ]; then export TEST_LAB_DEVICE_CONFIGURATIONS="$TEST_LAB_DEVICE_CONFIGURATIONS --device model=${!CONFIG} "; fi; done | |
| # Output for debug logging purpose only | |
| - echo $TEST_LAB_DEVICE_CONFIGURATIONS | |
| # Run tests if there were any configured | |
| - if [ -n "$TEST_LAB_DEVICE_CONFIGURATIONS" ]; then gcloud firebase test android run --type robo --app app.apk $TEST_LAB_DEVICE_CONFIGURATIONS --timeout 90s; fi | |
| # Warn if there were no configurations | |
| - if [ -z "$TEST_LAB_DEVICE_CONFIGURATIONS" ]; then echo "NO FIREBASE TESTLAB CONFIGURATIONS!!!"; fi | |
| test_lab_test_debug: | |
| <<: *test_lab_template_def | |
| only: | |
| - test-lab | |
| script: | |
| - cp app/build/outputs/apk/app-debug.apk ./app.apk | |
| test_lab_test_release: | |
| <<: *test_lab_template_def | |
| only: | |
| - master | |
| script: | |
| - cp app/build/outputs/apk/app-release.apk ./app.apk |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment