# Gitea Actions reads .github/workflows/ (as well as .gitea/workflows/). # Keeping everything here avoids running two duplicate pipelines. # # Runner requirement: a Mac with Xcode 16+ registered as a Gitea act_runner # with labels "self-hosted" and "macos" (see CONTRIBUTING.md → Runner Setup). name: CI on: pull_request: branches: [main, develop] push: branches: [develop] concurrency: group: ci-${{ github.ref }} cancel-in-progress: true jobs: build: name: Build · ${{ matrix.configuration }} runs-on: [self-hosted, macos] strategy: fail-fast: false matrix: configuration: [Debug, Release] steps: - uses: actions/checkout@v4 - name: Xcode version run: xcodebuild -version - name: Install XcodeGen run: brew list xcodegen &>/dev/null || brew install xcodegen - name: Generate Xcode project run: xcodegen generate # Device SDK, signing disabled: CoreSimulator on the runner Mac is unreliable # (Xcode on an external volume can't discover simulator runtimes and hangs). # Compilation coverage is identical; no tests run on simulator yet anyway. - name: Build (${{ matrix.configuration }}, iOS device SDK) run: | set -o pipefail xcodebuild \ -project Jarvis.xcodeproj \ -scheme Jarvis \ -configuration ${{ matrix.configuration }} \ -sdk iphoneos \ -destination 'generic/platform=iOS' \ -derivedDataPath build \ COMPILATION_CACHE_ENABLE_CACHING=NO \ CODE_SIGNING_ALLOWED=NO \ CODE_SIGNING_REQUIRED=NO \ build # No test targets exist yet (see docs/BACKLOG.md #13). When a JarvisTests # target is added, switch this to `xcodebuild test` on a simulator — after # fixing CoreSimulator on the runner (Xcode must live on the boot volume).