010af57ed4
- regressions and recoveries: list of jobs whose run status changed, ordered first by currently failing jobs, secondly by count of jobs since the status change, descending for currently failing jobs and ascending for currently passing jobs - low pass rates: list of the jobs with the worst pass rates calculated over all time - run time changes: jobs with the largest changes in build time. This is calculated as the difference between the range and the standard deviation over the past 10 runs. - average run time distribution: shows the number of jobs in the system divided into buckets based on their average runtime |
||
---|---|---|
example-scripts | ||
src | ||
test | ||
CMakeLists.txt | ||
COPYING | ||
docker-build-centos.sh | ||
docker-build-debian.sh | ||
laminar.conf | ||
laminar.service | ||
README.md | ||
UserManual.md |
Laminar CI
Laminar (http://laminar.ohwg.net) is a lightweight and modular Continuous Integration service for Linux. It is self-hosted and developer-friendly, eschewing a configuration UI in favor of simple version-controllable configuration files and scripts.
Laminar encourages the use of existing GNU/Linux tools such as bash
and cron
instead of reinventing them.
Although the status and progress front-end is very user-friendly, administering a Laminar instance requires writing shell scripts and manually editing configuration files. That being said, there is nothing esoteric here and the guide should be straightforward for anyone with even very basic Linux server administration experience.
See the website and the documentation for more information.
Building from source
First install development packages for capnproto (git)
, rapidjson
, sqlite
and boost-filesystem
from your distribution's repository or other source. Then:
git clone https://github.com/ohwgiles/laminar.git
cd laminar
cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/
make -j4
sudo make install
make install
includes a systemd unit file. If you intend to use it, consider creating a new user laminar
or modifying the user specified in the unit file.