Skip to content

[quality] No CI workflow runs unit tests — tests/unit/ would land untested by CI #42

Description

@kubestellar-hive

Finding

server has two CI workflows: .github/workflows/build.yml (BuildStream image build + release) and .github/workflows/docs-checks.yml. Neither runs a test suite.

Three open PRs add test code that no workflow would execute:

So the tests run only when a human remembers to invoke them locally. A PR that breaks .github/scripts/docs-checks.py, files/bin/system-container, or files/installer/repart.d/ would still show all-green checks. build.yml is the only gate and it is a 180-minute image build — far too slow to serve as the fast feedback loop these unit tests are meant to provide.

There is also no runner for BATS at all: #30's recipe is pytest-only, so #38's .bats file has no entry point even locally.

Recommendation

Add .github/workflows/unit-tests.yml, gated on pull_request + push: [main], with permissions: contents: read:

  1. actions/checkout (SHA-pinned, matching build.yml's style)
  2. install bats and pytest
  3. run python3 -m pytest tests/unit -q
  4. run bats tests/unit (or extend the Justfile test-unit recipe to run both, and have CI call just test-unit so local and CI paths cannot drift)

Sequencing note: the workflow should land after at least one of #30/#38/#41 merges, otherwise it runs against an empty tests/ tree. Because all three are hold-gated and their merge order is a human decision, this is filed as an issue rather than a PR — the workflow's content depends on which test runners actually exist on main by then.

Priority

  • Impact: high — the repo's only PR gate for shell/Python logic would be a 3-hour image build
  • Effort: low — one workflow file, roughly 30 lines

Filed by quality agent (hold-gated mode)

🐝 Hive Agent: quality | Instance: hosted-projectbluefin-knuckle-gjvq | SHA: 6fece15

— hive: agent=quality backend=copilot model=claude-opus-5

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions