diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index bac46116..8a24df2d 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -119,6 +119,7 @@ jobs: - name: Collect coverage report run: | python -m coverage html + python -m coverage json - name: Publish coverage report to job summary run: | pip install html2text @@ -129,6 +130,54 @@ jobs: name: coverage path: htmlcov if-no-files-found: error + - name: Upload json coverage + uses: actions/upload-artifact@v3 + with: + name: coverage.json + path: coverage.json + if-no-files-found: error - name: Check CI results run: grep Fail CI/results.markdown && false || true + badge: + permissions: + contents: write + name: Generate Coverage Badge + runs-on: ubuntu-latest + needs: + - tests + if: github.ref == 'refs/heads/main' && github.event_name == 'push' + steps: + - name: Check out doc repo + uses: actions/checkout@master + with: + repository: krkn-chaos/krkn-lib-docs + path: krkn-lib-docs + ssh-key: ${{ secrets.KRKN_LIB_DOCS_PRIV_KEY }} + - name: Download json coverage + uses: actions/download-artifact@v3 + with: + name: coverage.json + - name: Set up Python + uses: actions/setup-python@v4 + with: + python-version: 3.9 + - name: Copy badge on GitHub Page Repo + env: + COLOR: yellow + run: | + # generate coverage badge on previously calculated total coverage + # and copy in the docs page + export TOTAL=$(python -c "import json;print(json.load(open('coverage.json'))['totals']['percent_covered_display'])") + [[ $TOTAL > 40 ]] && COLOR=green + echo "TOTAL: $TOTAL" + echo "COLOR: $COLOR" + curl "https://img.shields.io/badge/coverage-$TOTAL%25-$COLOR" > ./krkn-lib-docs/coverage_badge_krkn.svg + - name: Push updated Coverage Badge + run: | + cd krkn-lib-docs + git add . + git config user.name "krkn-chaos" + git config user.email "<>" + git commit -m "[KRKN] Coverage Badge ${GITHUB_REF##*/}" + git push diff --git a/README.md b/README.md index 80fc3ae1..19199bc6 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,7 @@ # Krkn aka Kraken ![Workflow-Status](https://github.com/krkn-chaos/krkn/actions/workflows/docker-image.yml/badge.svg) +![coverage](https://krkn-chaos.github.io/krkn-lib-docs/coverage_badge_krkn.svg) +![action](https://github.com/krkn-chaos/krkn/actions/workflows/tests.yml/badge.svg) ![Krkn logo](media/logo.png)