Introduction

A simple build server, able to run with low amounts of ram. Web UI is available. Project repository: https://github.com/pjotrscholtze/go-buildserver

Rationale

Before I used both Jenkins , and Drone , in non-cloud environments. While Drone is nice it is for some projects as it allows running each build step in a separate Kubernetes pod. It is also more bureaucratic, and thus slow to start. In smaller projects this can be a bottleneck, Jenkins is then faster, but still is not the fastest solution on limited resources, and also uses a decent chunk of RAM e.g. 500MB. This can be reduced of course a bit by running, the least amount of plugins as possible.

Requirements

Since I have very small requirements for most of the projects I play with, I thought let’s create a small service for this. Hence, this project. The functional requirements I had (at least right now in the beginning), are:

  • A job should be able to run periodically
  • A job should be able to be triggered with a webhook
  • I want to see the results of the last build
  • A clone should be made of the repository related to the job
  • A repository should be able to have multiple pipelines

Screenshots

Below are some screenshots, of the web UI.

Repo / job overview

Go buildserver repository / job overview page

Go buildserver repository / job overview page

Repo / job details

Go buildserver repository /job details page

Go buildserver repository /job details page