Skip to content

Commit 6aa917b

Browse files
authored
ci: use macos-15 (#1188)
## 📜 Description Use macos-15 as a main runner for ios-related jobs. ## 💡 Motivation and Context I anticipate that macos-14 soon will be deprecated (I see that sometimes it may take some time for a runner to pick up a job). So I decided to pro-actively migrate all my jobs that depends on `macos-14` to `macos-15`. Additionally I've tried to enable `ios-18` tests again. It's almost a year since a release, and now I think all dependencies (GH actions runners, detox etc.) are stable enough to bring those tests back 😊 ## 📢 Changelog <!-- High level overview of important changes --> <!-- For example: fixed status bar manipulation; added new types declarations; --> <!-- If your changes don't affect one of platform/language below - then remove this platform/language --> ### CI - use `macos-15` for all jobs; - return back `ios-18` tests; - use `yeetd` as it looks like it saves 2-3 additional minutes; ### E2E - increase diff to `0.27` for `KeyboardAvoidingView` test (to improve iOS 18 stability); ## 🤔 How Has This Been Tested? Tested via CI. ## 📸 Screenshots (if appropriate): <img width="932" height="273" alt="image" src="https://github.com/user-attachments/assets/fb3ccfb4-c2e9-421f-a97b-7bf81612068c" /> ## 📝 Checklist - [x] CI successfully passed - [x] I added new mocks and corresponding unit-tests if library API was changed
1 parent a3bcf27 commit 6aa917b

6 files changed

Lines changed: 22 additions & 14 deletions

File tree

.github/workflows/build-ios-fabric.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ on:
2929
jobs:
3030
build:
3131
name: Build iOS FabricExample App
32-
runs-on: macOS-14
32+
runs-on: macOS-15
3333
defaults:
3434
run:
3535
working-directory: FabricExample/ios
@@ -38,7 +38,7 @@ jobs:
3838

3939
- uses: maxim-lobanov/setup-xcode@v1
4040
with:
41-
xcode-version: "16.2"
41+
xcode-version: "16.4"
4242

4343
- name: Get yarn cache directory path
4444
id: fabric-yarn-cache-dir-path

.github/workflows/build-ios.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ on:
2727
jobs:
2828
build:
2929
name: Build iOS Example App
30-
runs-on: macOS-14
30+
runs-on: macOS-15
3131
defaults:
3232
run:
3333
working-directory: example/ios
@@ -36,7 +36,7 @@ jobs:
3636

3737
- uses: maxim-lobanov/setup-xcode@v1
3838
with:
39-
xcode-version: "16.2"
39+
xcode-version: "16.4"
4040

4141
- name: Get yarn cache directory path
4242
id: yarn-cache-dir-path

.github/workflows/ios-e2e-test.yml

Lines changed: 15 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ on:
2424
jobs:
2525
build:
2626
name: 🏗️ Build E2E ipa
27-
runs-on: macos-14
27+
runs-on: macos-15
2828
timeout-minutes: 60
2929
env:
3030
WORKING_DIRECTORY: example
@@ -39,7 +39,7 @@ jobs:
3939
cache: "yarn"
4040
- uses: maxim-lobanov/setup-xcode@v1
4141
with:
42-
xcode-version: "16.2"
42+
xcode-version: "16.4"
4343
- name: Get Xcode version
4444
run: xcodebuild -version
4545
- name: Save yarn cache directory path
@@ -103,11 +103,12 @@ jobs:
103103
cancel-in-progress: true
104104
strategy:
105105
matrix:
106-
devices: [
107-
{ ios: 15, xcode: "15.4", macos: 14, runtime: "15.5" },
108-
{ ios: 16, xcode: "15.4", macos: 14, runtime: "16.4" },
109-
{ ios: 17, xcode: "15.4", macos: 14 },
110-
# { ios: 18, xcode: "16.0", macos: 15 },
106+
devices:
107+
[
108+
{ ios: 15, xcode: "16.4", macos: 15, runtime: "15.5" },
109+
{ ios: 16, xcode: "16.4", macos: 15, runtime: "16.4" },
110+
{ ios: 17, xcode: "16.4", macos: 15, runtime: "17.5" },
111+
{ ios: 18, xcode: "16.4", macos: 15 },
111112
]
112113
needs: build
113114
steps:
@@ -154,6 +155,13 @@ jobs:
154155
run: yarn install --cwd e2e
155156
- name: Use software keyboard
156157
run: defaults write com.apple.iphonesimulator ConnectHardwareKeyboard -bool NO
158+
# https://bitrise.io/blog/post/xcode-15-performance-regressions
159+
- name: Install yeetd
160+
run: |
161+
defaults write dev.biscuit.yeetd killapsd true
162+
wget https://github.com/biscuitehh/yeetd/releases/download/1.0/yeetd-normal.pkg
163+
sudo installer -pkg yeetd-normal.pkg -target /
164+
yeetd &
157165
- name: Test app
158166
working-directory: e2e
159167
run: SOFT_CHECK=false yarn test-example:ios-${{ matrix.devices.ios }}

.github/workflows/verify-ios.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ jobs:
6565

6666
- uses: maxim-lobanov/setup-xcode@v1
6767
with:
68-
xcode-version: "16.3"
68+
xcode-version: "16.4"
6969

7070
- name: Install xcpretty
7171
run: gem install xcpretty

e2e/.detoxrc.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,7 @@ module.exports = {
6666
type: "ios.simulator",
6767
device: {
6868
type: "iPhone 16 Pro",
69-
os: "iOS 18.4",
69+
os: "iOS 18.5",
7070
},
7171
},
7272
attached: {

e2e/kit/007-keyboard-avoiding-view.e2e.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ describe("`KeyboardAvoidingView` specification", () => {
2020
it("should have expected UI when keyboard closed - package/padding", async () => {
2121
await waitForExpect(async () => {
2222
// 0.25 because on iOS Home indicator sometimes may have different colors per different runs
23-
await expectBitmapsToBeEqual("AvoidingViewPackagePaddingInitial", 0.25);
23+
await expectBitmapsToBeEqual("AvoidingViewPackagePaddingInitial", 0.27);
2424
});
2525
});
2626

0 commit comments

Comments
 (0)