.. _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*