Separate coverage badge posting into non-fatal CI step #39

Closed
opened 2026-03-13 14:33:45 +00:00 by kert · 0 comments
Owner

Problem

Coverage badge posting is the last command in the test step. If the Gitea API is unreachable or secrets are misconfigured, the entire test step fails, blocking merges even though tests actually passed.

Fix

Split into a separate coverage-badge step with failure: ignore:

- name: coverage-badge
  failure: ignore
  depends_on: [test]
  commands:
    - uv run python dev/scripts/coverage_badge.py --post pytest.out

Woodpecker shares the workspace volume between steps, so pytest.out persists.

Also add depends_on: [lint] to the test step so lint runs first (currently they run in parallel, wasting resources when lint fails).

Acceptance criteria

  • Tests pass even if Gitea API is unreachable
  • Coverage badge is posted when API is available
  • Lint failure prevents test from starting
## Problem Coverage badge posting is the last command in the `test` step. If the Gitea API is unreachable or secrets are misconfigured, the entire test step fails, blocking merges even though tests actually passed. ## Fix Split into a separate `coverage-badge` step with `failure: ignore`: ```yaml - name: coverage-badge failure: ignore depends_on: [test] commands: - uv run python dev/scripts/coverage_badge.py --post pytest.out ``` Woodpecker shares the workspace volume between steps, so `pytest.out` persists. Also add `depends_on: [lint]` to the test step so lint runs first (currently they run in parallel, wasting resources when lint fails). ## Acceptance criteria - Tests pass even if Gitea API is unreachable - Coverage badge is posted when API is available - Lint failure prevents test from starting
kert added this to the P9: CI/CD Unification milestone 2026-03-13 14:33:45 +00:00
kert added the quality label 2026-03-13 14:33:45 +00:00
kert closed this issue 2026-03-13 14:37:40 +00:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: homelab/stack#39