diff --git a/.github/workflows/browserstack-e2e-android.yml b/.github/workflows/browserstack-e2e-android.yml index 8fd117948..f97fa148b 100644 --- a/.github/workflows/browserstack-e2e-android.yml +++ b/.github/workflows/browserstack-e2e-android.yml @@ -146,12 +146,18 @@ jobs: # across all included modules so the directories are present. run: | cd android && ./gradlew \ + :ping-identity_rn-binding:generateCodegenArtifactsFromSchema \ :ping-identity_rn-browser:generateCodegenArtifactsFromSchema \ + :ping-identity_rn-device-client:generateCodegenArtifactsFromSchema \ :ping-identity_rn-device-id:generateCodegenArtifactsFromSchema \ :ping-identity_rn-device-profile:generateCodegenArtifactsFromSchema \ + :ping-identity_rn-external-idp:generateCodegenArtifactsFromSchema \ + :ping-identity_rn-fido:generateCodegenArtifactsFromSchema \ :ping-identity_rn-journey:generateCodegenArtifactsFromSchema \ :ping-identity_rn-logger:generateCodegenArtifactsFromSchema \ + :ping-identity_rn-oath:generateCodegenArtifactsFromSchema \ :ping-identity_rn-oidc:generateCodegenArtifactsFromSchema \ + :ping-identity_rn-push:generateCodegenArtifactsFromSchema \ :ping-identity_rn-storage:generateCodegenArtifactsFromSchema \ :react-native-async-storage_async-storage:generateCodegenArtifactsFromSchema diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 27c9ccc94..775bfbc88 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -104,10 +104,7 @@ jobs: secrets: inherit # Run Android E2E tests on BrowserStack real devices after Android unit tests pass. - # Blocked: BrowserStack cloud driver does not yet support Detox 20.43+. - # Remove the `if false` guard once the upstream fix is released. browserstack-android: - if: false needs: android-unit-tests permissions: contents: read diff --git a/.yarn/install-state.gz b/.yarn/install-state.gz index 9bf917b23..18f6f08b2 100644 Binary files a/.yarn/install-state.gz and b/.yarn/install-state.gz differ diff --git a/PingTestRunner/.detoxrc.js b/PingTestRunner/.detoxrc.js index a8ae83e9f..94350771d 100644 --- a/PingTestRunner/.detoxrc.js +++ b/PingTestRunner/.detoxrc.js @@ -14,15 +14,10 @@ module.exports = { video: 'failing', }, }, - behavior: { - cleanup: { - shutdownDevice: false, - }, - }, testRunner: { args: { - $0: 'jest', config: 'e2e/jest.config.js', + maxWorkers: process.env.CI ? 1 : undefined, }, jest: { setupTimeout: 300000, @@ -44,7 +39,7 @@ module.exports = { build: 'cd android && ./gradlew assembleRelease assembleAndroidTest -DtestBuildType=release', }, - // BrowserStack cloud app — URLs are resolved after uploading binaries to BrowserStack. + // BrowserStack cloud app — IDs are resolved after uploading binaries to BrowserStack. 'android.cloud': { type: 'android.cloud', app: process.env.BROWSERSTACK_APP_URL, diff --git a/PingTestRunner/android/app/build.gradle b/PingTestRunner/android/app/build.gradle index a1940bb37..1bd593e64 100644 --- a/PingTestRunner/android/app/build.gradle +++ b/PingTestRunner/android/app/build.gradle @@ -74,6 +74,12 @@ android { proguardFile "${rootProject.projectDir}/../node_modules/detox/android/detox/proguard-rules-app.pro" } } + packaging { + resources { + excludes += "/META-INF/{AL2.0,LGPL2.1}" + excludes += "/META-INF/versions/9/OSGI-INF/MANIFEST.MF" + } + } } dependencies { diff --git a/PingTestRunner/android/settings.gradle b/PingTestRunner/android/settings.gradle index 7c07059f0..666523fb6 100644 --- a/PingTestRunner/android/settings.gradle +++ b/PingTestRunner/android/settings.gradle @@ -33,10 +33,14 @@ include(":ping-identity_rn-browser") project(":ping-identity_rn-browser").projectDir = file("../../packages/browser/android") include(":ping-identity_rn-core") project(":ping-identity_rn-core").projectDir = file("../../packages/core/android") +include(":ping-identity_rn-device-client") +project(":ping-identity_rn-device-client").projectDir = file("../../packages/device-client/android") include(":ping-identity_rn-device-id") project(":ping-identity_rn-device-id").projectDir = file("../../packages/device-id/android") include(":ping-identity_rn-device-profile") project(":ping-identity_rn-device-profile").projectDir = file("../../packages/device-profile/android") +include(":ping-identity_rn-external-idp") +project(":ping-identity_rn-external-idp").projectDir = file("../../packages/external-idp/android") include(":ping-identity_rn-fido") project(":ping-identity_rn-fido").projectDir = file("../../packages/fido/android") include(":ping-identity_rn-journey") diff --git a/PingTestRunner/package.json b/PingTestRunner/package.json index 764cfa70c..add5ffe5c 100644 --- a/PingTestRunner/package.json +++ b/PingTestRunner/package.json @@ -21,7 +21,7 @@ "test:bs:android": "NODE_NO_WARNINGS=1 detox test --configuration android.bs --loglevel trace", "test:e2e:ios": "sh -c 'export DETOX_SERVER_PORT=${DETOX_SERVER_PORT:-8099}; export NODE_NO_WARNINGS=1; yarn e2e:android:free-detox-port && detox test --configuration ios.sim \"$@\"' --", "build:e2e:android": "detox build --configuration android.emu", - "build:bs:android": "cd android && ./gradlew assembleRelease assembleAndroidTest -DtestBuildType=release", + "build:bs:android": "cd android && ./gradlew :app:assembleRelease :app:assembleAndroidTest -DtestBuildType=release", "build:e2e:ios": "detox build --configuration ios.sim", "build:bs:ios:archive": "sh ./scripts/build-bs-ios-archive.sh", "build:bs:ios:ipa": "sh ./scripts/build-bs-ios-ipa.sh", @@ -63,7 +63,7 @@ "@testing-library/react-native": "^13.3.3", "@types/jest": "^29.5.14", "@types/react": "^19.1.0", - "detox": "npm:@browserstack/detox@20.38.0-cloud.1", + "detox": "npm:@browserstack/detox@20.38.0-cloud.3", "dotenv": "^16.4.7", "eslint": "^8.19.0", "jest": "^29.7.0", diff --git a/yarn.lock b/yarn.lock index ab7891456..5970dafd4 100644 --- a/yarn.lock +++ b/yarn.lock @@ -6442,9 +6442,9 @@ __metadata: languageName: node linkType: hard -"detox@npm:@browserstack/detox@20.38.0-cloud.1": - version: 20.38.0-cloud.1 - resolution: "@browserstack/detox@npm:20.38.0-cloud.1" +"detox@npm:@browserstack/detox@20.38.0-cloud.3": + version: 20.38.0-cloud.3 + resolution: "@browserstack/detox@npm:20.38.0-cloud.3" dependencies: "@wix-pilot/core": "npm:^3.2.2" "@wix-pilot/detox": "npm:^1.0.11" @@ -6490,7 +6490,7 @@ __metadata: optional: true bin: detox: local-cli/cli.js - checksum: 10c0/5f59b76c1b9427132b5b3068cdab5950893b1d98d44f7418d0f2563853d618b62b8db53be762bedf73793f15eb5b51fce75cab62e5aa34bb65773494c18683d3 + checksum: 10c0/e49a2c37146b3e6cbf2221fea32b29ace3dda75d6bcaae6a531b3827a1b8a4f99556dd7b858881d4eace49df0db3249c36aa8d786b076cbb05e323eb25e2f39f languageName: node linkType: hard @@ -12554,7 +12554,7 @@ __metadata: "@testing-library/react-native": "npm:^13.3.3" "@types/jest": "npm:^29.5.14" "@types/react": "npm:^19.1.0" - detox: "npm:@browserstack/detox@20.38.0-cloud.1" + detox: "npm:@browserstack/detox@20.38.0-cloud.3" dotenv: "npm:^16.4.7" eslint: "npm:^8.19.0" jest: "npm:^29.7.0"