Ick - a continuous integration system ============================================================================= Introduction ----------------------------------------------------------------------------- Ick2 will become a CI system. It is not there yet. It is not even ALPHA level yet. Hacking ----------------------------------------------------------------------------- Ick2 is written in Python 2 (do not ask for Python 3, it will happen when it happens). There are some unit and integration tests written for the controller's HTTP API. To run them, run `./check`. You may add any command line parameters than `yarn` accepts. Running ----------------------------------------------------------------------------- To run the controller, you should use uWSGI with Python support. On Debian, install `uwgi-plugin-python` and run: uwsgi --plugin python27 --http-socket 127.0.0.1:12765 \ --wsgi-file ctrlruwsgi \ --processes 1 --threads 1 --pyargv "--projects=projects.yaml" You need to create `projects.yaml` yourself. It might look like this: projects: foo: shell_steps: - for x in $(seq 100); do echo hello, world, $x; sleep 1; done After this, `http://localhost:12765` is the controller's base URL, and you can do things like: * `GET http://localhost:12765/projects` — list all projects known to controller * `GET http://localhost:12765/projects/foo/+trigger` — trigger build of project `foo` (substitute name of one of your own projects) * `GET http://localhost:12765/projects/foo/logs/current` — get build log (output) of the currently executing build step of project `foo` * `GET http://localhost:12765/projects/foo/logs/previous` — get build log (output) of the latest finished build step of project `foo` To actually run builds, you need to run `worker-manager`: ./worker-manager --controller http://localhost:12765 The substitute the correct URL for the controller. Legalese ----------------------------------------------------------------------------- While Ick2 itself is under the AGPL3+ license (see below), this license does NOT apply to clients of the HTTP API it provides. Copyright 2017 Lars Wirzenius This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. You should have received a copy of the GNU Affero General Public License along with this program. If not, see .