Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 10 additions & 6 deletions .github/workflows/e2e-v2.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ env:
SENTRY_AUTH_TOKEN: ${{ secrets.SENTRY_AUTH_TOKEN }}
MAESTRO_VERSION: '2.0.10'
IOS_DEVICE: 'iPhone 16'
IOS_VERSION: '18.1'
IOS_VERSION: '>=18.0'

jobs:
ready-to-merge-gate:
Expand Down Expand Up @@ -47,7 +47,7 @@ jobs:
platform: ["ios", "android"]
include:
- platform: ios
runs-on: macos-14
runs-on: macos-15
name: iOS
appPlain: performance-tests/test-app-plain.ipa
- platform: android
Expand All @@ -61,7 +61,7 @@ jobs:
- uses: ./.github/actions/disk-cleanup
if: ${{ matrix.platform == 'android' }}

- run: sudo xcode-select -s /Applications/Xcode_16.2.app/Contents/Developer
- run: sudo xcode-select -s /Applications/Xcode_16.4.app/Contents/Developer
if: ${{ matrix.platform == 'ios' }}

- run: npm i -g corepack
Expand Down Expand Up @@ -188,8 +188,8 @@ jobs:
include:
- platform: ios
rn-version: '0.81.0'
xcode-version: '16.2'
runs-on: macos-14
xcode-version: '16.4'
runs-on: macos-15
- platform: ios
rn-version: '0.71.11'
xcode-version: '14.2'
Expand Down Expand Up @@ -319,7 +319,7 @@ jobs:
include:
- platform: ios
rn-version: '0.81.0'
runs-on: macos-14
runs-on: macos-15
- platform: android
runs-on: ubuntu-latest

Expand Down Expand Up @@ -401,6 +401,10 @@ jobs:
-timezone US/Pacific
script: ./dev-packages/e2e-tests/cli.mjs ${{ matrix.platform }} --test

- name: List available iOS simulators
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm thinking of leaving this since the device availability seems to change and it will be handy for debugging related failures.

if: ${{ matrix.platform == 'ios' }}
run: xcrun simctl list devices available

- uses: futureware-tech/simulator-action@dab10d813144ef59b48d401cd95da151222ef8cd # pin@v4
if: ${{ matrix.platform == 'ios' }}
with:
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/native-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ on:
- release/**
pull_request:
types: [opened, synchronize, reopened, labeled]

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: ${{ github.ref != 'refs/heads/main' }}
Expand All @@ -27,7 +27,7 @@ jobs:

test-ios:
name: ios
runs-on: macos-14
runs-on: macos-15
needs: [diff_check]
if: ${{ needs.diff_check.outputs.skip_ci != 'true' }}
steps:
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/sample-application-expo.yml
Original file line number Diff line number Diff line change
Expand Up @@ -44,8 +44,8 @@ jobs:
build-type: ['dev', 'production']
include:
- platform: ios
xcode-version: '16.2'
runs-on: macos-14
xcode-version: '16.4'
runs-on: macos-15
- platform: android
runs-on: ubuntu-latest
- platform: web
Expand Down
8 changes: 4 additions & 4 deletions .github/workflows/sample-application.yml
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ env:
ANDROID_APP_ARCHIVE_PATH: sentry-react-native-sample.apk.zip
REACT_NATIVE_SAMPLE_PATH: samples/react-native
IOS_DEVICE: 'iPhone 16'
IOS_VERSION: '18.1'
IOS_VERSION: '>=18.0'
ANDROID_API_LEVEL: '30'

jobs:
Expand Down Expand Up @@ -52,8 +52,8 @@ jobs:
build-type: ['dev', 'production']
include:
- platform: ios
xcode-version: '16.2'
runs-on: macos-14
xcode-version: '16.4'
runs-on: macos-15
- platform: macos
runs-on: macos-15
- platform: android
Expand Down Expand Up @@ -232,7 +232,7 @@ jobs:
matrix:
include:
- platform: ios
runs-on: macos-14
runs-on: macos-15
rn-architecture: 'new'
ios-use-frameworks: 'no-frameworks'
build-type: 'production'
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/testflight.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,12 +14,12 @@ jobs:

upload_to_testflight:
name: Build and Upload React Native Sample to Testflight
runs-on: macos-14
runs-on: macos-15
needs: [diff_check]
if: ${{ needs.diff_check.outputs.skip_ci != 'true' }}
steps:
- uses: actions/checkout@v6
- run: sudo xcode-select -s /Applications/Xcode_16.2.app/Contents/Developer
- run: sudo xcode-select -s /Applications/Xcode_16.4.app/Contents/Developer
- uses: ruby/setup-ruby@v1
with:
working-directory: samples/react-native
Expand Down
3 changes: 3 additions & 0 deletions dev-packages/e2e-tests/maestro/feedback/captureFlow-ios.yml
Original file line number Diff line number Diff line change
Expand Up @@ -38,6 +38,9 @@ jsEngine: graaljs
id: 'sentry-feedback-take-screenshot-button'
- tapOn:
id: 'sentry-feedback-take-screenshot-button'
- scrollUntilVisible:
element:
id: 'sentry-feedback-screenshot-button'
- tapOn:
id: 'sentry-feedback-screenshot-button'

Expand Down
36 changes: 33 additions & 3 deletions dev-packages/e2e-tests/patch-scripts/rn.patch.podfile.js
Original file line number Diff line number Diff line change
Expand Up @@ -21,13 +21,16 @@ if (enableHermes === null) {
throw new Error('Invalid engine');
}

// Optional iOS version argument, defaults to '15.1' due to Cocoa SDK V9 and RN 0.81.0 requirement
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This was picked from #5369

const iosVersion = args['ios-version'] || '15.1';

debug.log('Patching Podfile', args['pod-file']);
const content = fs.readFileSync(args['pod-file'], 'utf8');
let content = fs.readFileSync(args['pod-file'], 'utf8');

const isHermesEnabled = content.includes(':hermes_enabled => true,');
const shouldPatch = enableHermes !== isHermesEnabled;
if (shouldPatch) {
const patched = content.replace(
content = content.replace(
/:hermes_enabled.*/,
enableHermes ? ':hermes_enabled => true,' : ':hermes_enabled => false,',
);
Expand All @@ -36,7 +39,34 @@ if (shouldPatch) {
} else {
debug.log('Patching Podfile for JSC');
}
fs.writeFileSync(args['pod-file'], patched);
}

// Patch iOS version
const platformPattern = /platform :ios, (min_ios_version_supported|['"][0-9.]+['"])/;
const currentMatch = content.match(platformPattern);

if (currentMatch) {
const currentValue = currentMatch[1];
const shouldPatchVersion = currentValue === 'min_ios_version_supported' ||
currentValue !== `'${iosVersion}'`;

if (shouldPatchVersion) {
content = content.replace(
platformPattern,
`platform :ios, '${iosVersion}'`
);
debug.log(`Patching iOS version to ${iosVersion} (was: ${currentValue})`);
} else {
debug.log(`iOS version already set to ${iosVersion}`);
}
} else {
debug.log('Warning: Could not find platform :ios line to patch');
}

// Write the file if any changes were made
if (shouldPatch || currentMatch) {
fs.writeFileSync(args['pod-file'], content);
debug.log('Podfile patched successfully!');
} else {
debug.log('Podfile is already patched!');
}
Loading