85 lines
2.7 KiB
YAML
85 lines
2.7 KiB
YAML
name: Flutter Integration Tests
|
|
|
|
on:
|
|
push:
|
|
branches:
|
|
- main
|
|
pull_request:
|
|
|
|
jobs:
|
|
drive_android:
|
|
runs-on: ubuntu-latest
|
|
timeout-minutes: 15
|
|
permissions:
|
|
contents: read
|
|
strategy:
|
|
matrix:
|
|
api-level: [29, 35]
|
|
fail-fast: false
|
|
steps:
|
|
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
|
|
- uses: actions/setup-java@f2beeb24e141e01a676f977032f5a29d81c9e27e # v5.1.0
|
|
with:
|
|
distribution: "temurin"
|
|
java-version: "17"
|
|
- name: Enable KVM
|
|
run: |
|
|
echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"' | sudo tee /etc/udev/rules.d/99-kvm4all.rules
|
|
sudo udevadm control --reload-rules
|
|
sudo udevadm trigger --name-match=kvm
|
|
- uses: subosito/flutter-action@fd55f4c5af5b953cc57a2be44cb082c8f6635e8e # v2.21.0
|
|
with:
|
|
channel: stable
|
|
cache: true
|
|
- uses: reactivecircus/android-emulator-runner@b530d96654c385303d652368551fb075bc2f0b6b # v2.35.0
|
|
with:
|
|
api-level: ${{ matrix.api-level }}
|
|
arch: x86_64
|
|
script: flutter test integration_test -d android
|
|
working-directory: example
|
|
|
|
drive_ios:
|
|
name: iOS
|
|
runs-on: macos-latest
|
|
timeout-minutes: 25
|
|
permissions:
|
|
contents: read
|
|
strategy:
|
|
matrix:
|
|
simulator: [{os: "18.6", model: "iPhone SE (3rd generation)"}, {os: "26.1", model: "iPhone SE (3rd generation)"}]
|
|
fail-fast: false
|
|
steps:
|
|
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
|
|
- uses: subosito/flutter-action@fd55f4c5af5b953cc57a2be44cb082c8f6635e8e # v2.21.0
|
|
with:
|
|
channel: stable
|
|
cache: true
|
|
- uses: futureware-tech/simulator-action@dab10d813144ef59b48d401cd95da151222ef8cd # v4
|
|
with:
|
|
wait_for_boot: true
|
|
os: iOS
|
|
os_version: ${{ matrix.simulator.os }}
|
|
model: ${{ matrix.simulator.model }}
|
|
- name: Pre-build the app
|
|
working-directory: example
|
|
run: flutter build ios --simulator --target=integration_test/app_test.dart
|
|
- name: Run flutter integration tests
|
|
working-directory: example
|
|
run: flutter test integration_test -d iphone
|
|
|
|
drive_macos:
|
|
name: macOS
|
|
runs-on: macos-latest
|
|
timeout-minutes: 15
|
|
permissions:
|
|
contents: read
|
|
steps:
|
|
- uses: actions/checkout@8e8c483db84b4bee98b60c0593521ed34d9990e8 # v6.0.1
|
|
- uses: subosito/flutter-action@fd55f4c5af5b953cc57a2be44cb082c8f6635e8e # v2.21.0
|
|
with:
|
|
channel: stable
|
|
cache: true
|
|
- name: Run Flutter Integration tests
|
|
working-directory: example
|
|
run: flutter test integration_test -d macos
|