# iOS CI skeleton (T-iOS-1). T-iOS-16 hardens this: real Node-server # integration tests + the per-package 80% coverage gate (PLAN_IOS_CLIENT ยง9). name: ios on: push: paths: - "ios/**" - ".github/workflows/ios.yml" pull_request: paths: - "ios/**" - ".github/workflows/ios.yml" jobs: package-tests: runs-on: macos-15 strategy: fail-fast: false matrix: package: [WireProtocol, SessionCore, HostRegistry, APIClient] steps: - uses: actions/checkout@v4 - name: Select Xcode 16.3 run: sudo xcode-select -s /Applications/Xcode_16.3.app/Contents/Developer - name: swift test (${{ matrix.package }}) run: swift test --package-path ios/Packages/${{ matrix.package }} app-build: runs-on: macos-15 steps: - uses: actions/checkout@v4 - name: Select Xcode 16.3 run: sudo xcode-select -s /Applications/Xcode_16.3.app/Contents/Developer - name: Install XcodeGen run: brew install xcodegen - name: Generate project run: cd ios && xcodegen generate - name: Build (iPhone 16 simulator) run: | xcodebuild -project ios/WebTerm.xcodeproj -scheme WebTerm \ -destination 'platform=iOS Simulator,name=iPhone 16' \ CODE_SIGNING_ALLOWED=NO build - name: swift test (IntegrationTests scaffold) run: swift test --package-path ios/IntegrationTests