diff --git a/configuration/instrumentation-tests.gradle b/configuration/instrumentation-tests.gradle index 9b845f89b..91bbed131 100644 --- a/configuration/instrumentation-tests.gradle +++ b/configuration/instrumentation-tests.gradle @@ -41,15 +41,6 @@ subprojects { } } } - task runNightlyTestsInDeviceFarmPool { - dependsOn(assembleAndroidTest) - doLast { - exec { - commandLine("$rootDir.path/scripts/run_nightly_tests_in_devicefarm_pool.sh") - args([project.name]) - } - } - } task runCanaryInDeviceFarm { dependsOn(assembleAndroidTest) doLast { diff --git a/scripts/run_nightly_tests_in_devicefarm_pool.sh b/scripts/run_nightly_tests_in_devicefarm_pool.sh deleted file mode 100755 index d38ad5c05..000000000 --- a/scripts/run_nightly_tests_in_devicefarm_pool.sh +++ /dev/null @@ -1,104 +0,0 @@ -#!/bin/bash -project_arn=$DEVICEFARM_PROJECT_ARN -device_pool_arn=$DEVICEFARM_POOL_ARN -module_name=$1 -file_name="$module_name-debug-androidTest.apk" -full_path="$module_name/build/outputs/apk/androidTest/debug/$file_name" - -if [[ -z "${project_arn}" ]]; then - echo "DEVICEFARM_PROJECT_ARN environment variable not set." - exit 1 -fi -if [[ -z "${device_pool_arn}" ]]; then - echo "DEVICEFARM_POOL_ARN environment variable not set." - exit 1 -fi - -# Function to setup the app uploads in device farm -function createUpload { - test_type=$1 - upload_response=`aws devicefarm create-upload --type $test_type \ - --content-type="application/octet-stream" \ - --project-arn="$project_arn" \ - --name="$file_name" \ - --query="upload.[url, arn]" \ - --region="us-west-2" \ - --output=text` - echo $upload_response -} - -echo 'Uploading test package' -# Create an upload for the instrumentation test package -read -a result <<< $(createUpload "INSTRUMENTATION_TEST_PACKAGE") -test_package_url=${result[0]} -test_package_upload_arn=${result[1]} -# Upload the apk -curl -H "Content-Type:application/octet-stream" -T $full_path $test_package_url - -# Create an upload for the app package (They're the same, but they have to be setup in device farm) -echo 'Uploading app package' -read -a result <<< $(createUpload "ANDROID_APP") -app_package_url=${result[0]} -app_package_upload_arn=${result[1]} -# Upload the apk -curl -H "Content-Type:application/octet-stream" -T $full_path $app_package_url - -# Wait to make sure the upload completes. This should actually make a get-upload call and check the status. -echo "Waiting for uploads to complete" -sleep 10 - -run_name="$file_name-Nightly-$CODEBUILD_SOURCE_VERSION" -# Function to cancel duplicate runs for same code source in device farm. -function stopDuplicates { - echo "Stopping duplicate runs" - read -a running_arns <<< $(aws devicefarm list-runs \ - --arn="$project_arn" \ - --query="runs[?(status == 'RUNNING' || status == 'PENDING') && name == '${run_name}'].arn" \ - --region="us-west-2" \ - --max-items=5 \ - | jq -r '.[]') - - for arn in "${running_arns[@]}" - do - ## Just consume the result and do nothing with it. - result=`aws devicefarm stop-run --arn $arn --region="us-west-2" --query="run.name"` - done -} -stopDuplicates - -# Schedule the test run in device farm -echo "Scheduling test run" -run_arn=`aws devicefarm schedule-run --project-arn=$project_arn \ - --app-arn="$app_package_upload_arn" \ - --device-pool-arn=$device_pool_arn \ - --name="$run_name" \ - --test="type=INSTRUMENTATION,testPackageArn=$test_package_upload_arn" \ - --execution-configuration="jobTimeoutMinutes=30,videoCapture=false" \ - --query="run.arn" \ - --output=text \ - --region="us-west-2"` - -status='NONE' -result='NONE' -# Wait for the test to complete -while true; do - run_status_response=`aws devicefarm get-run --arn="$run_arn" --region="us-west-2" --query="run.[status, result]" --output text` - read -a result_arr <<< $run_status_response - status=${result_arr[0]} - result=${result_arr[1]} - if [ "$status" = "COMPLETED" ] - then - break - fi - sleep 5 -done -echo "Status = $status Result = $result" - -./scripts/generate_df_testrun_report --run_arn="$run_arn" --module_name="$module_name" --pr="$CODEBUILD_SOURCE_VERSION" --output_path="build/allTests/$module_name/" -# If the result is PASSED, then exit with a return code 0 -if [ "$result" = "PASSED" ] -then - exit 0 -fi -# Otherwise, exit with a non-zero. -exit 1