Skip to content

Commit a476c9c

Browse files
thymikeecursoragent
andcommitted
ci: simplify iOS workflow caching and drop redundant prebuild workflow
- Remove standalone ios-runner-prebuild.yml (redundant — ios.yml builds on cache miss) - Switch from actions/cache/restore to actions/cache (auto-saves on miss) - Drop restore-keys and -stable suffix (no longer needed without prebuild workflow) - Remove UDID resolution step (test falls back to --platform ios) - Use point-free shouldRetry for isTransientSimulatorLaunchFailure Co-authored-by: Cursor <cursoragent@cursor.com>
1 parent fef2e6d commit a476c9c

3 files changed

Lines changed: 4 additions & 108 deletions

File tree

.github/workflows/ios-runner-prebuild.yml

Lines changed: 0 additions & 80 deletions
This file was deleted.

.github/workflows/ios.yml

Lines changed: 3 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -45,41 +45,17 @@ jobs:
4545
id: source-hash
4646
run: echo "value=${{ hashFiles('ios-runner/**', 'package.json', 'pnpm-lock.yaml') }}" >> "$GITHUB_OUTPUT"
4747

48-
- name: Restore iOS runner prebuilt cache
48+
- name: Cache iOS runner prebuilt
4949
id: restore-prebuilt
50-
uses: actions/cache/restore@0057852bfaa89a56745cba8c7296529d2fc39830 # v4.2.3
50+
uses: actions/cache@0057852bfaa89a56745cba8c7296529d2fc39830 # v4.2.3
5151
with:
5252
path: ${{ env.DERIVED_DATA_PATH }}
53-
key: ios-runner-prebuilt-${{ steps.xcode.outputs.key }}-ios-${{ env.IOS_RUNTIME_VERSION }}-${{ steps.source-hash.outputs.value }}-stable
54-
restore-keys: |
55-
ios-runner-prebuilt-${{ steps.xcode.outputs.key }}-ios-${{ env.IOS_RUNTIME_VERSION }}-${{ steps.source-hash.outputs.value }}-
53+
key: ios-runner-prebuilt-${{ steps.xcode.outputs.key }}-ios-${{ env.IOS_RUNTIME_VERSION }}-${{ steps.source-hash.outputs.value }}
5654

5755
- name: Resolve agent-device home
5856
id: ios-agent-home
5957
run: echo "dir=$HOME/.agent-device" >> "$GITHUB_OUTPUT"
6058

61-
- name: Resolve iOS 26.2 simulator UDID
62-
run: |
63-
set -euo pipefail
64-
UDID="$(
65-
xcrun simctl list devices -j | node -e "
66-
const fs = require('node:fs');
67-
const payload = JSON.parse(fs.readFileSync(0, 'utf8'));
68-
const runtimeVersion = process.env.IOS_RUNTIME_VERSION;
69-
const runtimeKey = 'com.apple.CoreSimulator.SimRuntime.iOS-' + runtimeVersion.replace(/\./g, '-');
70-
const devices = payload.devices?.[runtimeKey] ?? [];
71-
const available = devices.filter((d) => d.isAvailable && d.name === 'iPhone 17 Pro');
72-
const preferred = available.find((d) => d.state === 'Booted') ?? available[0];
73-
if (!preferred?.udid) process.exit(1);
74-
process.stdout.write(preferred.udid);
75-
"
76-
)"
77-
if [ -z "$UDID" ]; then
78-
echo "Unable to resolve iOS 26.2 iPhone 17 Pro simulator UDID" >&2
79-
exit 1
80-
fi
81-
echo "AGENT_DEVICE_IOS_TEST_UDID=$UDID" >> "$GITHUB_ENV"
82-
8359
- name: Build iOS integration artifacts
8460
if: steps.restore-prebuilt.outputs.cache-hit != 'true'
8561
run: |

src/platforms/ios/index.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -64,7 +64,7 @@ export async function openIosApp(device: DeviceInfo, app: string): Promise<void>
6464
baseDelayMs: 500,
6565
maxDelayMs: 2000,
6666
jitter: 0.2,
67-
shouldRetry: (error) => isTransientSimulatorLaunchFailure(error),
67+
shouldRetry: isTransientSimulatorLaunchFailure,
6868
},
6969
);
7070
return;

0 commit comments

Comments
 (0)