finds.dev← search

// the find

defunkt/cijoe

★ 1,047 · Ruby · MIT · updated Oct 2011

CI Joe is a fun Continuous Integration server. Unmaintained.

CI Joe is a single-file-ish Sinatra app that runs your test command on a git push and reports pass/fail through a web page or a /ping endpoint. It's from 2009-2011 and explicitly unmaintained, so this is really only relevant if you're studying a minimal CI server design or need something absurdly simple for a personal project on old Ruby.

The core idea is genuinely elegant: it doesn't care what language or framework you use, it just checks the exit code of whatever command you configure via git config. The git-hooks-as-extension-points design (after-reset, build-failed, build-worked) is a clean way to let users bolt on notifications or environment setup without touching the codebase. The whole thing is small enough to read in one sitting, which makes it a decent reference for 'what's the minimum viable CI server.'

It does a hard git reset against the remote on every build, which will silently destroy unpushed commits if you point it at the wrong repo — that's a data-loss footgun baked into the design. No maintenance since 2011: no HTTPS support mentioned, HTTP basic auth for triggering builds is weak by modern standards, and it predates any concept of containerized or parallel builds (it explicitly runs one build at a time with a naive queue). Dependencies (Sinatra, whatever gem versions from deps.rip) are over a decade stale and likely won't install cleanly on current Ruby without real effort.

View on GitHub →

// want more like this?

We dig through GitHub every week and send a few repos picked for what you actually care about — each with an honest take like this one.

Get finds in your inbox → Search again →