Skip to content

ci: unblock dependabot PRs (codecov token, flaky README example) - #30

Merged
deliro merged 2 commits into
masterfrom
fix/dependabot-ci
Aug 21, 2026
Merged

ci: unblock dependabot PRs (codecov token, flaky README example)#30
deliro merged 2 commits into
masterfrom
fix/dependabot-ci

Conversation

@deliro

@deliro deliro commented Aug 21, 2026

Copy link
Copy Markdown
Owner

All three open dependabot PRs (#27, #28, #29) were red. Two independent causes:

1. coverage failed on every dependabot PR. Those runs use the Dependabot
secret store, which does not carry CODECOV_TOKEN, so the uploader ran with
Token length: 0 and codecov rejected the upload. fail_ci_if_error: true
turned that into a job failure and took the CI ok gate with it.

The upload is now guarded by a job-level HAS_CODECOV_TOKEN flag (job-level
env is visible to a step's own if:; step-level env is not). Coverage is still
measured on those runs — only the upload is skipped, with a notice annotation.

If you'd rather have real coverage on dependabot PRs, mirror the secret into the
Dependabot store: gh secret set CODECOV_TOKEN --app dependabot.

2. The eviction-listener README example was flaky, which is what broke #27
(moka 0.12.15 -> 0.12.16). It filled a capacity-2 cache with three keys and then
removed one, so a "size" eviction was never guaranteed. It only passed because
0.12.15 leaked a phantom entry slot per insert/remove race, effectively shrinking
the capacity; 0.12.16 fixes that leak.
The example now overflows the cache well past capacity and drives maintenance
with run_pending_tasks(). Verified deterministic against both 0.12.15 and
0.12.16 locally.

Roman Kitaev added 2 commits August 21, 2026 20:07
Dependabot PRs run against the Dependabot secret store, which does not
carry CODECOV_TOKEN, so the uploader ran with an empty token and codecov
rejected it ("Token required because branch is protected"). With
fail_ci_if_error: true that failed the coverage job, and with it the
"CI ok" gate, on every dependabot PR.

Coverage is still measured on those runs; only the upload is skipped,
with a notice annotation saying so.
The example filled a capacity-2 cache with three keys and then removed
one of them, so whether a "size" eviction was ever recorded depended on
when moka happened to run its pending maintenance. It passed only
because moka 0.12.15 leaked a phantom entry slot per insert/remove race,
which effectively shrank the capacity; moka 0.12.16 fixes that leak and
the example started failing.

Overflow the cache well past its capacity and drive maintenance with
run_pending_tasks() instead of guessing, which also matches what the
notes below the example say about lazy delivery.
@codecov-commenter

Copy link
Copy Markdown

⚠️ Please install the 'codecov app svg image' to ensure uploads and comments are reliably processed by Codecov.

Codecov Report

✅ All modified and coverable lines are covered by tests.
❗ Your organization needs to install the Codecov GitHub app to enable full functionality.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@deliro
deliro merged commit 3565024 into master Aug 21, 2026
49 checks passed
@deliro
deliro deleted the fix/dependabot-ci branch August 21, 2026 17:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants