name: ios on: push: branches: - main paths: - 'ios/**' - 'shared/fixtures/**' - '.github/workflows/ios.yml' pull_request: paths: - 'ios/**' - 'shared/fixtures/**' - '.github/workflows/ios.yml' concurrency: group: ios-${{ github.ref }} cancel-in-progress: true jobs: package-tests: runs-on: macos-15 steps: - uses: actions/checkout@v4 - name: Show toolchain versions run: | xcodebuild -version swift --version - name: Run HapiKit package tests run: swift test --package-path ios/Packages/HapiKit app-build: runs-on: macos-15 steps: - uses: actions/checkout@v4 - name: Show toolchain versions run: xcodebuild -version - name: Check manual localization catalog env: PYTHONDONTWRITEBYTECODE: '1' run: | python3 ios/scripts/localizations.py --check python3 -m unittest discover -s ios/scripts/tests -p 'test_localizations.py' - name: Build Hapi app for iOS Simulator run: xcodebuild build -project ios/Hapi.xcodeproj -scheme Hapi -destination 'generic/platform=iOS Simulator' CODE_SIGNING_ALLOWED=NO - name: Transcript layout regression tests run: ios/scripts/test-transcript.sh - name: iPad navigation and layout regression tests env: HAPI_TEST_DEVICE_TYPE: com.apple.CoreSimulator.SimDeviceType.iPad-Air-11-inch-M2 run: >- ios/scripts/test-transcript.sh -only-testing:HapiTests/SessionNavigationTests -only-testing:HapiTests/SessionSplitPresentationTests -only-testing:HapiTests/TranscriptTypographyTests -only-testing:HapiTests/TranscriptGeometryTests - name: Verify localization catalog was not rewritten run: git diff --exit-code -- ios/Hapi/Resources/Localizable.xcstrings