# Introduction

A number of hosted continuous integration platforms have support for Go


# Details

| Provider | Documentation | Notes |
|:---------|:--------------|:------|
| [AppVeyor](http://www.appveyor.com/) | https://bitbucket.org/appveyor/test-go | Windows |
| [CircleCI](https://circleci.com/) |               |       |
| [Codeship](http://codeship.io) | https://www.codeship.io/documentation/languages-and-frameworks/go/ |       |
| [drone.io](http://drone.io/) | http://docs.drone.io/golang.html | open-source version: https://github.com/drone/drone |
| [GoCI](http://goci.me/) | http://goci.me/how | source code: https://github.com/zeebo/goci |
| [Magnum CI](https://magnum-ci.com/) | https://magnum-ci.com/docs/go |       |
| [Travis CI](http://travis-ci.org) | http://docs.travis-ci.com/user/languages/go/ |       |
| [Wercker](http://wercker.com/) | http://blog.wercker.com/2013/07/10/Golang-on-wercker.html |       |