name: test on: push: branches: [ main ] pull_request: branches: [ main ] jobs: test: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: subosito/flutter-action@v2 with: channel: 'stable' - name: Test run: | cd workmanager flutter pub get flutter test native_ios_tests: runs-on: macos-latest steps: - uses: actions/checkout@v4 - uses: subosito/flutter-action@v2 with: channel: 'stable' - name: Build iOS App run: cd example && flutter build ios --debug --no-codesign - name: Run native iOS tests run: cd example/ios && xcodebuild -workspace Runner.xcworkspace -scheme Runner -sdk iphonesimulator -destination 'platform=iOS Simulator,name=iPhone 12,OS=16.2' test native_android_tests: runs-on: macos-latest steps: - uses: actions/checkout@v4 - uses: actions/setup-java@v1 with: java-version: 17 - uses: subosito/flutter-action@v1 with: channel: 'stable' - name: Build Android App run: cd example && flutter build apk --debug - name: Run native Android tests run: cd example/android && gradle workmanager:test drive_ios: strategy: matrix: device: - "iPhone 12 Pro" fail-fast: false runs-on: macos-latest steps: - uses: futureware-tech/simulator-action@v1 with: model: '${{ matrix.device }}' - uses: actions/checkout@v4 - uses: subosito/flutter-action@v2 with: channel: 'stable' # Run flutter integrate tests - name: Run Flutter integration tests run: cd example && flutter test integration_test/workmanager_integration_test.dart drive_android: runs-on: macos-latest #creates a build matrix for your jobs strategy: #set of different configurations of the virtual environment. matrix: api-level: [29] # api-level: [21, 29] target: [default] steps: - uses: actions/checkout@v4 - uses: actions/setup-java@v1 with: java-version: 17 - uses: subosito/flutter-action@v2 with: channel: 'stable' - name: Run Flutter Driver tests uses: reactivecircus/android-emulator-runner@v2 with: api-level: ${{ matrix.api-level }} target: ${{ matrix.target }} script: cd example && flutter test integration_test/workmanager_integration_test.dart