From 3d7b8c9d3f8f4c34ce38d07caa16ce7c5f5369fd Mon Sep 17 00:00:00 2001 From: Marat Akhmetov Date: Thu, 14 Aug 2025 00:38:15 +0300 Subject: [PATCH 1/7] [DOP-23126] added basic pytest-coverage-comment --- .github/workflows/tests.yml | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 28edf47a..e83eafe7 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -16,7 +16,9 @@ env: DEFAULT_PYTHON: '3.13' permissions: - contents: read + contents: write + checks: write + pull-requests: write jobs: oracle_tests: @@ -128,13 +130,12 @@ jobs: coverage combine coverage xml -o reports/coverage.xml -i - - name: Check coverage - uses: codecov/codecov-action@v5 + - name: Coverage comment + uses: MishaKav/pytest-coverage-comment@main with: - token: ${{ secrets.CODECOV_TOKEN }} - files: ./reports/coverage.xml - fail_ci_if_error: true - plugins: noop + pytest-xml-coverage-path: ./reports/coverage.xml + default-branch: develop + xml-skip-covered: true - name: All done run: echo 1 From 8504f10855e99c289c71b96988fe29c9a432dce6 Mon Sep 17 00:00:00 2001 From: Marat Akhmetov Date: Thu, 14 Aug 2025 13:53:42 +0300 Subject: [PATCH 2/7] [DOP-23126] added new param for pytest-coverage-comment --- .github/workflows/tests.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index e83eafe7..360f9fce 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -136,6 +136,7 @@ jobs: pytest-xml-coverage-path: ./reports/coverage.xml default-branch: develop xml-skip-covered: true + report-only-changed-files: true - name: All done run: echo 1 From b719ef643c9383b03525ceca6041a18f1cfec0c1 Mon Sep 17 00:00:00 2001 From: Marat Akhmetov Date: Wed, 20 Aug 2025 16:06:27 +0300 Subject: [PATCH 3/7] [DOP-23126] added badge --- .github/workflows/tests.yml | 12 ++++++++++++ README.rst | 5 +++-- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 360f9fce..c0128a5b 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -131,6 +131,7 @@ jobs: coverage xml -o reports/coverage.xml -i - name: Coverage comment + id: coverage uses: MishaKav/pytest-coverage-comment@main with: pytest-xml-coverage-path: ./reports/coverage.xml @@ -138,5 +139,16 @@ jobs: xml-skip-covered: true report-only-changed-files: true + + - name: Dynamic Badges + uses: schneegans/dynamic-badges-action@v1.7.0 + with: + auth: ${{ secrets.GIST_TOKEN }} + gistID: 03e73a82ecc4709934540ce8201cc3b4 + filename: syncmaster_badge.json + label: Coverage + message: ${{ steps.coverage.outputs.coverage }} + color: ${{ steps.coverage.outputs.color }} + - name: All done run: echo 1 diff --git a/README.rst b/README.rst index 1e65dcf9..09c9ca00 100644 --- a/README.rst +++ b/README.rst @@ -20,8 +20,9 @@ Data.SyncMaster :target: https://syncmaster.readthedocs.io .. |Build Status| image:: https://github.com/MobileTeleSystems/syncmaster/workflows/Run%20All%20Tests/badge.svg :target: https://github.com/MobileTeleSystems/syncmaster/actions -.. |Coverage| image:: https://codecov.io/gh/MobileTeleSystems/syncmaster/graph/badge.svg?token=ky7UyUxolB - :target: https://codecov.io/gh/MobileTeleSystems/syncmaster +.. |Coverage| image:: https://img.shields.io/endpoint?url=https://gist.githubusercontent.com/ + MTSOnGithub/03e73a82ecc4709934540ce8201cc3b4/raw/syncmaster_badge.json + :target: https://github.com/MobileTeleSystems/syncmaster/actions .. |pre-commit.ci| image:: https://results.pre-commit.ci/badge/github/MobileTeleSystems/syncmaster/develop.svg :target: https://results.pre-commit.ci/latest/github/MobileTeleSystems/syncmaster/develop From 0dad31f6cc31e6b034606520025c25378d45560b Mon Sep 17 00:00:00 2001 From: Marat Akhmetov Date: Wed, 20 Aug 2025 20:58:00 +0300 Subject: [PATCH 4/7] [DOP-23126] changed coverage comment action version --- .github/workflows/tests.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index c0128a5b..1a3401b9 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -132,7 +132,7 @@ jobs: - name: Coverage comment id: coverage - uses: MishaKav/pytest-coverage-comment@main + uses: MishaKav/pytest-coverage-comment@v1 with: pytest-xml-coverage-path: ./reports/coverage.xml default-branch: develop From 98ebb05e3c5e35be3ee8cd89b97e101f9d05e203 Mon Sep 17 00:00:00 2001 From: Marat Akhmetov Date: Thu, 21 Aug 2025 12:10:36 +0300 Subject: [PATCH 5/7] [DOP-23126] added min coverage --- .github/workflows/tests.yml | 6 ++++++ codecov.yml | 6 ------ 2 files changed, 6 insertions(+), 6 deletions(-) delete mode 100644 codecov.yml diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 1a3401b9..f9b621d4 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -150,5 +150,11 @@ jobs: message: ${{ steps.coverage.outputs.coverage }} color: ${{ steps.coverage.outputs.color }} + - name: Fail if coverage too low + if: ${{ steps.coverage.outputs.coverage < 92 }} + run: | + echo "Coverage is below 92%!" + exit 1 + - name: All done run: echo 1 diff --git a/codecov.yml b/codecov.yml deleted file mode 100644 index f70a6738..00000000 --- a/codecov.yml +++ /dev/null @@ -1,6 +0,0 @@ -coverage: - status: - project: - default: - target: 92% - threshold: 1% From fe3ca59efb0e16024647af36845b33afacf0a670 Mon Sep 17 00:00:00 2001 From: Marat Akhmetov Date: Thu, 21 Aug 2025 12:35:33 +0300 Subject: [PATCH 6/7] [DOP-23126] updated workflow condition for dynamic badge step --- .github/workflows/tests.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index f9b621d4..879c65b6 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -142,8 +142,9 @@ jobs: - name: Dynamic Badges uses: schneegans/dynamic-badges-action@v1.7.0 + if: github.repository == 'MobileTeleSystems/syncmaster' && github.event_name == 'push' with: - auth: ${{ secrets.GIST_TOKEN }} + auth: ${{ secrets.AUTOMERGE_TOKEN }} gistID: 03e73a82ecc4709934540ce8201cc3b4 filename: syncmaster_badge.json label: Coverage From 4a5af9e22b5305cc1c7974ca4bb1ae8b085568fb Mon Sep 17 00:00:00 2001 From: Marat Akhmetov Date: Thu, 21 Aug 2025 12:50:37 +0300 Subject: [PATCH 7/7] [DOP-23126] added constant var for min coverage --- .github/workflows/tests.yml | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index 879c65b6..d16de6c4 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -14,6 +14,7 @@ concurrency: env: DEFAULT_PYTHON: '3.13' + MIN_COVERAGE: 92 permissions: contents: write @@ -152,9 +153,9 @@ jobs: color: ${{ steps.coverage.outputs.color }} - name: Fail if coverage too low - if: ${{ steps.coverage.outputs.coverage < 92 }} + if: ${{ steps.coverage.outputs.coverage < env.MIN_COVERAGE }} run: | - echo "Coverage is below 92%!" + echo "Coverage is below ${{ env.MIN_COVERAGE }}%!" exit 1 - name: All done