Skip to content

Commit 56ecc90

Browse files
committed
chore: implement iOS testing on BrowserStack
1 parent 73f37d6 commit 56ecc90

File tree

1 file changed

+47
-13
lines changed

1 file changed

+47
-13
lines changed

.github/workflows/ci.yml

Lines changed: 47 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@ on:
1010

1111
env:
1212
nodejs: "16.x"
13+
java_version: "17"
14+
gradle_version: "7.6.1"
1315
BROWSERSTACK_USERNAME: ${{ secrets.BROWSERSTACK_USERNAME }}
1416
BROWSERSTACK_ACCESS_KEY: ${{ secrets.BROWSERSTACK_ACCESS_KEY }}
1517

@@ -47,12 +49,28 @@ jobs:
4749
- name: Build test app
4850
run: scripts/build-test-app.sh --ios --emulator
4951
- name: Upload artifact to BrowserStack
50-
if: env.BROWSERSTACK_USERNAME != ''
52+
if: ${{ secrets.BROWSERSTACK_USERNAME != '' }}
5153
run: scripts/upload-browserstack.sh --ios
52-
# need to have an App for device target
53-
# - name: Run e2e tests
54-
# if: env.BROWSERSTACK_USERNAME != ''
55-
# run: scripts/test-app.sh --ios --device
54+
55+
test-ios:
56+
needs: build-ios
57+
runs-on: macOS-latest
58+
steps:
59+
- uses: actions/checkout@v1
60+
if: ${{ env.BROWSERSTACK_USERNAME != '' }}
61+
- name: Install Node.js ${{ env.nodejs }}
62+
if: ${{ env.BROWSERSTACK_USERNAME != '' }}
63+
uses: actions/setup-node@v4
64+
with:
65+
node-version: ${{ env.nodejs }}
66+
cache: npm
67+
cache-dependency-path: package-lock.json
68+
- name: Install node modules
69+
if: ${{ env.BROWSERSTACK_USERNAME != '' }}
70+
run: npm ci
71+
- name: Run e2e tests (iOS)
72+
if: ${{ env.BROWSERSTACK_USERNAME != '' }}
73+
run: scripts/test-app.sh --ios --device
5674

5775
build-android:
5876
runs-on: ubuntu-latest
@@ -70,17 +88,16 @@ jobs:
7088
uses: actions/setup-java@v2
7189
with:
7290
distribution: "zulu"
73-
java-version: "17"
91+
java-version: ${{ env.java_version }}
7492
java-package: jdk
7593
- name: Ensure Android build-tools 33.0.2
7694
run: yes | "${ANDROID_HOME}/cmdline-tools/latest/bin/sdkmanager" "build-tools;33.0.2"
77-
- name: Install Gradle 7.6.1
95+
- name: Install Gradle ${{ env.gradle_version }}
7896
run: |
7997
set -euo pipefail
80-
GRADLE_VERSION=7.6.1
81-
curl -sSL "https://services.gradle.org/distributions/gradle-${GRADLE_VERSION}-bin.zip" -o gradle.zip
98+
curl -sSL "https://services.gradle.org/distributions/gradle-${{ env.gradle_version }}-bin.zip" -o gradle.zip
8299
unzip -q gradle.zip -d "$HOME/gradle"
83-
echo "$HOME/gradle/gradle-${GRADLE_VERSION}/bin" >> "$GITHUB_PATH"
100+
echo "$HOME/gradle/gradle-${{ env.gradle_version }}/bin" >> "$GITHUB_PATH"
84101
rm gradle.zip
85102
- name: Update test cert for httpbin.org
86103
run: npm run update:cert
@@ -101,8 +118,25 @@ jobs:
101118
- name: Build test app
102119
run: scripts/build-test-app.sh --android --device
103120
- name: Upload artifact to BrowserStack
104-
if: env.BROWSERSTACK_USERNAME != ''
121+
if: ${{ secrets.BROWSERSTACK_USERNAME != '' }}
105122
run: scripts/upload-browserstack.sh --android
106-
- name: Run e2e tests
107-
if: env.BROWSERSTACK_USERNAME != ''
123+
124+
test-android:
125+
needs: build-android
126+
runs-on: ubuntu-latest
127+
steps:
128+
- uses: actions/checkout@v1
129+
if: ${{ env.BROWSERSTACK_USERNAME != '' }}
130+
- name: Install Node.js ${{ env.nodejs }}
131+
if: ${{ env.BROWSERSTACK_USERNAME != '' }}
132+
uses: actions/setup-node@v4
133+
with:
134+
node-version: ${{ env.nodejs }}
135+
cache: npm
136+
cache-dependency-path: package-lock.json
137+
- name: Install node modules
138+
if: ${{ env.BROWSERSTACK_USERNAME != '' }}
139+
run: npm ci
140+
- name: Run e2e tests (Android)
141+
if: ${{ env.BROWSERSTACK_USERNAME != '' }}
108142
run: scripts/test-app.sh --android --device

0 commit comments

Comments
 (0)