7373 HARNESS_IOS_HARNESS_XCTEST_RUNNER_IPA_ARTIFACT_NAME : harness-xctest-agent-ipa
7474 HARNESS_IOS_HARNESS_XCTEST_RUNNER_IPA_PATH : apps/simple-camera/ios/build/devicefarm/HarnessXCTestAgentUITests.ipa
7575 HARNESS_IOS_XCTEST_UI_TEST_PACKAGE_OUTPUT : apps/simple-camera/ios/build/devicefarm/HarnessXCTestUITestPackage.zip
76+ HARNESS_IOS_BUN_ARTIFACT_NAME : harness-ios-bun
77+ HARNESS_IOS_BUN_ARTIFACT_PATH : apps/simple-camera/ios/build/devicefarm/bun/bun
7678 HARNESS_DEVICE_FARM_REPO_ARCHIVE_NAME : react-native-vision-camera.zip
7779 HARNESS_ANDROID_DEVICE_FARM_TEST_PACKAGE_OUTPUT : apps/simple-camera/android/build/devicefarm/AndroidTestPackage.zip
7880 HARNESS_ANDROID_BUNDLE_ID : com.margelo.nitro.camera.example.simple
@@ -218,6 +220,8 @@ jobs:
218220 with :
219221 fetch-depth : 1
220222
223+ - uses : oven-sh/setup-bun@v2
224+
221225 - name : Download Android app artifact
222226 uses : actions/download-artifact@v8
223227 with :
@@ -242,6 +246,18 @@ jobs:
242246 --output "$PACKAGE_PATH" \
243247 HEAD
244248
249+ BUN_BIN="$(command -v bun)"
250+ BUN_PACKAGE_ROOT="$(mktemp -d)"
251+ mkdir -p "$BUN_PACKAGE_ROOT/.devicefarm/bin"
252+ cp "$BUN_BIN" "$BUN_PACKAGE_ROOT/.devicefarm/bin/bun"
253+ chmod +x "$BUN_PACKAGE_ROOT/.devicefarm/bin/bun"
254+ "$BUN_PACKAGE_ROOT/.devicefarm/bin/bun" --version
255+
256+ (
257+ cd "$BUN_PACKAGE_ROOT"
258+ zip -qry "$GITHUB_WORKSPACE/$PACKAGE_PATH" .devicefarm
259+ )
260+
245261 unzip -tq "$PACKAGE_PATH"
246262
247263 - name : Verify Android Device Farm test package
@@ -473,6 +489,26 @@ jobs:
473489 if-no-files-found : error
474490 retention-days : 7
475491
492+ - name : Stage Bun runtime for Device Farm
493+ run : |
494+ set -euo pipefail
495+
496+ BUN_BIN="$(command -v bun)"
497+ BUN_RUNTIME="${{ env.HARNESS_IOS_BUN_ARTIFACT_PATH }}"
498+
499+ mkdir -p "$(dirname "$BUN_RUNTIME")"
500+ cp "$BUN_BIN" "$BUN_RUNTIME"
501+ chmod +x "$BUN_RUNTIME"
502+ "$BUN_RUNTIME" --version
503+
504+ - name : Upload Bun runtime artifact
505+ uses : actions/upload-artifact@v7
506+ with :
507+ name : ${{ env.HARNESS_IOS_BUN_ARTIFACT_NAME }}
508+ path : ${{ env.HARNESS_IOS_BUN_ARTIFACT_PATH }}
509+ if-no-files-found : error
510+ retention-days : 7
511+
476512 test-ios :
477513 name : Test iOS
478514 runs-on : ubuntu-latest
@@ -498,6 +534,12 @@ jobs:
498534 name : ${{ env.HARNESS_IOS_HARNESS_XCTEST_RUNNER_IPA_ARTIFACT_NAME }}
499535 path : ${{ env.HARNESS_PROJECT_ROOT }}/ios/build/devicefarm
500536
537+ - name : Download Bun runtime artifact
538+ uses : actions/download-artifact@v8
539+ with :
540+ name : ${{ env.HARNESS_IOS_BUN_ARTIFACT_NAME }}
541+ path : ${{ env.HARNESS_PROJECT_ROOT }}/ios/build/devicefarm/bun
542+
501543 - name : Verify iOS app artifact
502544 run : test -f ${{ env.HARNESS_IOS_APP_BUILD_OUTPUT }}
503545
@@ -512,6 +554,7 @@ jobs:
512554 PACKAGE_ROOT="$(mktemp -d)"
513555 REPO_ARCHIVE="$PACKAGE_ROOT/${{ env.HARNESS_DEVICE_FARM_REPO_ARCHIVE_NAME }}"
514556 RUNNER_IPA="$PACKAGE_ROOT/$(basename "${{ env.HARNESS_IOS_HARNESS_XCTEST_RUNNER_IPA_PATH }}")"
557+ BUN_BIN="${{ env.HARNESS_IOS_BUN_ARTIFACT_PATH }}"
515558
516559 rm -f "$PACKAGE_PATH"
517560 mkdir -p "$(dirname "$PACKAGE_PATH")"
@@ -521,6 +564,17 @@ jobs:
521564 --output "$REPO_ARCHIVE" \
522565 HEAD
523566
567+ if [[ -f "$BUN_BIN" ]]; then
568+ BUN_PACKAGE_ROOT="$(mktemp -d)"
569+ mkdir -p "$BUN_PACKAGE_ROOT/.devicefarm/bin"
570+ cp "$BUN_BIN" "$BUN_PACKAGE_ROOT/.devicefarm/bin/bun"
571+ chmod +x "$BUN_PACKAGE_ROOT/.devicefarm/bin/bun"
572+ (
573+ cd "$BUN_PACKAGE_ROOT"
574+ zip -qry "$REPO_ARCHIVE" .devicefarm
575+ )
576+ fi
577+
524578 cp "${{ env.HARNESS_IOS_HARNESS_XCTEST_RUNNER_IPA_PATH }}" "$RUNNER_IPA"
525579
526580 (
0 commit comments