name: Pull Request Checks on: pull_request: branches: - main - develop jobs: build-and-format: name: Build and Format Check runs-on: macos-26 steps: - name: Checkout code uses: actions/checkout@v4 - name: Select Xcode version uses: maxim-lobanov/setup-xcode@v1 with: xcode-version: '26.1.1' - name: Show Xcode version run: xcodebuild -version - name: Install swiftformat run: brew install swiftformat - name: Check code formatting run: | swiftformat --lint . if [ $? -ne 0 ]; then echo "❌ Code formatting issues detected. Please run 'swiftformat .' locally to fix." exit 1 fi - name: Cache Swift Package Manager uses: actions/cache@v4 with: path: | .build ~/Library/Developer/Xcode/DerivedData key: ${{ runner.os }}-spm-${{ hashFiles('**/Package.resolved') }} restore-keys: | ${{ runner.os }}-spm- - name: Resolve Swift Package dependencies run: xcodebuild -resolvePackageDependencies -project OMG.xcodeproj -scheme OMG - name: Build OMG run: | xcodebuild build \ -project OMG.xcodeproj \ -scheme OMG \ -configuration Debug \ -destination 'platform=macOS' \ | xcpretty || exit 1 continue-on-error: false - name: Run OMG Tests run: | xcodebuild test \ -project OMG.xcodeproj \ -scheme OMG \ -configuration Debug \ -destination 'platform=macOS' \ | xcpretty || exit 1 continue-on-error: false