chore: ci-testing-3 #26
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
| name: Build | |
| on: | |
| pull_request: | |
| branches: ["flutter"] | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.ref }} | |
| cancel-in-progress: true | |
| env: | |
| ANDROID_EMULATOR_API: 34 | |
| ANDROID_EMULATOR_ARCH: x86_64 | |
| IPHONE_DEVICE_MODEL: iPhone 16 Pro Max | |
| IPAD_DEVICE_MODEL: iPad Pro 13-inch (M4) | |
| jobs: | |
| changes: | |
| name: Detect Code Changes | |
| runs-on: ubuntu-latest | |
| outputs: | |
| code: ${{ steps.filter.outputs.code }} | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - id: filter | |
| uses: dorny/paths-filter@v3 | |
| with: | |
| filters: | | |
| code: | |
| - '**.dart' | |
| - 'android/**' | |
| - 'ios/**' | |
| - 'lib/**' | |
| - 'linux/**' | |
| - 'windows/**' | |
| - 'macos/**' | |
| common: | |
| name: Common Build | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - name: Common Workflow | |
| uses: ./.github/actions/common | |
| - name: Save PR number | |
| run: | | |
| mkdir -p ./pr | |
| echo ${{ github.event.number }} > ./pr/NR | |
| - uses: actions/upload-artifact@v7 | |
| with: | |
| name: pr | |
| path: pr/ | |
| android: | |
| name: Android Flutter Build | |
| needs: [common, changes] | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - name: Skip Android build for docs | |
| if: needs.changes.outputs.code != 'true' | |
| run: echo "non-code changes" | |
| - name: Android Workflow | |
| if: needs.changes.outputs.code == 'true' | |
| uses: ./.github/actions/android | |
| ios: | |
| name: iOS Flutter Build | |
| needs: [common, changes] | |
| runs-on: macos-latest | |
| steps: | |
| - name: Set up Xcode | |
| uses: maxim-lobanov/setup-xcode@v1.7.0 | |
| with: | |
| xcode-version: '16.4.0' | |
| - uses: actions/checkout@v6 | |
| - name: Skip iOS build for docs | |
| if: needs.changes.outputs.code != 'true' | |
| run: echo "non-code changes" | |
| - name: iOS Workflow | |
| if: needs.changes.outputs.code == 'true' | |
| uses: ./.github/actions/ios | |
| screenshots-android: | |
| name: Screenshots (Android) | |
| needs: [changes] | |
| if: needs.changes.outputs.code == 'true' | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 30 | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - name: Android Screenshot Workflow | |
| uses: ./.github/actions/screenshot-android | |
| with: | |
| ANDROID_EMULATOR_API: ${{ env.ANDROID_EMULATOR_API }} | |
| ANDROID_EMULATOR_ARCH: ${{ env.ANDROID_EMULATOR_ARCH }} | |
| screenshots-iphone: | |
| name: Screenshots (iPhone) | |
| needs: [changes] | |
| if: needs.changes.outputs.code == 'true' | |
| runs-on: macos-latest | |
| timeout-minutes: 30 | |
| steps: | |
| - name: Set up Xcode | |
| uses: maxim-lobanov/setup-xcode@v1.7.0 | |
| with: | |
| xcode-version: '16.4.0' | |
| - uses: actions/checkout@v6 | |
| - name: iPhone Screenshot Workflow | |
| uses: ./.github/actions/screenshot-iphone | |
| with: | |
| IPHONE_DEVICE_MODEL: ${{ env.IPHONE_DEVICE_MODEL }} | |
| screenshots-ipad: | |
| name: Screenshots (iPad) | |
| needs: [changes] | |
| if: needs.changes.outputs.code == 'true' | |
| runs-on: macos-latest | |
| timeout-minutes: 30 | |
| steps: | |
| - name: Set up Xcode | |
| uses: maxim-lobanov/setup-xcode@v1.7.0 | |
| with: | |
| xcode-version: '16.4.0' | |
| - uses: actions/checkout@v6 | |
| - name: iPad Screenshot Workflow | |
| uses: ./.github/actions/screenshot-ipad | |
| with: | |
| IPAD_DEVICE_MODEL: ${{ env.IPAD_DEVICE_MODEL }} | |
| windows: | |
| name: Windows Flutter Build | |
| needs: [common, changes] | |
| if: needs.changes.outputs.code == 'true' | |
| runs-on: windows-latest | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - name: Windows Workflow | |
| uses: ./.github/actions/windows | |
| linux: | |
| name: Linux Flutter Build | |
| needs: [common, changes] | |
| if: needs.changes.outputs.code == 'true' | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - name: Linux Workflow | |
| uses: ./.github/actions/linux | |
| linux-arm64: | |
| name: Linux ARM64 Flutter Build | |
| needs: [common, changes] | |
| if: needs.changes.outputs.code == 'true' | |
| runs-on: ubuntu-24.04-arm | |
| steps: | |
| - uses: actions/checkout@v6 | |
| - name: Linux ARM64 Workflow | |
| uses: ./.github/actions/linux-arm64 | |
| macos: | |
| name: macOS Flutter Build | |
| needs: [common, changes] | |
| if: needs.changes.outputs.code == 'true' | |
| runs-on: macos-latest | |
| steps: | |
| - name: Set up Xcode | |
| uses: maxim-lobanov/setup-xcode@v1.7.0 | |
| with: | |
| xcode-version: '16.4.0' | |
| - uses: actions/checkout@v6 | |
| - name: macOS Workflow | |
| uses: ./.github/actions/macos |