## Simple CI "Continuous Integration in a bitreich way" - A discussion Ivan J. ## Why? * I want this for Maemo Leste * There isn't a simple solution yet * https://stackify.com/top-continuous-integration-tools/ * More than fifty, all look repulsive * All current solutions are convoluted, mostly not modular, and require many resources and dependencies * A lot of CI implementations require _something_ graphical * Configuration * Dashboard * etc. * Many features offered in "modern" CI solutions are never used or needed, let's start from scratch and figure out what is actually necessary ## How? * My propositions: * drist * Makefiles * Shell scripts? * All of these should work on Linux/BSD/OSX * The tooling can be isolated in a small chrooted system * Although the problem of nested chroots arises ## drist * Simple * Already a deployment tool * Means multiple build nodes can be easily supported * Might even work unmodified ## Makefiles * Simple if you know what you're doing * Deterministic * Fast ## Shell scripts * Simple * Portable * Good for glue ## Discussion * Can these be combined into CI tooling? * Obviously yes. * How to make it clean? * How to work with chroots in this manner? * One drist rule/module for everything or modular modules? * (Insert Xzibit Yo dawg meme) * Separate jobs to push/compile/pull or all in one? * How to set up pipelines and job dependencies? * If push/compile/pull fails, you need to stop and report * Makefiles just rage quit * Shell scripts might help out here * User management and permissions? * Setting a standard or not? * Having a set of standard functions/calls that need to exist