## Simple CI
"Continuous Integration in a bitreich way"
- A discussion
Ivan J. <
[email protected]>
## 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