name: iOS CI on: push: branches: [main] paths: - "Lendair/**" - ".github/workflows/ios-ci.yml" pull_request: branches: [main] paths: - "Lendair/**" - ".github/workflows/ios-ci.yml" concurrency: group: ios-ci-${{ github.ref }} cancel-in-progress: true jobs: lint: name: Swift Lint runs-on: macos-latest steps: - name: Checkout uses: actions/checkout@v4 - name: Select Xcode run: sudo xcode-select -s /Applications/Xcode_15.4.app - name: Swift Format Check run: | swift format --format --recursive Lendair/Models Lendair/Services Lendair/ViewModels Lendair/Views 2>/dev/null || true if ! swift format --lint --recursive Lendair/Models Lendair/Services Lendair/ViewModels Lendair/Views 2>/dev/null; then echo "::warning::Swift format issues detected (non-blocking)" fi build: name: Build runs-on: macos-latest needs: lint steps: - name: Checkout uses: actions/checkout@v4 - name: Select Xcode run: sudo xcode-select -s /Applications/Xcode_15.4.app - name: Swift version run: swift --version - name: Resolve dependencies run: swift package resolve working-directory: Lendair - name: Build run: swift build -c release working-directory: Lendair test: name: Test runs-on: macos-latest needs: build steps: - name: Checkout uses: actions/checkout@v4 - name: Select Xcode run: sudo xcode-select -s /Applications/Xcode_15.4.app - name: Run tests run: swift test working-directory: Lendair