From 40974aaa2031a4dac1995859b4b044772d2b75ff Mon Sep 17 00:00:00 2001 From: Imani Manyara Date: Mon, 2 Nov 2026 14:35:08 -0500 Subject: [PATCH] Drop the Codecov upload from CI The Codecov GitHub App is uninstalled from every Simtabi-owned org, so these upload steps can no longer deliver anything. They were already advisory: the repository was never activated on codecov.io, which is why every run carried the "Codecov rejected the upload" warning the steps themselves emitted. Coverage enforcement is unchanged. The floor is still enforced by the test runner on every matrix row, the job summary still reports the numbers, and coverage.xml is still kept as an artifact. coverage-baseline.yml is kept: it stands in for a push trigger on the default branch, which is the weekly post-merge drift check, and that purpose does not depend on Codecov. --- .github/workflows/coverage-baseline.yml | 23 ++--------------- .github/workflows/tests.yml | 33 ++++--------------------- 2 files changed, 7 insertions(+), 49 deletions(-) diff --git a/.github/workflows/coverage-baseline.yml b/.github/workflows/coverage-baseline.yml index 8235919..79ff1f3 100644 --- a/.github/workflows/coverage-baseline.yml +++ b/.github/workflows/coverage-baseline.yml @@ -1,7 +1,7 @@ name: Coverage baseline -# Refreshes the Codecov baseline for `main` so PR comparisons have a recent -# base commit to diff against. Runs weekly (Monday 06:00 America/New_York, +# Runs the canonical coverage row against `main` so coverage drift after a +# merge stays visible. Runs weekly (Monday 06:00 America/New_York, # 11:00 UTC) and on demand; scheduled runs always use the default branch. # It stands in for a `push: branches: [main]` trigger on tests.yml, which # would re-run the full matrix after every merge. Steps mirror the canonical @@ -69,22 +69,3 @@ jobs: name: coverage-xml-${{ github.sha }} path: coverage.xml retention-days: 7 - - - name: Upload coverage to Codecov - id: codecov - # Same detection as tests.yml: fail_ci_if_error surfaces an HTTP >= 400 - # as a step failure, continue-on-error keeps the job green. - continue-on-error: true - uses: codecov/codecov-action@303a32d7a59b442fa8d48b6a1cc6825c09c847a5 # v7.1.1 - with: - files: ./coverage.xml - disable_search: true - token: ${{ secrets.CODECOV_TOKEN }} - fail_ci_if_error: true - - - name: Report a rejected Codecov upload - if: steps.codecov.outcome == 'failure' - run: | - msg="Codecov rejected the upload (repository not activated or token mismatch) — coverage is still enforced by pest --min and shown in the job summary. See the 'Upload coverage to Codecov' step log for the server response." - echo "::warning title=Codecov upload failed::$msg" - printf '\n> [!WARNING]\n> %s\n' "$msg" >> "$GITHUB_STEP_SUMMARY" diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index ef11f9a..2014b03 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -1,7 +1,7 @@ name: Tests -# Tests gate pull requests only. The Codecov baseline for `main` is refreshed -# by coverage-baseline.yml on a schedule, not by a push trigger. +# Tests gate pull requests only. Coverage on `main` is refreshed by +# coverage-baseline.yml on a schedule, not by a push trigger. on: pull_request: branches: [ main, develop ] @@ -70,9 +70,9 @@ jobs: run: vendor/bin/pest --group=security # PHP 8.4 / prefer-stable is the canonical coverage row: it writes the - # job summary, keeps coverage.xml, and uploads to Codecov. The floor is - # enforced on every row by --min above (composer.json test:coverage - # carries the same number, which is where the summary reads it from). + # job summary and keeps coverage.xml. The floor is enforced on every row + # by --min above (composer.json test:coverage carries the same number, + # which is where the summary reads it from). - name: Coverage summary # always(): show the numbers even when the run fails the floor. if: >- @@ -90,29 +90,6 @@ jobs: path: coverage.xml retention-days: 7 - - name: Upload coverage to Codecov - id: codecov - if: matrix.php == '8.4' && matrix.dependency-version == 'prefer-stable' - # Advisory: the gate is --min, and the job summary shows the numbers. - # fail_ci_if_error makes the CLI exit non-zero when Codecov answers - # HTTP >= 400 (with it off, the action always exits 0 and a rejection - # is silent); continue-on-error keeps that from failing the job, and - # the next step turns it into a visible warning. - continue-on-error: true - uses: codecov/codecov-action@303a32d7a59b442fa8d48b6a1cc6825c09c847a5 # v7.1.1 - with: - files: ./coverage.xml - disable_search: true - token: ${{ secrets.CODECOV_TOKEN }} - fail_ci_if_error: true - - - name: Report a rejected Codecov upload - if: steps.codecov.outcome == 'failure' - run: | - msg="Codecov rejected the upload (repository not activated or token mismatch) — coverage is still enforced by pest --min and shown in the job summary. See the 'Upload coverage to Codecov' step log for the server response." - echo "::warning title=Codecov upload failed::$msg" - printf '\n> [!WARNING]\n> %s\n' "$msg" >> "$GITHUB_STEP_SUMMARY" - code-quality: runs-on: ubuntu-latest timeout-minutes: 15