name: "Build 🔨" on: push: branches: [ main ] pull_request: types: - opened - reopened - synchronize - ready_for_review branches: [ main ] jobs: build: name: "Build 🔨" if: github.event.pull_request.draft == false strategy: matrix: scheme: - "Swiftfin" - "Swiftfin tvOS" runs-on: macos-15 steps: - name: Checkout uses: actions/checkout@v4 - name: Install SwiftGen run: brew install swiftgen - name: Set Xcode Version run: sudo xcode-select -s "/Applications/Xcode_16.app" - name: Cache Carthage uses: actions/cache@v4 id: carthage-cache with: path: Carthage key: ${{ runner.os }}-carthage-${{ hashFiles('**/Cartfile.resolved') }} restore-keys: ${{ runner.os }}-carthage- - name: Update Carthage run: carthage update --use-xcframeworks --cache-builds # FIXME: caches would keep failed compiles? # - name: Cache Swift packages # uses: actions/cache@v4 # with: # path: PackageCache # key: ${{ runner.os }}-${{ matrix.scheme }}-spm-${{ hashFiles('**/Package.resolved') }} # restore-keys: ${{ runner.os }}-${{ matrix.scheme }}-spm- - name: Build uses: nick-fields/retry@v2 with: max_attempts: 3 retry_on: error timeout_minutes: 60 command: | xcodebuild build -project "Swiftfin.xcodeproj" \ -scheme "${{ matrix.scheme }}" \ -clonedSourcePackagesDirPath PackageCache \ CODE_SIGN_IDENTITY="" CODE_SIGNING_REQUIRED=NO CODE_SIGNING_ALLOWED=NO