:title: ladici - The LADI Continuous Integration software :docinfo: private-head,private-header :keywords: LADI, Continuous Integration, CI, lua = ladici - The LADI Continuous Integration software .WORK IN PROGRESS [NOTE] This is Work In Progress. == Goals * Minimal dependencies ** lua ** luasocket ** fengari (optional, for the client-side scripting frontend) * IRC based LPC/RPC * no database. Use lua files for configuration. Use filesystem symlinks & hardlinks where a simple filesystem tree is not enough. == Concepts * ladici HQ - the central machine/node * ladici factory - a machine/node (can be the HQ one) where lanes are hosted * ladici lane - a chain or DAG of rules & commands to be executed by ladici factories In simplest case, ladici deployment consists of single machine/node running ladici. The process running HQ can also run a factory and is pre-configured so with one that runs lane to create tarballs from sources. == Download (via GIT) * https://gitea.ladish.org/LADI/ladici[Upstream repo - self hosted] * https://github.com/LADI/ladici/[GitHub repo - cloud hosted] == Usage Running "./ladici hq" from source checkout will start the HQ node. By default HQ node comes with a HTTP server listening at 127.0.0.1:8010 for read-only HTML server-side scripting generated view. To run the client-side scripting in WWW browser with JavaScript: * Obtain a copy of "fengary-web.js". fengary-web-0.1.4 can be downloaded from https://github.com/fengari-lua/fengari-web/releases/download/v0.1.4/fengari-web.js * Copy fengari-web.js to the same directory that will serve ladici-fengari.html and ladici-fengari.lua * Setup web server to serve static content of the directory where ladici-fengari.html and ladici-fengari.lua and fengari-web.js reside and make ladici-fengari.html the default document. == Configuring Example of configuring the ladici http server to bind at 127.0.3.2 instead of 127.0.0.1 .~/.ladici [source,lua] ---- -- -*- Mode: Lua; indent-tabs-mode: nil; lua-indent-level: 2 -*- return { -- mode = 'hq', -- default: 'hq' http_bind = "127.0.3.2", -- http_port = 8010, -- default: 8010 } ---- For simple setups the above works good with /etc/hosts line like: ./etc/hosts [source,txt] ---- 127.0.3.2 ci.myproject.internal ---- == Live demo https://ci.ladish.org/[The LADI pipelines]