# 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 - name: Build (${{ matrix.configuration }}, iOS Simulator) run: | set -o pipefail xcodebuild \ -project Jarvis.xcodeproj \ -scheme Jarvis \ -configuration ${{ matrix.configuration }} \ -sdk iphonesimulator \ -destination 'generic/platform=iOS Simulator' \ -derivedDataPath build \ CODE_SIGNING_ALLOWED=NO \ CODE_SIGNING_REQUIRED=NO \ build # Compiles the test bundle. No test targets exist yet (see docs/BACKLOG.md #13). # Replace with `xcodebuild test` once a JarvisTests target is added to project.yml. - name: Build for Testing (Debug) if: matrix.configuration == 'Debug' run: | set -o pipefail xcodebuild \ -project Jarvis.xcodeproj \ -scheme Jarvis \ -configuration Debug \ -sdk iphonesimulator \ -destination 'platform=iOS Simulator,OS=latest,name=iPhone 16' \ -derivedDataPath build \ CODE_SIGNING_ALLOWED=NO \ CODE_SIGNING_REQUIRED=NO \ build-for-testing