Commit f69557a

derdilla <82763757+NobodyForNothing@users.noreply.github.com>
2024-06-28 10:01:56
upload coverage reports
Signed-off-by: derdilla <82763757+NobodyForNothing@users.noreply.github.com>
1 parent dbf2d02
Changed files (6)
.github/workflows/app-CI.yml
@@ -35,7 +35,7 @@ jobs:
         sdk: ${{ env.DART_SDK }}
     - name: Generate code
       run: dart run build_runner build
-      working-directory: ./health_data_store
+      working-directory: health_data_store
     - name: Setup Flutter
       uses: subosito/flutter-action@v2
       with:
@@ -46,10 +46,14 @@ jobs:
       run: |
         flutter pub get
         flutter pub run build_runner build
-      working-directory: ./app
+      working-directory: app
     - name: Run tests
-      run: flutter test
-      working-directory: ./app
+      run: flutter test --coverage
+      working-directory: app
+    - uses: actions/upload-artifact@v4
+      with:
+        name: app-coverage
+        path: app/coverage/lcov.info
 
   integration-test:
     name: "๐Ÿ› ๏ธ๐Ÿงช Run integration tests"
@@ -88,7 +92,7 @@ jobs:
           sdk: ${{ env.DART_SDK }}
       - name: Generate code
         run: dart run build_runner build
-        working-directory: ./health_data_store
+        working-directory: health_data_store
       - name: Setup Flutter
         uses: subosito/flutter-action@v2
         with:
@@ -106,7 +110,7 @@ jobs:
 
       - name: Run integration tests
         run: flutter test integration_test --flavor github
-        working-directory: ./app
+        working-directory: app
 
   build-android:
     name: "๐Ÿ› ๏ธ Build Android"
@@ -127,7 +131,7 @@ jobs:
         sdk: ${{ env.DART_SDK }}
     - name: Generate code
       run: dart run build_runner build
-      working-directory: ./health_data_store
+      working-directory: health_data_store
     - name: Setup Flutter
       uses: subosito/flutter-action@v2
       with:
@@ -136,4 +140,4 @@ jobs:
       run: flutter config --no-analytics
     - name: Build apk
       run: flutter build apk --flavor github --debug
-      working-directory: ./app
+      working-directory: app
.github/workflows/coverage-overview.yml
@@ -0,0 +1,45 @@
+name: Generate and Deploy Coverage Report
+
+on:
+  workflow_run:
+    workflows:
+      - '๐Ÿ“ฑ Application'
+      - '๐Ÿ“ฆ Packages'
+    types:
+      - completed
+
+jobs:
+  generate-deploy-coverage:
+    runs-on: ubuntu-latest
+
+    steps:
+      - name: Checkout code
+        uses: actions/checkout@v4
+
+      - name: Download app coverage
+        uses: actions/download-artifact@v3
+        with:
+          name: app-coverage
+          path: coverage/app
+
+      - name: Download health data store coverage
+        uses: actions/download-artifact@v3
+        with:
+          name: health_data_store-coverage
+          path: coverage/health_data_store
+
+      - name: Combine Coverage Reports
+        run: |
+          mkdir -p coverage/combined
+          cat coverage/app/lcov.info coverage/health_data_store/coverage.lcov > coverage/combined/lcov.info
+
+      - name: Generate HTML Report
+        run: |
+          npm install -g lcov-report
+          lcov-report -i coverage/combined/lcov.info -o coverage/combined
+
+      - name: Deploy to GitHub Pages
+        uses: peaceiris/actions-gh-pages@v3
+        with:
+          github_token: ${{ secrets.GITHUB_TOKEN }}
+          publish_dir: coverage/combined
\ No newline at end of file
.github/workflows/pkg-CI.yml
@@ -30,7 +30,9 @@ jobs:
         sdk: ${{ env.DART_SDK }}
 
     - name: Get dependencies
-      run: dart pub get
+      run: |
+        dart pub get
+        dart pub global activate coverage
       working-directory: ./health_data_store
     - name: Generate code
       run: dart run build_runner build
@@ -39,5 +41,11 @@ jobs:
       run: dart analyze
       working-directory: ./health_data_store
     - name: Run tests
-      run: dart test
+      run: |
+        dart test --coverage=coverage
+        format_coverage --lcov --in=coverage --out=coverage.lcov --report-on=lib
       working-directory: ./health_data_store
+    - uses: actions/upload-artifact@v4
+      with:
+        name: health_data_store-coverage
+        path: health_data_store/coverage.lcov
app/.gitignore
@@ -31,6 +31,7 @@ migrate_working_dir/
 .pub-cache/
 .pub/
 /build/
+coverage/
 
 # Symbolication related
 app.*.symbols
health_data_store/.gitignore
@@ -4,4 +4,6 @@
 .dart_tool/
 .packages
 build/
-pubspec.lock
\ No newline at end of file
+pubspec.lock
+coverage/
+coverage.lcov
\ No newline at end of file
health_data_store/pubspec.yaml
@@ -13,6 +13,7 @@ dependencies:
 
 dev_dependencies:
   build_runner: ^2.4.8
+  coverage: ^1.8.0
   freezed: ^2.4.7
   json_serializable: ^6.7.1
   mocktail: ^1.0.3