Skip to content

Fix broken Makefile CI workflow #100

Description

@PRAteek-singHWY

The Makefile CI workflow currently reports a green check on every push, but if you look at what it's doing, it isn't really testing the project — it's installing some packages and then racing through make run / make stop against tooling that can't work in a hosted runner.

Here's what's wrong, in the order it matters:

make run can't start any service in CI.
make run delegates to runner.sh, which on Linux only knows how to spawn services inside gnome-terminal, konsole, xfce4-terminal, or xterm (runner.sh:20-32). None of those are present on a GitHub-hosted Ubuntu runner, so the script falls through to a silent background fallback and the step exits 0 without any APIS service actually starting. The "Run" check is decorative.

Even if it started, make stop runs immediately after.
The workflow goes Run → Stop back-to-back with no readiness wait, no health probe, no sleep. So even if a service did come up, it'd get torn down before it finished initialising — and CI can't tell a startup failure from a normal shutdown.

The MongoDB install path is broken on every modern runner.
The workflow uses apt-key adv --keyserver … (removed in Ubuntu 22.04+) and points at the bionic/mongodb-org/4.0 repo from a focal runner. On top of that, MongoDB 4.0 has been end-of-life since April 2022. The docs (docs/INSTALL_DOCKER.md §2.2) already document the modern signed-by keyring + MongoDB 7.0 pattern — the workflow just never got updated to match.

The runner image is on its way out.
runs-on: ubuntu-20.04 (makefile.yml:12) — GitHub has scheduled the 20.04 image for removal. Existing workflows will start failing once that lands.

What "fixed" looks like

  • CI exercises make build reliably on a current Ubuntu runner.
  • The Run / Stop steps either go away (build-only CI) or are replaced with a path that actually starts services headlessly and waits for them before stopping. The current race is worse than no test.
  • MongoDB install uses the same modern signed-by keyring + supported version that docs/INSTALL_DOCKER.md already documents.

References

  • .github/workflows/makefile.yml:12-39
  • runner.sh:17-37
  • docs/INSTALL_DOCKER.md §2.2

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

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions