GopherCI

Continuous Quality Control

GopherCI helps you maintain high-quality Go projects, by checking each GitHub Pull Request, for backward incompatible changes, and a suite of other tests.

 

We're an open source project with affordable hosted plans, all with unlimited public and private repos.

API Compatibility Checking

apicompat is a tool to check for backwards incompatible changes.

When enabled, apicompat will highlight breaking changes, so they're visible before a change is merged.

Your server or ours?

If you choose, you can run your own instance of GopherCI, as we recognise hosted solutions aren't always the right solution.

With longer term planned support for GitLab, this will help organisations run GopherCI behind their firewalls.

GitHub Integrations

Using the GitHub Integrations API, you have fine-grained control over which repositories GopherCI can view, something oauth didn't provide.

GopherCI comments inline when detecting issues in new PRs ensuring your contributors maintain the same quality you do.

Open Source

GopherCI source code is available on GitHub and licenced under BSD 2-Clause.



Check it out!

Features

Supported

  • Uses the comprehensive suite of open source static analysis tools for Go, to begin with it's a short list, but we'll add them all and you can choose which tools you prefer.
  • Automatically check new repositories as they're added without requiring per repository configuration. This means every new repository you create will automatically be checked, and because all plans have unlimited repositories, every project is checked by default.
  • Affordable hosted plans, which funds the infrastructure that is monitored, backed up, updated and scales so you don't need to.
  • Adds comments to a pull request on the affected line, and only the lines that were changed.
  • Completely open source, GopherCI itself as well as GopherCI-web so you can improve and inspect how we manage security, billing, and contribute improvements.

Planned

  • Configure whether GopherCI comments and/or marks the build as failed#3.
  • Configuration of tools per repository, without (or optionally) requiring per repository dot files, see #8.
  • Private repositories, see #22.
  • Check for the minimum required version of Go, see #11.
  • Automatic instrumentation of tests to check for goroutine leak using github.com/fortytw2/leaktest, see #23.
  • ...and more, see issues.

Example Analysis


Go Vet

Detect potential bugs such as copying locks, formatting directives in Println and more with Go Vet.


Golint

Golint suggests stylistic issues such as missing documentation and consistent naming.


Staticcheck

Staticcheck provides advanced static analysis of common but critical bugs with little false positives.


Gosimple

Gosimple helps you simplify your code by suggesting simpler alternatives.


Run Tests

Ensure all your tests run, with the race detector without any per project configuration.


Gofmt

This check is to simply ensure the contribution has been ran through the gofmt utility.

Plans and Pricing

There is no free hosted plan, as you are able to run your own instance, although please consider the lowest plan to help fund development.

Early Access Period

  • GopherCI is in very early development and should be used with care.
  • Plan restrictions are not currently enforced.
  • Private repos are currently unsupported, see #22.
  • See issues pages for GopherCI and GopherCI-web for a more complete list.