Skip to content
This repository has been archived by the owner on Apr 27, 2023. It is now read-only.

periph/gohci

Repository files navigation

gohci - The Go on Hardware CI

PkgGoDev codecov

Genesis

All I wanted was to run go test ./... on a Raspberry Pi on both Pull Requests and Pushes for a private repository. I realized that it is possible to store the test's stdout to a Github Gist so I created a serverless CI.

The result is the distilled essence of a Continuous Integration service that leans heavily toward testing Go projects on hardware, specifically low power ones (Raspberry Pis, C.H.I.P., BeagleBone, ODROID, etc) but also works great on Windows and macOS.

Part of the gohci lab testing https://periph.io:

lab

Here's how it looks like on a PR when the workers start to handle it:

screen cast

View of the status on commits:

commits

Design

It hardly can get any simpler:

  • Only support one specific use case: Golang project hosted on Github.
  • There is no "server", only workers that you run yourself. Each worker must be internet accessible and HTTPS must be proxied down to HTTP.

Features

  • 100% free and open source.
    • Secure, you are in control. There's no third party service beside GitHub.
    • Enables free testing on macOS, Windows or single CPU ARM micro computer.
    • Low maintenance, run as systemd/launchd service.
  • Each worker can test multiple repositories, each with custom checks.
  • Each check's stdout is attached to the gist as they complete.
  • The commit's status is updated "live" on Github. This is pretty cool to see in action on a GitHub PR.
  • gohci-worker exits whenever the executable or gohci.yml is updated; making it easy to use an auto-updating mechanism.

Not convinced? Read the FAQ.md for additional information.

Convinced? See CONFIG.md to get started!

About

Go on Hardware CI: 100% free open source CI to run on RPis, macOS and Windows

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published