Container / Virtualization gitlab-ci uses a docker container.
# use the official gcc image, based on debian # can use verions as well, like gcc:5.2 # see https://hub.docker.com/_/gcc/ image: gcc Travis CI on the other hand uses “sudo enabled, full virtual machine per build”.
dist: trusty sudo: required language: generic Install / Bootstrap Before doing the build we need to set up the build environment. While this isn’t that difficult to do from scratch there is an existing project, po-util, that will do the job.
Using shellcheck is a very easy way to avoid simple bugs in your shell scripts. By adding it to your CI you can easily make it a free check. To check all ‘sh’ and ‘bash’ files in my project I used the following code in ngenetzky/shlib.
Goal I just created a number of github repositories for particle. Much of the code was transferred from my existing code base at particle-projects. The primary goal of these projects was not to demonstrate my capability as a C++ programmer, but actually to demonstrate a good example for an open source particle project or library.
As such I have a few goals:
Offline builds (Thanks to po) Continuous Intgration (Thanks to travis-ci) Modern C++ Approach I created particle-project-base to serve as a solid foundation for my future projects and libraries.
Using Docker - No plugins required Last time I investigated using Docker inside the “master” container. It was pretty cool, but it was inconvenient when directories needed to be mounted to the containers. I intend to continue investigating the Docker plugins, but I felt like Jenkins needed some company for Valentines Day.
Jenkins JNLP Slaves as Docker Containers The goal is to add a “Normal” Jenkins slave node that can connect to the master in the typical fashion.
Avoid Docker-in-Docker Using Docker-in-Docker for your CI or testing environment? Think twice. by @jpetazzo explains why the DinD approach is bad for CI, and how using an alternative approach will allow the docker container to create sibling containers rather than child containers.
Modifying my Docker setup I need to install docker into in a layer on top of the standard Jenkins image. @mjuuso has already demonstrated this in getintodevops/jenkins-withdocker and there is an associated blog post (The simple way to run Docker-in-Docker for CI).