arrow_back Let's do some Debian Packaging (Workshop)
Getting started with continuous integration using Gitlab CI
Submitted by Raju Devidas (@rajudev) on Thursday, 22 February 2018
Technical level: Beginner
When someone changes the files that make up the software product and then attempts to check them in (in other words, attempts to integrate the changes into the main product code) you want to make sure that software can still be successfully built.
There is usually an external system, called the CI server, that either periodically or on every change, will grab the source files from version control, and attempt to build the product (compile/test/package). If the CI server can successfully do a build, the changes have been successfully integrated.
The CI server also has to be able to broadcast if the build failed or succeeded, so systems like Travis, Circle CI, Gitlab CI or Jenkins (one of the most used CI server today) etc. will have ways to send emails/texts as well as a dashboard-like web interface with a bunch of information about current and past builds, who checked-in code, when things broke, etc… (On your image above, this would be the Feedback Mechanism)
CI is important, because it ensures that on a continuous basis, you have a working product. This is important for all the developers who are working on the software as well as for all the people who want to have access to daily releases of the product, like QA.
This would be a introductory workshop on getting started with continuous integration.
People would be introduced to configuring a simple continuous integration setup for simple code projects initially and then we will take on to building complex projects.
I would be using gitlab CI as the prefered continuous integration setup.
- familiarity with the bash/shell
- Should know some git.
- Should be aware of container systems like Docker.
Raju contributes to various opensource projects in different ways as a coder, software packager, or by advocating about them at different conferences and workshops.
He has contributed to projects such as Debian, Hamara Linux, Sailfish OS etc.
He also has interest in Robotics and have participated in competitions such as Robocon. Because of this He has significant expertise with Arduino and different microcontroller boards such as Raspberry Pi or Beaglebone etc.