Skip to content

ci: add BrowserStack App Automate for iOS Flutter integration tests#1114

Draft
anhappdev wants to merge 3 commits intomasterfrom
anh/ios-browserstack
Draft

ci: add BrowserStack App Automate for iOS Flutter integration tests#1114
anhappdev wants to merge 3 commits intomasterfrom
anh/ios-browserstack

Conversation

@anhappdev
Copy link
Copy Markdown
Collaborator

@anhappdev anhappdev commented Mar 3, 2026

Summary

  • Closes Run integration tests for iOS on BrowserStack #1112
  • Switch iOS CI to automatic code signing with App Store Connect API key, removing manual provisioning profile rotation
  • Add BrowserStack App Automate integration for running iOS Flutter integration tests on real devices with idle timeout
  • Replace FlutterDriver with IntegrationTest API and refactor keep-alive logic to include resource download and cooldown
  • Fix Xcode 15+ watchdog killing integration tests after ~6 minutes

Changes

  • .github/workflows/ios-build-test-macos.yml — Add BrowserStack job matrix, API key signing, and test upload/run steps
  • .github/workflows/scripts/browserstack-app-automate.sh — Extend script with idle timeout and iOS support
  • flutter/integration_test/first_test.dart — Replace FlutterDriver with IntegrationTest API, refactor keep-alive and benchmark flow
  • flutter/ios/RunnerTests/RunnerTests.m — Add XCTest wrapper for Flutter integration tests with Xcode watchdog workaround
  • flutter/ios/ci_scripts/ci_post_clone.sh — Update env defaults for API key signing
  • flutter/ios/ios.mk — Add Makefile targets for iOS build and test
  • docs/ — Add BrowserStack testing guide and iOS workflow setup docs

Test plan

  • Verify iOS BrowserStack CI job triggers on push/PR to master
  • Confirm integration tests run successfully on BrowserStack real devices
  • Verify other workflow triggers (format-and-lint, unit-tests, etc.) are unaffected

Closes #1112

@anhappdev anhappdev requested a review from a team as a code owner March 3, 2026 02:25
@github-actions
Copy link
Copy Markdown

github-actions bot commented Mar 3, 2026

MLCommons CLA bot All contributors have signed the MLCommons CLA ✍️ ✅

@anhappdev anhappdev marked this pull request as draft March 3, 2026 02:44
@sonarqubecloud
Copy link
Copy Markdown

sonarqubecloud bot commented Mar 3, 2026

Quality Gate Failed Quality Gate failed

Failed conditions
C Security Rating on New Code (required ≥ A)

See analysis details on SonarQube Cloud

Catch issues before they fail your Quality Gate with our IDE extension SonarQube for IDE

@anhappdev anhappdev force-pushed the anh/ios-browserstack branch from eb32a20 to daf48cd Compare March 4, 2026 01:17
@anhappdev
Copy link
Copy Markdown
Collaborator Author

anhappdev commented Mar 22, 2026

- Switch iOS CI to automatic code signing with App Store Connect API key
- Add BrowserStack App Automate script with idle timeout
- Replace FlutterDriver with IntegrationTest API and refactor keep-alive logic
- Refactor benchmark flow to include resource download and cooldown within keep-alive
- Fix Xcode 15+ watchdog killing integration tests after ~6 minutes
- Re-enable all GitHub Actions workflow triggers
@anhappdev anhappdev force-pushed the anh/ios-browserstack branch from 5cc640e to 709b3b9 Compare April 15, 2026 08:56
@sonarqubecloud
Copy link
Copy Markdown

Quality Gate Failed Quality Gate failed

Failed conditions
C Security Rating on New Code (required ≥ A)

See analysis details on SonarQube Cloud

Catch issues before they fail your Quality Gate with our IDE extension SonarQube for IDE

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Run integration tests for iOS on BrowserStack

1 participant