4

I'm developing some C++ projects. I have some SBCs (Raspberry Pi 3, Odroid n2) and I wanted to use one of them (odroid n2 is most powerful so it's the obvious choice) as a private buildserver.

I want it to:

  • once a day(night) build the project (cmake/C++)
    • run the tests and if something is wrong, send me an email.
    • build packages (deb,tar.gz,exe) for all target operating systems (linux, windows) and architectures (amd64, arm64, armhf)
  • it should be easy to configure (if I have to write scripts to do the above things, I might as well do that and run it from cron...)

I've tried installing Gitlab, but it doesn't have the packages for arm64 and I didn't want to build it from source (I expect problems and I don't have that much free time). Jenkins also doesn't seem to be lightweight.

  • 1
    What does "doesn't seem to be lightweight" mean? The Bitnami's Jenkins recommentation was 1 GB of RAM if I remember correctly, but I guess you'll be fine with few hundred megabytes -- just set them up in java launch options. And it's not CPU heavy, the compilation processes would need much more. – Nakilon Jun 19 '19 at 21:45
  • RAM is a problem on those small computers. GCC uses a lot of ram to compile projects so giving even 512 MB to Jenkins will slow down compilation considerably. – stilgar Jun 21 '19 at 11:48
  • Your 4gB should b emuch more than sufficient for Jenkins, which is industry standard, and so has many, many, many tutorials & plug-ins, plus great support. Give it a try; it's very simple to set up. And it can't be bet at the price ;-) – Mawg says reinstate Monica Jan 10 at 11:12
3

Drone.io is pretty lightweight CI server.

It is distributed as docker image and it is easy to setup.

It also allows you to keep pipelines as code. In their guides there are examples for several languages, including C++

2

http://linci.tp23.org/ might fit the bill, I use it for that purpose on raspberry pi and x86 micro instances. Scheduling uses cron and tsp its really just a common structure and file format for defining and running CLI commands for builds. Notifications hooks via irc, email or stomp messaging. Server components are existing C apps that are available in Debian (raspbian) probably other Linux flavours as well.

  • Quote from the website : "It was written to be light enough to run on a cloud VM with 512MB of RAM", so 4gB on the Odroid n2 should be no problem – Mawg says reinstate Monica Jan 10 at 11:13
  • 1
    defo light: all the servers involved, cron, tsp, sshd, etc take ~20Mb on my micro instance – teknopaul Jan 10 at 12:56

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.