on: pull_request: paths-ignore: - ".github/**" - "docs" - "Jenkinsfile" - "**/*.md" name: Analyze and test jobs: analyze-test: runs-on: ubuntu-latest strategy: matrix: modules: - default - core - model - contact - forward - rule_filter - fcm - email_recovery fail-fast: false steps: - name: Checkout repository uses: actions/checkout@v3 - name: Setup flutter uses: subosito/flutter-action@v2 with: flutter-version: "3.16.0" channel: "stable" cache: true cache-key: "deps-${{ hashFiles('**/pubspec.lock') }}" cache-path: ${{ runner.tool_cache }}/flutter # optional, change this to specify the cache path - name: Setup Firebase env env: FIREBASE_ENV: ${{ secrets.FIREBASE_ENV }} run: echo "$FIREBASE_ENV" > ./configurations/env.fcm - name: Run prebuild run: bash prebuild.sh - name: Analyze uses: zgosalvez/github-actions-analyze-dart@v1 - name: Test run: | if [[ "${{ matrix.modules }}" == "default" ]]; then flutter test -r json > test-report-${{ matrix.modules }}.json else flutter test -r json ${{ matrix.modules }} > test-report-${{ matrix.modules }}.json fi - name: Upload test reports if: success() || failure() # Always upload report uses: actions/upload-artifact@v3 with: name: test-reports path: test-report*.json