Codex - 5.3 [high] - vanilla setup #2
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| ### PR Integrations Workflow ### | |
| # | |
| # This workflow runs on pull requests and performs: | |
| # - Danger checks | |
| # - Unit Tests | |
| # - Snapshot Tests | |
| # | |
| # Authentication: | |
| # - `github.token` is automatically provided by GitHub. | |
| # | |
| # Notes: | |
| # - To enable Fastlane tests, ensure `CommonFastfile` is imported in your Fastfile | |
| # from the shared ios-fastlane repository. | |
| # - By default, this workflow runs on every PR change. Be mindful of costs when | |
| # using macos-latest. It can also be triggered manually in GitHub. | |
| # - See more trigger options: https://help.github.com/en/actions/reference/events-that-trigger-workflows | |
| # | |
| # File: .github/workflows/pr-integrations.yml | |
| name: Integrations (PR) | |
| on: | |
| workflow_dispatch: | |
| pull_request: | |
| types: [opened, edited, reopened, synchronize, ready_for_review] | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.ref }} | |
| cancel-in-progress: true | |
| # Common environment variables available to all jobs | |
| env: | |
| WORKSPACE: ChemexTimer.xcworkspace | |
| TEST_SCHEME: ChemexTimer | |
| DEVICES: "iPhone 13 Pro" | |
| jobs: | |
| # Quality Checks (Danger) Job | |
| quality-checks: | |
| name: Quality Checks | |
| runs-on: [self-hosted, macOS, mobile-ci] | |
| if: github.event.pull_request.draft == false | |
| timeout-minutes: 20 | |
| steps: | |
| # Checkout the Project Repository | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| # Istall Mise (Dev env setup tool) | |
| - name: Install Mise | |
| uses: jdx/mise-action@v2 | |
| with: | |
| install: true | |
| cache: false # change to true when running on macos-latest instead of self-hosted | |
| experimental: true | |
| # Cache Dependencies | |
| - name: Cache Dependencies | |
| uses: ./.github/actions/cache-dependencies | |
| # Install dependencies (run install script) | |
| - name: Install Dependencies | |
| run: ./setup.swift install | |
| working-directory: iOS | |
| # uncomment if you are using SwiftLint via SPM plugin | |
| # Set SwiftLint version for Danger | |
| # - name: Set SwiftLint version | |
| # run: echo "SWIFTLINT_VERSION=$(cat ./.swiftlint-version)" >> $GITHUB_ENV | |
| # Run Danger | |
| - name: Run Danger | |
| run: bundle exec danger --fail-on-errors=true | |
| working-directory: iOS | |
| env: | |
| GITHUB_TOKEN: ${{ github.token }} | |
| # Unit Tests Job | |
| unit-tests: | |
| name: Unit Tests | |
| runs-on: [self-hosted, macOS, mobile-ci] | |
| if: github.event.pull_request.draft == false | |
| timeout-minutes: 20 | |
| steps: | |
| # Checkout the Project Repository | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| # Istall Mise (Dev env setup tool) | |
| - name: Install Mise | |
| uses: jdx/mise-action@v2 | |
| with: | |
| install: true | |
| cache: false # change to true when running on macos-latest instead of self-hosted | |
| experimental: true | |
| # Cache dependencies | |
| - name: Cache Dependencies | |
| uses: ./.github/actions/cache-dependencies | |
| # Install dependencies (run install script) | |
| - name: Install Dependencies | |
| run: ./setup.swift install | |
| working-directory: iOS | |
| # Run Unit Tests | |
| - name: Run Unit Tests | |
| run: bundle exec fastlane tests without_dependencies:true | |
| working-directory: iOS | |
| env: | |
| TEST_PLAN: UnitTestPlan | |
| # Snapshot Tests Job | |
| snapshot-tests: | |
| name: Snapshot Tests | |
| runs-on: [self-hosted, macOS, mobile-ci] | |
| if: github.event.pull_request.draft == false | |
| timeout-minutes: 20 | |
| continue-on-error: false # <-- red ❌ on failure (still non-blocking) | |
| steps: | |
| # Checkout the Project Repository | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| # Istall Mise (Dev env setup tool) | |
| - name: Install Mise | |
| uses: jdx/mise-action@v2 | |
| with: | |
| install: true | |
| cache: false # change to true when running on macos-latest instead of self-hosted | |
| experimental: true | |
| # Cache dependencies | |
| - name: Cache Dependencies | |
| uses: ./.github/actions/cache-dependencies | |
| # Install dependencies (run install script) | |
| - name: Install Dependencies | |
| run: ./setup.swift install | |
| working-directory: iOS | |
| # Run Snapshots Tests | |
| - name: Run Snapshot tests | |
| run: bundle exec fastlane tests without_dependencies:true | |
| working-directory: iOS | |
| env: | |
| TEST_PLAN: SnapshotTestPlan |