Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .github/workflows/build.yml
Original file line numberDiff line numberDiff line change
Expand Up@@ -79,9 +79,9 @@ jobs:
# us from having to retrofit it later.
run: go test -race -cover ./...

- name: Coverage floor (internal/cli, internal/submit must not rot)
- name: Coverage floor (cli, submit, push, cluster must not rot)
# `go test -cover` above prints numbers but asserts nothing. This
# enforces a per-package floor on the two load-bearing, historically
# enforces a per-package floor on the load-bearing, historically
# thin-tested packages (the money path + submit orchestration) so a
# test deletion can't silently drop coverage. Floors ratchet UP only —
# see scripts/coverage-floor.sh (backend#1009).
Expand Down
9 changes: 9 additions & 0 deletions .github/workflows/e2e.yml
Original file line numberDiff line numberDiff line change
Expand Up@@ -7,11 +7,20 @@ name: Integration (e2e)
# 0% in unit coverage — this is where every live bug actually lived).
#
# Heavy (kind boot + image pulls), so it does NOT run on every PR:
# - on every push to develop
# - nightly (schedule)
# - manual (workflow_dispatch)
# - on a PR only when it carries the `e2e` label
#
# The push trigger exists because scheduled workflows always execute the
# DEFAULT branch's tree (main), which trails develop by dozens of commits —
# discovery_e2e_test.go, delete_e2e_test.go, and the delete-teardown job
# don't exist on main, so the nightly never actually ran them (#293).
# Running on develop pushes exercises the tree the tests were written for.

on:
push:
branches: [develop]
schedule:
- cron: "0 3 * * *"
workflow_dispatch:
Expand Down
14 changes: 11 additions & 3 deletions scripts/coverage-floor.sh
Original file line numberDiff line numberDiff line change
Expand Up@@ -10,7 +10,13 @@
# The floors are a RATCHET: set just under the current numbers, and bumped UP
# as coverage improves — never silently down. Lowering a floor must be a
# deliberate, reviewed edit here (with a reason), not a side effect of deleting
# tests. Current (develop): internal/cli ~70%, internal/submit ~75%.
# tests. Current (develop, 2026-07-14, ubuntu CI runner): internal/cli 82.9%,
# internal/submit 80.4%, internal/push 89.0%, internal/cluster 74.6%.
#
# NOTE: internal/cluster measures higher on a dev machine with a real
# ~/.kube/config (78.5% on macOS) than on the bare CI runner (74.6%) — the
# kubeconfig-resolution paths only execute where one exists. Floors must be
# set against the CI number, since that's where the gate runs.
#
# Usage: scripts/coverage-floor.sh (run from the repo root)
#
Expand All@@ -20,8 +26,10 @@ set -euo pipefail
# "package:floor" entries. Keep floors integers; coverage is compared as a
# float against them.
FLOORS="
internal/cli:68
internal/submit:72
internal/cli:80
internal/submit:78
internal/push:87
internal/cluster:73
"

status=0
Expand Down
Loading