.. _jenkins_setup:
How to setup a node for CI intergration
=======================================
*NOTE that this guide has only been tested with Jenkins, but we assume a similar
set of tools would be required for different CI systems as well.*
This page is intended to provide pointers to useful instructions
that you need to setup your ``Jenkins`` executor and a list of tools install on it in order to
run the automated tests using the ``ci-management`` pipelines that are used on the `OpenCORD Jenkins `_
.. _jenkins_node:
Connect an executor to Jenkins
------------------------------
A good guide to do this can be found at ``_.
At ONF we setup one of the node in the Kubernetes cluster as Jenkins Agent, but that is not mandatory
as long as ``kubectl`` installed on the Jenkins Agent can interact with the cluster.
Prerequisites for this step are listed in the page, but reported here for your convenience:
* Ubuntu (our executors use 20.04, other versions/distros might work as well but they have not been tested)
* Java
* A valid Linux user account that can perform the required tasks on the agent server.
(We suggest to use a dedicated ``jenkins`` user)
Once the executor is setup in as a Jenkins Agent there are a few other tools that the pipeline
will require in order to run the test cases:
* Kubectl - ``_
* Helm - ``_
* Kail - ``_
* Python3 - ``_ (if you want to default ``python`` to ``python3``: ``_)
* pip3 - ``_
* virtualenv - ``_
* repo - ``_
* sshpass
* jq
* make
*NOTE that the tool without links are ``apt`` installable*