diff --git a/.github/workflows/flutter-beta.yml b/.github/workflows/flutter-beta.yml new file mode 100644 index 00000000..8aa53733 --- /dev/null +++ b/.github/workflows/flutter-beta.yml @@ -0,0 +1,98 @@ +name: Build Flutter Beta + +on: + push: + branches: + - flutter-beta + pull_request: + branches: + - flutter-beta + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }} + cancel-in-progress: true + +jobs: + quality: + name: Quality Checks + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v2 + + - uses: subosito/flutter-action@v1 + with: + channel: beta + - name: Get Packages + run: flutter pub get + - name: Analyze + run: flutter analyze + - name: Format + run: dart format . --set-exit-if-changed + - name: Publishability + run: flutter pub publish --dry-run + - name: Test + run: flutter test --coverage + - name: Archieve Golden Failures + if: failure() + uses: actions/upload-artifact@v3 + with: + name: Golden failures + retention-days: 2 + path: | + **/test/**/failures/**/*.* + - name: Upload coverage to Codecov + uses: codecov/codecov-action@v1 + with: + token: ${{ secrets.CODECOV_TOKEN }} + - uses: VeryGoodOpenSource/very_good_coverage@v1.2.0 + + android: + name: Android Integration Tests + needs: quality + runs-on: macos-latest + + steps: + - uses: actions/checkout@v2 + - uses: subosito/flutter-action@v1 + with: + channel: beta + - uses: actions/setup-java@v2 + with: + distribution: 'temurin' + java-version: '11' + - name: Run Android Integration Tests + uses: reactivecircus/android-emulator-runner@v2 + with: + api-level: 29 + working-directory: example + script: flutter test integration_test/android_test.dart -d emulator-5554 + + # iOS Test based on https://medium.com/flutter-community/run-flutter-driver-tests-on-github-actions-13c639c7e4ab + # by @kate_sheremet + ios: + name: iOS Integration Tests + needs: quality + strategy: + matrix: + device: + - "iPhone 14" + fail-fast: false + runs-on: macos-13 + steps: + - uses: actions/checkout@v2 + - uses: maxim-lobanov/setup-xcode@v1 + with: + xcode-version: latest + - name: Download iOS 17 + run: xcodebuild -downloadPlatform ios + - uses: subosito/flutter-action@v1 + with: + channel: beta + - uses: futureware-tech/simulator-action@v1 + id: simulator + with: + model: ${{ matrix.device }} + - name: "Run iOS integration tests" + run: flutter test integration_test/ios_test.dart -d ${{steps.simulator.outputs.udid}} + working-directory: example \ No newline at end of file diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index c54e34fc..330fce80 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -6,6 +6,9 @@ on: - main - dev pull_request: + branches: + - main + - dev concurrency: group: ${{ github.workflow }}-${{ github.ref }}