diff --git a/.github/workflows/coverage-badge.yml b/.github/workflows/coverage-badge.yml new file mode 100644 index 0000000..0cb4595 --- /dev/null +++ b/.github/workflows/coverage-badge.yml @@ -0,0 +1,50 @@ +name: Create coverage badge + +on: + push: + branches: [main] + +jobs: + build: + runs-on: ubuntu-latest + + steps: + - uses: actions/checkout@v4 + + - name: Setup Flutter (stable) + uses: subosito/flutter-action@v2 + with: + channel: stable + cache: true + + - name: Install package dependencies + run: flutter pub get + + - name: Run tests and collect coverage information + run: flutter test --coverage + + - name: Install lcov (coverage tool) + run: sudo apt install -y lcov + + - name: Extract coverage percentage + id: coverage-extractor + run: | + coverage=$(lcov --summary coverage/lcov.info | grep 'lines' | awk '{print $2}' | sed 's/%//' | sed 's/.0$//') + echo "COVERAGE=$coverage" >> $GITHUB_OUTPUT + + - name: Output coverage percentage + run: | + echo "The code coverage percentage is ${{ steps.coverage-extractor.outputs.COVERAGE }}" + + # For a detailed guide, refer to: https://bitspittle.dev/blog/2022/kover-badge + - name: Update dynamic badge gist + uses: schneegans/dynamic-badges-action@v1.7.0 + with: + auth: ${{ secrets.GIST_SECRET }} + gistID: e115a2922ddd4f9f897b6e2c15d6c071 # https://gist.github.com/EchoEllet/e115a2922ddd4f9f897b6e2c15d6c071 + filename: native-image-picker-macos-coverage-badge.json + label: 'Dart Coverage' + message: ${{ steps.coverage-extractor.outputs.COVERAGE }}% + valColorRange: ${{ steps.coverage-extractor.outputs.COVERAGE }} + minColorRange: 0 + maxColorRange: 100 diff --git a/README.md b/README.md index 54d3da0..20693e9 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@ Pub Version Star on Github License: MIT -Dart Code Coverage +Dart Code Coverage

A macOS platform implementation of [`image_picker`](https://pub.dev/packages/image_picker) diff --git a/lib/src/messages.g.dart b/lib/src/messages.g.dart index 3d00988..b520bf0 100644 --- a/lib/src/messages.g.dart +++ b/lib/src/messages.g.dart @@ -1,3 +1,4 @@ +// coverage:ignore-file // Autogenerated from Pigeon (v22.7.2), do not edit directly. // See also: https://pub.dev/packages/pigeon // ignore_for_file: public_member_api_docs, non_constant_identifier_names, avoid_as, unused_import, unnecessary_parenthesis, prefer_null_aware_operators, omit_local_variable_types, unused_shown_name, unnecessary_import, no_leading_underscores_for_local_identifiers diff --git a/pigeons/messages.dart b/pigeons/messages.dart index d2166f4..438d03e 100644 --- a/pigeons/messages.dart +++ b/pigeons/messages.dart @@ -6,6 +6,11 @@ import 'package:pigeon/pigeon.dart'; dartTestOut: 'test/test_api.g.dart', swiftOut: 'macos/native_image_picker_macos/Sources/native_image_picker_macos/Messages.g.swift', + dartOptions: DartOptions( + copyrightHeader: [ + 'coverage:ignore-file', + ], + ), ), ) diff --git a/test/test_api.g.dart b/test/test_api.g.dart index 7b03047..1601a42 100644 --- a/test/test_api.g.dart +++ b/test/test_api.g.dart @@ -1,3 +1,4 @@ +// coverage:ignore-file // Autogenerated from Pigeon (v22.7.2), do not edit directly. // See also: https://pub.dev/packages/pigeon // ignore_for_file: public_member_api_docs, non_constant_identifier_names, avoid_as, unused_import, unnecessary_parenthesis, unnecessary_import, no_leading_underscores_for_local_identifiers