From 1c2157ae00b5591153d21475e8bbb3a399d19263 Mon Sep 17 00:00:00 2001 From: Kenneth Geisshirt Date: Thu, 7 Mar 2024 17:12:05 +0100 Subject: [PATCH 1/6] Switch to Xcode 15.2 and CocoaPods 1.15.2 --- .github/workflows/pr-realm-js.yml | 4 ++-- CHANGELOG.md | 1 + 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/workflows/pr-realm-js.yml b/.github/workflows/pr-realm-js.yml index 8afe61dfb8..156bd12b1b 100644 --- a/.github/workflows/pr-realm-js.yml +++ b/.github/workflows/pr-realm-js.yml @@ -263,7 +263,7 @@ jobs: SPAWN_LOGCAT: true BAAS_BRANCH: master # Pin the Xcode version - DEVELOPER_DIR: /Applications/Xcode_14.3.1.app + DEVELOPER_DIR: /Applications/Xcode_15.2.app IOS_DEVICE_NAME: iPhone 14 runs-on: ${{ matrix.variant.runner }} strategy: @@ -351,7 +351,7 @@ jobs: if: ${{ matrix.variant.os == 'ios' }} uses: maxim-lobanov/setup-cocoapods@v1 with: - version: 1.14.3 + version: 1.15.2 - name: Install IOS tools if: ${{ matrix.variant.os == 'ios' }} diff --git a/CHANGELOG.md b/CHANGELOG.md index a70ed5e0b1..d51410393b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -139,6 +139,7 @@ function expectDictionary(value: unknown): asserts value is Realm.Dictionary { ### Internal * Upgraded Realm Core from v14.6.2 to v14.7.0. * Upgraded `@trunk/launcher` from v1.3.0 to v1.3.1 to support Apple's versioning scheme for macOS. +* Switched to Xcode 15.2 and CocoaPods v1.15.2 on GHA. ([#6538](https://github.com/realm/realm-js/issues/6538)) ## 12.8.1 (2024-05-15) From 6b09f7342bf9f9e50bd5a1920c5ed205158f4e5a Mon Sep 17 00:00:00 2001 From: Kenneth Geisshirt Date: Fri, 8 Mar 2024 09:21:14 +0100 Subject: [PATCH 2/6] Don't sign binaries for iOS --- .github/workflows/pr-realm-js.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/pr-realm-js.yml b/.github/workflows/pr-realm-js.yml index 156bd12b1b..75f4f72745 100644 --- a/.github/workflows/pr-realm-js.yml +++ b/.github/workflows/pr-realm-js.yml @@ -59,6 +59,9 @@ jobs: env: REALM_DISABLE_ANALYTICS: 1 NDK_VERSION: 25.1.8937393 + CODE_SIGN_IDENTITY: "" + CODE_SIGNING_REQUIRED: NO + strategy: fail-fast: false matrix: From fb087e78fe8898bc704340720a76f74871d402a7 Mon Sep 17 00:00:00 2001 From: Kenneth Geisshirt Date: Fri, 8 Mar 2024 09:48:34 +0100 Subject: [PATCH 3/6] No code signing when running tests on iOS --- .github/workflows/pr-realm-js.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/pr-realm-js.yml b/.github/workflows/pr-realm-js.yml index 75f4f72745..f0d990d91d 100644 --- a/.github/workflows/pr-realm-js.yml +++ b/.github/workflows/pr-realm-js.yml @@ -268,6 +268,8 @@ jobs: # Pin the Xcode version DEVELOPER_DIR: /Applications/Xcode_15.2.app IOS_DEVICE_NAME: iPhone 14 + CODE_SIGN_IDENTITY: "" + CODE_SIGNING_REQUIRED: NO runs-on: ${{ matrix.variant.runner }} strategy: fail-fast: false From ee1b27c6ebc21fab99f7324566f0d9d0a7272b09 Mon Sep 17 00:00:00 2001 From: Kenneth Geisshirt Date: Fri, 8 Mar 2024 11:52:20 +0100 Subject: [PATCH 4/6] Avoid code signing when running tests (iOS) --- .github/workflows/pr-realm-js.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/pr-realm-js.yml b/.github/workflows/pr-realm-js.yml index f0d990d91d..5c89a7f2ea 100644 --- a/.github/workflows/pr-realm-js.yml +++ b/.github/workflows/pr-realm-js.yml @@ -421,6 +421,8 @@ jobs: USE_CCACHE: 1 USE_BRIDGELESS: 0 # Disabling bridgeless for now MOCHA_REMOTE_CONTEXT: ${{ steps.mocha-env.outputs.context }} + CODE_SIGN_IDENTITY: "" + CODE_SIGNING_REQUIRED: NO timeout-minutes: 75 run: npm run ${{ matrix.variant.target}} --prefix integration-tests/environments/${{ matrix.variant.environment }} From ae711c95c2dfd4f1e3f3346644d98ef1a246a8dc Mon Sep 17 00:00:00 2001 From: Kenneth Geisshirt Date: Tue, 12 Mar 2024 12:51:19 +0100 Subject: [PATCH 5/6] More env var --- .github/workflows/pr-realm-js.yml | 101 ++++++++++++++++++++++++------ 1 file changed, 83 insertions(+), 18 deletions(-) diff --git a/.github/workflows/pr-realm-js.yml b/.github/workflows/pr-realm-js.yml index 5c89a7f2ea..c5be38a297 100644 --- a/.github/workflows/pr-realm-js.yml +++ b/.github/workflows/pr-realm-js.yml @@ -66,20 +66,83 @@ jobs: fail-fast: false matrix: variant: - - { os: linux, runner: ubuntu-latest, arch: x64, artifact-path: packages/realm/prebuilds, test-node: true, test-electron: true } + - { + os: linux, + runner: ubuntu-latest, + arch: x64, + artifact-path: packages/realm/prebuilds, + test-node: true, + test-electron: true, + } - { os: linux, runner: ubuntu-latest, arch: arm, artifact-path: packages/realm/prebuilds } - { os: linux, runner: ubuntu-latest, arch: arm64, artifact-path: packages/realm/prebuilds } - - { os: windows, runner: windows-latest, arch: x64, artifact-path: packages/realm/prebuilds, test-node: true, test-electron: true } + - { + os: windows, + runner: windows-latest, + arch: x64, + artifact-path: packages/realm/prebuilds, + test-node: true, + test-electron: true, + } - { os: windows, runner: windows-2019, arch: ia32, artifact-path: packages/realm/prebuilds } - - { os: android, runner: ubuntu-latest, arch: x86_64, artifact-path: packages/realm/react-native/android/src/main/jniLibs } - - { os: android, runner: ubuntu-latest, arch: armeabi-v7a, artifact-path: packages/realm/react-native/android/src/main/jniLibs } - - { os: android, runner: ubuntu-latest, arch: arm64-v8a, artifact-path: packages/realm/react-native/android/src/main/jniLibs } - - { os: android, runner: ubuntu-latest, arch: x86, artifact-path: packages/realm/react-native/android/src/main/jniLibs } - - { os: darwin, runner: macos-latest, arch: x64, artifact-path: packages/realm/prebuilds, test-node: true, test-electron: true } - - { os: darwin, runner: macos-latest, arch: arm64, artifact-path: packages/realm/prebuilds, test-node: true, test-electron: true } - - { os: ios, runner: macos-latest-xlarge, arch: simulator, artifact-path: packages/realm/react-native/ios/realm-js-ios.xcframework } - - { os: ios, runner: macos-latest-xlarge, arch: catalyst, artifact-path: packages/realm/react-native/ios/realm-js-ios.xcframework } - - { os: ios, runner: macos-latest-xlarge, arch: ios, artifact-path: packages/realm/react-native/ios/realm-js-ios.xcframework } + - { + os: android, + runner: ubuntu-latest, + arch: x86_64, + artifact-path: packages/realm/react-native/android/src/main/jniLibs, + } + - { + os: android, + runner: ubuntu-latest, + arch: armeabi-v7a, + artifact-path: packages/realm/react-native/android/src/main/jniLibs, + } + - { + os: android, + runner: ubuntu-latest, + arch: arm64-v8a, + artifact-path: packages/realm/react-native/android/src/main/jniLibs, + } + - { + os: android, + runner: ubuntu-latest, + arch: x86, + artifact-path: packages/realm/react-native/android/src/main/jniLibs, + } + - { + os: darwin, + runner: macos-latest, + arch: x64, + artifact-path: packages/realm/prebuilds, + test-node: true, + test-electron: true, + } + - { + os: darwin, + runner: macos-latest, + arch: arm64, + artifact-path: packages/realm/prebuilds, + test-node: true, + test-electron: true, + } + - { + os: ios, + runner: macos-latest-xlarge, + arch: simulator, + artifact-path: packages/realm/react-native/ios/realm-js-ios.xcframework, + } + - { + os: ios, + runner: macos-latest-xlarge, + arch: catalyst, + artifact-path: packages/realm/react-native/ios/realm-js-ios.xcframework, + } + - { + os: ios, + runner: macos-latest-xlarge, + arch: ios, + artifact-path: packages/realm/react-native/ios/realm-js-ios.xcframework, + } steps: - name: Checkout code uses: actions/checkout@v4 @@ -129,8 +192,8 @@ jobs: if: ${{ matrix.variant.os == 'android' }} uses: actions/setup-java@v3 with: - distribution: 'zulu' # See 'Supported distributions' for available options - java-version: '11' + distribution: "zulu" # See 'Supported distributions' for available options + java-version: "11" - name: Setup Android SDK if: ${{ matrix.variant.os == 'android' }} @@ -153,7 +216,7 @@ jobs: uses: hendrikmuhs/ccache-action@v1 with: key: ${{ runner.os }}-${{ matrix.variant.os }}-${{ matrix.variant.arch }} - max-size: '2.0G' + max-size: "2.0G" - name: Prepend ccache executables to the PATH if: ${{ runner.os != 'Windows' }} @@ -270,6 +333,7 @@ jobs: IOS_DEVICE_NAME: iPhone 14 CODE_SIGN_IDENTITY: "" CODE_SIGNING_REQUIRED: NO + AD_HOC_CODE_SIGNING_ALLOWED: YES runs-on: ${{ matrix.variant.runner }} strategy: fail-fast: false @@ -321,7 +385,7 @@ jobs: if: ${{ matrix.variant.environment == 'react-native-test-app' }} uses: actions/cache@v4 with: - path: '**/Pods' + path: "**/Pods" key: ${{ runner.os }}-${{matrix.variant.environment}}-${{ hashFiles('**/Podfile.lock', './src/**', './vendor/**') }} restore-keys: | ${{ runner.os }}-${{matrix.variant.environment}}- @@ -342,7 +406,7 @@ jobs: if: ${{ matrix.variant.environment == 'react-native-test-app' }} with: key: ${{ runner.os }}-${{ matrix.variant.os }}-${{ matrix.variant.arch }} - max-size: '2.0G' + max-size: "2.0G" # in CI file timestamps change with every run so instead rely on file content hashing # https://reactnative.dev/docs/build-speed#using-this-approach-on-a-ci @@ -423,6 +487,7 @@ jobs: MOCHA_REMOTE_CONTEXT: ${{ steps.mocha-env.outputs.context }} CODE_SIGN_IDENTITY: "" CODE_SIGNING_REQUIRED: NO + AD_HOC_CODE_SIGNING_ALLOWED: YES timeout-minutes: 75 run: npm run ${{ matrix.variant.target}} --prefix integration-tests/environments/${{ matrix.variant.environment }} @@ -450,8 +515,8 @@ jobs: - uses: actions/setup-java@v3 if: ${{ matrix.variant.os == 'android' }} with: - distribution: 'zulu' # See 'Supported distributions' for available options - java-version: '17' + distribution: "zulu" # See 'Supported distributions' for available options + java-version: "17" - name: Run ${{matrix.variant.target}} (${{ matrix.variant.os}} / ${{ matrix.variant.environment }}) if: ${{ matrix.variant.os == 'android' }} From 43e5625abe80bf5266ddc7ddd7b47157a4366f29 Mon Sep 17 00:00:00 2001 From: Kenneth Geisshirt Date: Wed, 13 Mar 2024 12:13:32 +0100 Subject: [PATCH 6/6] Increasing timeout to 90 min --- .github/workflows/pr-realm-js.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/pr-realm-js.yml b/.github/workflows/pr-realm-js.yml index c5be38a297..1591ed42d8 100644 --- a/.github/workflows/pr-realm-js.yml +++ b/.github/workflows/pr-realm-js.yml @@ -488,7 +488,7 @@ jobs: CODE_SIGN_IDENTITY: "" CODE_SIGNING_REQUIRED: NO AD_HOC_CODE_SIGNING_ALLOWED: YES - timeout-minutes: 75 + timeout-minutes: 90 run: npm run ${{ matrix.variant.target}} --prefix integration-tests/environments/${{ matrix.variant.environment }} - name: Setup Java Gradle cache for android test app