name: iOS companion on: push: branches: [Dom, secretgood-ios-integration] paths: - 'openpilot/starpilot/companion/ios/**' - 'openpilot/starpilot/galaxy_bluetooth/**' - '.github/workflows/ios-companion.yaml' pull_request: paths: - 'openpilot/starpilot/companion/ios/**' - 'openpilot/starpilot/galaxy_bluetooth/**' - '.github/workflows/ios-companion.yaml' workflow_dispatch: permissions: contents: read concurrency: group: ios-companion-${{ github.event.pull_request.number || github.ref }} cancel-in-progress: true jobs: app: name: Swift tests and iOS Simulator build runs-on: macos-26 timeout-minutes: 25 defaults: run: working-directory: openpilot/starpilot/companion/ios steps: - uses: actions/checkout@v4 with: submodules: false lfs: false persist-credentials: false - uses: actions/setup-node@v4 with: node-version: '22' - name: Run companion regressions env: CI_PRIMARY_REPOSITORY_PATH: ${{ github.workspace }}/openpilot/starpilot/companion/ios run: sh ci_scripts/ci_post_clone.sh - name: Build for iOS Simulator run: >- xcodebuild -project GalaxyBluetooth.xcodeproj -scheme GalaxyBluetooth -configuration Debug -sdk iphonesimulator -destination 'generic/platform=iOS Simulator' -derivedDataPath "$RUNNER_TEMP/galaxy-ios-build" CODE_SIGNING_ALLOWED=NO build bridge: name: Comma Bluetooth bridge tests runs-on: ubuntu-24.04 timeout-minutes: 10 steps: - uses: actions/checkout@v4 with: submodules: false lfs: false persist-credentials: false - uses: actions/setup-python@v5 with: python-version: '3.12' - name: Install bridge test dependencies run: python -m pip install pycryptodome - name: Run bridge regressions run: python -m unittest discover -s openpilot/starpilot/galaxy_bluetooth/tests -v