From c1ec2a67a3e7d71273f7e54fe1f72ee0a3d76d1d Mon Sep 17 00:00:00 2001 From: Eduard Miralles Date: Wed, 26 Mar 2025 09:21:23 +0100 Subject: [PATCH] feat: add badge --- .github/scripts/extract_coverage.sh | 11 +++++++ .github/workflows/tests.yml | 49 +++++++++++++++++++++++++++++ .gitignore | 2 ++ README.md | 3 ++ 4 files changed, 65 insertions(+) create mode 100755 .github/scripts/extract_coverage.sh create mode 100644 .github/workflows/tests.yml diff --git a/.github/scripts/extract_coverage.sh b/.github/scripts/extract_coverage.sh new file mode 100755 index 0000000..7d814c3 --- /dev/null +++ b/.github/scripts/extract_coverage.sh @@ -0,0 +1,11 @@ +#!/bin/bash + +# Extract the lines coverage percentage +lines_coverage_percentage=$(lcov --summary coverage/lcov.info | grep 'lines......:' | sed 's/.*lines......: //; s/ (.*//; s/%//') + +text_coverage=$(lcov --summary coverage/lcov.info | grep 'lines......:' | sed 's/.*lines......: //; s/%//') + +# Output the coverage percentage +echo "PERCENT_COV=$lines_coverage_percentage" >> $GITHUB_ENV + +echo "TEXT_COV=$text_coverage" >> $GITHUB_ENV diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml new file mode 100644 index 0000000..9982591 --- /dev/null +++ b/.github/workflows/tests.yml @@ -0,0 +1,49 @@ +name: Flutter_Tests + +on: + pull_request: + branches: [master] + +jobs: + tests: + runs-on: ubuntu-latest + + steps: + + - name: Checkout the code + uses: actions/checkout@v2 + + - name: Install lcov + run: sudo apt-get update && sudo apt-get install -y lcov + + - name: Lcov version + run: lcov --version + + - name: Install and set Flutter version + uses: subosito/flutter-action@v2 + with: + flutter-version: '3.29.2' + + - name: Restore packages + run: flutter pub get + + # - name: Analyze + # run: flutter analyze + + - name: Run tests + run: flutter test --coverage + + - name: Extract Coverage Percentage + run: ./.github/scripts/extract_coverage.sh + + - name: Create Awesome Badge + uses: schneegans/dynamic-badges-action@v1.7.0 + with: + auth: ${{ secrets.GIST_SECRET }} + gistID: 0f75fb89680545189ab8a0c4327c5d45 + filename: fp_mobile_coverage.svg + label: Coverage + message: is ${{ env.TEXT_COV }} + valColorRange: ${{ env.PERCENT_COV }} + maxColorRange: 100 + minColorRange: 0 \ No newline at end of file diff --git a/.gitignore b/.gitignore index 47e0b4d..ec4f84d 100644 --- a/.gitignore +++ b/.gitignore @@ -69,3 +69,5 @@ build/ !**/ios/**/default.pbxuser !**/ios/**/default.perspectivev3 !/packages/flutter_tools/test/data/dart_dependencies_test/**/.packages + +coverage* \ No newline at end of file diff --git a/README.md b/README.md index f381fc6..e73366e 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,6 @@ + +![badge](https://gist.githubusercontent.com/miralles66/0f75fb89680545189ab8a0c4327c5d45/raw/fp_mobile_coverage.svg) + # bloc_vanilla_tut A new Flutter project.