Implement a simple CI task that gets Blubber source code from Gerrit, builds it with Go, and runs its unit tests.
I did a lightweight evaluation of GitLab-CI as described below. I did
not evaluate it, except from the CI angle: I didn't consider it as a
git hosting platform, or for code review, or for ticketing.
The evaluation consisted of using GitLab CI to create a job that
builds Blubber and runs its unit tests. I created myself on account on
gitlab.com, and imported the Blubber repository there. I then added a
.gitlab-ci.yml file to the repository:
build: image: golang:1.11 script: make && make unit
This uses the golang:1.11 Docker image to run make followed by
make unit. This works, and it was easy and smooth.
There was a problem initially, but this turned out to be due to an
older version of Go and how GOPATH worked with that, and where the
version expected the source tree to exist. Upgrading to use Go 1.11
and adding a go.mod to the source tree, by @dduvall, fixed this.
Gitlab-CI seems to be easy to use, and easy to get started with. CI
builds are fast enough. Builds happen in containers, which may or may
not be sufficient, but it should sufficient for most things. Anything
that can't be done in a container, or on Linux, can be done by running
an ssh command to another host that does the actual work.