name: stream_flutter_workflow env: ACTIONS_ALLOW_UNSECURE_COMMANDS: 'true' flutter_version: "2.2.2" on: pull_request: push: branches: - master - develop jobs: analyze: timeout-minutes: 15 runs-on: ubuntu-latest steps: - name: "Git Checkout" uses: actions/checkout@v2 with: fetch-depth: 0 - name: Cache Flutter dependencies id: flutter-cache uses: actions/cache@v2 with: path: /opt/hostedtoolcache/flutter key: ${{ env.flutter_version }}-flutter - name: "Install Flutter" if: steps.flutter-cache.outputs.cache-hit != 'true' uses: subosito/flutter-action@v1 with: channel: 'stable' - name: "Install Tools" run: | flutter pub global activate melos - name: "Bootstrap Workspace" run: melos bootstrap - name: "Dart Analyze" run: | melos run analyze - name: "Pub Check" if: github.ref == 'refs/heads/master' run: | melos run lint:pub format: runs-on: ubuntu-latest timeout-minutes: 15 steps: - name: "Git Checkout" uses: actions/checkout@v2 with: fetch-depth: 0 - name: "Install Flutter" uses: subosito/flutter-action@v1 with: channel: 'stable' - name: "Install Tools" run: flutter pub global activate melos - name: "Bootstrap Workspace" run: melos bootstrap - name: "Melos Format" run: melos run format - name: "Validate Formatting" run: | ./.github/workflows/scripts/validate-formatting.sh test: runs-on: macos-latest timeout-minutes: 15 steps: - name: "Git Checkout" uses: actions/checkout@v2 with: fetch-depth: 0 - name: "Install Flutter" uses: subosito/flutter-action@v1 with: channel: 'stable' - name: "Install Tools" run: | flutter pub global activate melos pub global activate remove_from_coverage - name: "Bootstrap Workspace" run: melos bootstrap - name: "Flutter Test" run: melos run test:all - name: "Collect Coverage" run: melos run coverage:ignore-file --no-select - name: "Upload Coverage" uses: codecov/codecov-action@v1 with: token: ${{secrets.CODECOV_TOKEN}} files: packages/*/coverage/lcov.info - name: "Stream Chat Coverage Check" uses: VeryGoodOpenSource/very_good_coverage@v1.1.1 with: path: packages/stream_chat/coverage/lcov.info min_coverage: 40 - name: "Stream Chat Persistence Coverage Check" uses: VeryGoodOpenSource/very_good_coverage@v1.1.1 with: path: packages/stream_chat_persistence/coverage/lcov.info min_coverage: 95 - name: "Stream Chat Flutter Core Coverage Check" uses: VeryGoodOpenSource/very_good_coverage@v1.1.1 with: path: packages/stream_chat_flutter_core/coverage/lcov.info min_coverage: 90 - name: "Stream Chat Flutter Coverage Check" uses: VeryGoodOpenSource/very_good_coverage@v1.1.1 with: path: packages/stream_chat_flutter/coverage/lcov.info min_coverage: 35