Installing pagure-ci
====================
A CI stands for `Continuous Integration
<https://en.wikipedia.org/wiki/Continuous_integration>`_. Pagure can be
configured to integrate results coming from CI services, such as `Jenkins
<https://en.wikipedia.org/wiki/Jenkins_(software)>`_ on pull-request opened
against the project.
.. note: Currently, pagure only supports `Jenkins` but we welcome help to
integrate pagure with other services such as `travis-ci
<https://en.wikipedia.org/wiki/Travis_CI>`_.
Configure your system
---------------------
* Install the required dependencies
::
python-jenkins
python-redis
python-trololio
.. note:: We ship a systemd unit file for pagure_ci but we welcome patches
for scripts for other init systems.
* Install the files of pagure-ci as follow:
+--------------------------------------+---------------------------------------------------+
| Source | Destination |
+======================================+===================================================+
| ``pagure-ci/pagure_ci_server.py`` | ``/usr/libexec/pagure-ci/pagure_ci_server.py`` |
+--------------------------------------+---------------------------------------------------+
| ``pagure-ci/pagure_ci.service`` | ``/etc/systemd/system/pagure_ci.service`` |
+--------------------------------------+---------------------------------------------------+
The first file is the pagure-ci service itself, triggering the build on the
CI service when there is a new pull-request or a change to an existing one.
The second file is the systemd service file.
* Configure your pagure instance to support CI, add the following to your
configuration file
::
PAGURE_CI_SERVICES = ['jenkins']
* Activate the service and ensure it's started upon boot:
::
systemctl enable redis
systemctl start redis
systemctl enable pagure_ci
systemctl start pagure_ci