Next: , Previous: , Up: BASS v0.1.0-211-g567060e   [Index]


Why?

Why not BuildBot, Jenkins, TravisCI or similar solutions? They are aimed to be run on large installations, where highly isolated untrusted code is run. No developers are expected to be able to login on their slave nodes for debugging in case of tests failure. But if you want a small installation, where you can easily login everywhere, where only Unix-like systems are involved, all those CI solutions are a burden to install and quickly use.

Moreover all of them require bloated JavaScript-driven Web-browser. BuildBot is some kind of an exception, being much more simpler. Its early versions worked without JS-poisoned Web-interface. But try to install Python software with source dependencies from PyPI – you will be excited to see dependency of very basic packages on Rust.

What is the problem with Rust? There is no official way to bootstrap it, except for downloading and blind execution of some binaries for your platform.

None of them has any kind of package management. Actually does not have to, but you are expected to manually install required software on each slave in that case. Docker could help there, but it supports only GNU/Linux.

But what portable package manager choices are available, supporting multiple completely different operating systems? Nix supports only GNU/Linux for a long time (however initially it had support of FreeBSD at least). The only cross-platform well-known choice is NetBSD’s pkgsrc. But, unlike Nix, being the classical installation system, it won’t be able to install multiple version of the same package painlessly or work in completely isolated temporary directory of the CI’s build job. And both of them, especially Nix, have considerable learning curve.


Next: Overview, Previous: BASS v0.1.0-211-g567060e, Up: BASS v0.1.0-211-g567060e   [Index]