From d15ce8524e91c14f42e34282e7813b81d224559b Mon Sep 17 00:00:00 2001 From: Benedikt Franke Date: Tue, 7 Jul 2026 10:02:10 +0200 Subject: [PATCH 1/5] fix: replace Codecov upload with GitHub Job Summary for coverage MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Codecov uploads without a token hit a global rate limit (HTTP 429), causing intermittent CI failures unrelated to the actual test results. Closes https://github.com/mll-lab/php-utils/issues/44 Switch to PHPUnit's built-in --coverage-text, piped to $GITHUB_STEP_SUMMARY. Coverage is now visible directly in the GitHub Actions run without any third-party service, token, or upload step. Remove .codecov.yml — no longer needed. --- .codecov.yml | 6 ------ .github/workflows/validate.yml | 5 +---- 2 files changed, 1 insertion(+), 10 deletions(-) delete mode 100644 .codecov.yml diff --git a/.codecov.yml b/.codecov.yml deleted file mode 100644 index 8fb8c23b..00000000 --- a/.codecov.yml +++ /dev/null @@ -1,6 +0,0 @@ -coverage: - status: - project: - default: - only_pulls: true -comment: false diff --git a/.github/workflows/validate.yml b/.github/workflows/validate.yml index f221f07b..1b14829e 100644 --- a/.github/workflows/validate.yml +++ b/.github/workflows/validate.yml @@ -127,7 +127,4 @@ jobs: - uses: ramsey/composer-install@v3 - - run: vendor/bin/phpunit --coverage-clover=.build/logs/clover.xml - - # Not using v4 due to the breaking changes described in https://github.com/codecov/codecov-action/releases/tag/v4.0.0 - - uses: codecov/codecov-action@v3 + - run: vendor/bin/phpunit --coverage-text | tee $GITHUB_STEP_SUMMARY From 118f54c2dbac0fd349126de0bc6820e8f1545e18 Mon Sep 17 00:00:00 2001 From: Benedikt Franke Date: Tue, 7 Jul 2026 13:06:31 +0200 Subject: [PATCH 2/5] fix: strip ANSI colors from coverage-text output in job summary --- .github/workflows/validate.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/validate.yml b/.github/workflows/validate.yml index 1b14829e..67ab2c6b 100644 --- a/.github/workflows/validate.yml +++ b/.github/workflows/validate.yml @@ -127,4 +127,4 @@ jobs: - uses: ramsey/composer-install@v3 - - run: vendor/bin/phpunit --coverage-text | tee $GITHUB_STEP_SUMMARY + - run: vendor/bin/phpunit --coverage-text --colors=never | tee $GITHUB_STEP_SUMMARY From 388b7825d20cf33ec968db9a1090be51481d682a Mon Sep 17 00:00:00 2001 From: Benedikt Franke Date: Tue, 7 Jul 2026 13:30:54 +0200 Subject: [PATCH 3/5] fix: wrap coverage output in markdown code block for job summary --- .github/workflows/validate.yml | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/.github/workflows/validate.yml b/.github/workflows/validate.yml index 67ab2c6b..5f2ce7f4 100644 --- a/.github/workflows/validate.yml +++ b/.github/workflows/validate.yml @@ -127,4 +127,10 @@ jobs: - uses: ramsey/composer-install@v3 - - run: vendor/bin/phpunit --coverage-text --colors=never | tee $GITHUB_STEP_SUMMARY + - run: | + { + echo '## Code Coverage' + echo '```' + vendor/bin/phpunit --coverage-text --colors=never + echo '```' + } >> "$GITHUB_STEP_SUMMARY" From 70db9b4edd686805c117c23519b8e31d8ea35a07 Mon Sep 17 00:00:00 2001 From: Benedikt Franke Date: Tue, 7 Jul 2026 13:44:27 +0200 Subject: [PATCH 4/5] fix: use actions/upload-code-coverage for native GitHub coverage reporting --- .github/workflows/validate.yml | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/.github/workflows/validate.yml b/.github/workflows/validate.yml index 5f2ce7f4..d4881403 100644 --- a/.github/workflows/validate.yml +++ b/.github/workflows/validate.yml @@ -116,6 +116,10 @@ jobs: code-coverage: runs-on: ubuntu-latest + permissions: + contents: read + code-quality: write + steps: - uses: actions/checkout@v4 @@ -127,10 +131,10 @@ jobs: - uses: ramsey/composer-install@v3 - - run: | - { - echo '## Code Coverage' - echo '```' - vendor/bin/phpunit --coverage-text --colors=never - echo '```' - } >> "$GITHUB_STEP_SUMMARY" + - run: vendor/bin/phpunit --coverage-clover=coverage.xml + + - if: github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name == github.repository + uses: actions/upload-code-coverage@v1 + with: + file: coverage.xml + language: PHP From a84658912222d518477b073e6535b0834943a708 Mon Sep 17 00:00:00 2001 From: Benedikt Franke Date: Tue, 7 Jul 2026 15:15:04 +0200 Subject: [PATCH 5/5] fix: use Cobertura format and add required label for upload-code-coverage --- .github/workflows/validate.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/validate.yml b/.github/workflows/validate.yml index d4881403..7b3a8e87 100644 --- a/.github/workflows/validate.yml +++ b/.github/workflows/validate.yml @@ -131,10 +131,11 @@ jobs: - uses: ramsey/composer-install@v3 - - run: vendor/bin/phpunit --coverage-clover=coverage.xml + - run: vendor/bin/phpunit --coverage-cobertura=coverage.xml - if: github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name == github.repository uses: actions/upload-code-coverage@v1 with: file: coverage.xml language: PHP + label: code-coverage/phpunit