Vinayak commited on
Commit
f6981df
·
1 Parent(s): 7d9fb66

Test PR specific android app in Saucelabs (#48) (#49)

Browse files
.github/workflows/run_e2e_tests.yml CHANGED
@@ -7,7 +7,48 @@ on:
7
  workflow_dispatch:
8
 
9
  jobs:
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
10
  test:
 
11
  defaults:
12
  run:
13
  working-directory: tests
@@ -26,3 +67,4 @@ jobs:
26
  SAUCE_ACCESS_KEY: '${{ secrets.SAUCE_ACCESS_KEY}}'
27
  SAUCE_USERNAME: '${{ secrets.SAUCE_USERNAME}}'
28
  TEST_UUID: '${{ secrets.TEST_UUID}}'
 
 
7
  workflow_dispatch:
8
 
9
  jobs:
10
+ publish_to_saucelabs:
11
+ defaults:
12
+ run:
13
+ working-directory: puppet
14
+ timeout-minutes: 10
15
+ runs-on: ubuntu-latest
16
+ steps:
17
+ - uses: actions/checkout@v1
18
+
19
+ - name: Setup java
20
+ uses: actions/setup-java@v1
21
+ with:
22
+ java-version: 17
23
+
24
+ - name: Setup Android SDK
25
+ uses: android-actions/setup-android@v2
26
+
27
+ - name: Detect version from release tag
28
+ run: |
29
+ echo "CI_TAG=${GITHUB_REF#refs/*/}" >> $GITHUB_ENV
30
+ shell: bash
31
+
32
+ - name: Grant execute permission for gradlew
33
+ run: chmod +x gradlew
34
+
35
+ # Create APK Release
36
+ - name: Build apk release project (APK) - ${{ env.main_project_module }} module
37
+ env:
38
+ SAUCE_ACCESS_KEY: '${{ secrets.SAUCE_ACCESS_KEY}}'
39
+ SAUCE_USERNAME: '${{ secrets.SAUCE_USERNAME}}'
40
+ run: |
41
+ ./gradlew assemble
42
+ set -x
43
+ echo "app/build/outputs/apk/release/app-release-unsigned-$GITHUB_REF_NAME.apk"
44
+ mv app/build/outputs/apk/release/app-release-unsigned.apk "app/build/outputs/apk/release/app-release-unsigned-$GITHUB_REF_NAME.apk"
45
+ curl -u "$SAUCE_USERNAME:$SAUCE_ACCESS_KEY" --location \
46
+ --request POST 'https://api.us-west-1.saucelabs.com/v1/storage/upload' \
47
+ --form 'payload=@app/build/outputs/apk/release/app-release-unsigned-'"$GITHUB_REF_NAME"'.apk' \
48
+ --form 'name=app-release-unsigned-'"$GITHUB_REF_NAME"'.apk'
49
+
50
  test:
51
+ needs: [publish_to_saucelabs]
52
  defaults:
53
  run:
54
  working-directory: tests
 
67
  SAUCE_ACCESS_KEY: '${{ secrets.SAUCE_ACCESS_KEY}}'
68
  SAUCE_USERNAME: '${{ secrets.SAUCE_USERNAME}}'
69
  TEST_UUID: '${{ secrets.TEST_UUID}}'
70
+ PRE_RELEASE_APK: 'app-release-unsigned-${{ github.ref_name }}.apk'
tests/test_sauce_labs.py CHANGED
@@ -17,6 +17,7 @@ SAUCE_USERNAME = os.getenv("SAUCE_USERNAME")
17
  SAUCE_ACCESS_KEY = os.getenv("SAUCE_ACCESS_KEY")
18
  TEST_UUID = os.getenv("TEST_UUID", "")
19
  BUILD_STAGE = os.getenv("BUILD_STAGE", "DEV")
 
20
 
21
  # Sauce labs URL
22
  APPIUM_SERVER_URL = "http://127.0.0.1:4723"
@@ -50,7 +51,7 @@ def create_android_driver(sauce_labs=False):
50
  capabilities["sauce:options"]["accessKey"] = SAUCE_ACCESS_KEY
51
  capabilities["sauce:options"]["build"] = f"puppet-build-{BUILD_STAGE}"
52
  capabilities["sauce:options"]["name"] = "Test Android"
53
- capabilities["appium:app"] = "storage:filename=app-release-unsigned.apk"
54
  capabilities["appium:deviceName"] = "Google_Pixel_3a_real"
55
 
56
  connection_url = SAUCE_LABS_URL
 
17
  SAUCE_ACCESS_KEY = os.getenv("SAUCE_ACCESS_KEY")
18
  TEST_UUID = os.getenv("TEST_UUID", "")
19
  BUILD_STAGE = os.getenv("BUILD_STAGE", "DEV")
20
+ PRE_RELEASE_APK = os.getenv("PRE_RELEASE_APK", "app-release-unsigned.apk")
21
 
22
  # Sauce labs URL
23
  APPIUM_SERVER_URL = "http://127.0.0.1:4723"
 
51
  capabilities["sauce:options"]["accessKey"] = SAUCE_ACCESS_KEY
52
  capabilities["sauce:options"]["build"] = f"puppet-build-{BUILD_STAGE}"
53
  capabilities["sauce:options"]["name"] = "Test Android"
54
+ capabilities["appium:app"] = f"storage:filename={PRE_RELEASE_APK}"
55
  capabilities["appium:deviceName"] = "Google_Pixel_3a_real"
56
 
57
  connection_url = SAUCE_LABS_URL