diff options
Diffstat (limited to 'docs/ci')
-rw-r--r-- | docs/ci/index.rst | 9 | ||||
-rw-r--r-- | docs/ci/tables/ci-baremetal-servers.rst | 21 | ||||
-rw-r--r-- | docs/ci/tables/ci-build-servers.rst | 27 | ||||
-rw-r--r-- | docs/ci/tables/none-ci-servers.rst | 5 | ||||
-rw-r--r-- | docs/ci/user-guide.rst | 100 |
5 files changed, 125 insertions, 37 deletions
diff --git a/docs/ci/index.rst b/docs/ci/index.rst index 08f23ac2f..445552a82 100644 --- a/docs/ci/index.rst +++ b/docs/ci/index.rst @@ -8,10 +8,17 @@ OPNFV CI ======== -TBD +OPNFV continuous integration (CI) is ran on a variety of :doc:`hardware <resources>` +connected to Jenkins and mangaged through YAML files in the `Releng`_ +repository. These YAML files are read by `Jenkins Job Builder`_ to +generate and upload Jenkins jobs to the server. See the :doc:`User Guide +<user-guide>` for resources on getting started with CI for your project. .. toctree:: :maxdepth: 2 user-guide resources + +.. _Releng: https://gerrit.opnfv.org/gerrit/admin/repos/releng +.. _Jenkins Job Builder: https://docs.openstack.org/infra/jenkins-job-builder/ diff --git a/docs/ci/tables/ci-baremetal-servers.rst b/docs/ci/tables/ci-baremetal-servers.rst index 2efea0ac2..cccf75092 100644 --- a/docs/ci/tables/ci-baremetal-servers.rst +++ b/docs/ci/tables/ci-baremetal-servers.rst @@ -11,11 +11,16 @@ - Jumphost OS / Version - PDF - IDF - * - `arm-pod6 <https://build.opnfv.org/ci/computer/arm-pod6>`_ + * - `arm-pod9 <https://build.opnfv.org/ci/computer/arm-pod9>`_ - Armband - Ubuntu 16.04 - - `PDF <https://git.opnfv.org/pharos/plain/labs/arm/pod6.yaml>`__ - - `IDF <https://git.opnfv.org/pharos/plain/labs/arm/idf-pod6.yaml>`__ + - `PDF <https://git.opnfv.org/pharos/plain/labs/arm/pod9.yaml>`__ + - `IDF <https://git.opnfv.org/pharos/plain/labs/arm/idf-pod9.yaml>`__ + * - `arm-pod10 <https://build.opnfv.org/ci/computer/arm-pod10>`_ + - Fuel + - Ubuntu 16.04 + - `PDF <https://git.opnfv.org/pharos/plain/labs/arm/pod10.yaml>`__ + - `IDF <https://git.opnfv.org/pharos/plain/labs/arm/idf-pod10.yaml>`__ * - `ericsson-pod1 <https://build.opnfv.org/ci/computer/ericsson-pod1>`_ - Fuel - Ubuntu 16.04 @@ -92,15 +97,15 @@ - PDF - IDF * - `intel-pod17 <https://build.opnfv.org/ci/computer/intel-pod17>`_ - - Compass4NFV + - Airship - - PDF - IDF * - `intel-pod18 <https://build.opnfv.org/ci/computer/intel-pod18>`_ - - JOID - - Ubuntu 16.04 - - `PDF <https://git.opnfv.org/pharos/plain/labs/intel/pod18.yaml>`__ - - `IDF <https://git.opnfv.org/pharos/plain/labs/intel/idf-pod18.yaml>`__ + - Airship + - + - PDF + - IDF * - `lf-pod1 <https://build.opnfv.org/ci/computer/lf-pod1>`_ - Apex - CentOS 7 diff --git a/docs/ci/tables/ci-build-servers.rst b/docs/ci/tables/ci-build-servers.rst index b58b0fc9b..b2f4893e3 100644 --- a/docs/ci/tables/ci-build-servers.rst +++ b/docs/ci/tables/ci-build-servers.rst @@ -16,33 +16,16 @@ - `Armband ENEA Team`_ * - `arm-build4 <https://build.opnfv.org/ci/computer/arm-build4>`_ - aarch64 - - CentOS 7.4 - - `Armband ENEA Team`_ - * - `arm-build5 <https://build.opnfv.org/ci/computer/arm-build5>`_ - - aarch64 - - CentOS 7.4 - - `Armband ENEA Team`_ - * - `arm-build6 <https://build.opnfv.org/ci/computer/arm-build6>`_ - - aarch64 - - CentOS 7.4 - - `Armband ENEA Team`_ - * - `ericsson-build3 <https://build.opnfv.org/ci/computer/ericsson-build3>`_ - - x86_64 - - Ubuntu 16.04 - - `Dianfeng Du`_ - * - `ericsson-build4 <https://build.opnfv.org/ci/computer/ericsson-build4>`_ - - x86_64 - Ubuntu 16.04 - - `Dianfeng Du`_ - * - `lf-build1 <https://build.opnfv.org/ci/computer/lf-build1>`_ + - `Armband ENEA Team`_ + * - `lf-build5 <https://build.opnfv.org/ci/computer/lf-build5>`_ - x86_64 - - CentOS 7.4 + - Ubuntu 18.04 - `Linux Foundation`_ - * - `lf-build2 <https://build.opnfv.org/ci/computer/lf-build2>`_ + * - `lf-build6 <https://build.opnfv.org/ci/computer/lf-build6>`_ - x86_64 - - Ubuntu 16.10 + - CentOS 8 - `Linux Foundation`_ .. _Linux Foundation: helpdesk@opnfv.org -.. _Dianfeng Du: dianfeng.du@ericsson.com .. _Armband ENEA Team: armband@enea.com diff --git a/docs/ci/tables/none-ci-servers.rst b/docs/ci/tables/none-ci-servers.rst index c4f403a64..48cf97b50 100644 --- a/docs/ci/tables/none-ci-servers.rst +++ b/docs/ci/tables/none-ci-servers.rst @@ -11,11 +11,6 @@ - Jumphost OS / Version - PDF - IDF - * - `arm-pod5 <https://build.opnfv.org/ci/computer/arm-pod5>`_ - - Armband - - Ubuntu 16.04 - - `PDF <https://git.opnfv.org/pharos/plain/labs/arm/pod5.yaml>`__ - - `IDF <https://git.opnfv.org/pharos/plain/labs/arm/idf-pod5.yaml>`__ * - cacti-pod1 - - diff --git a/docs/ci/user-guide.rst b/docs/ci/user-guide.rst index 9c9b74a41..a56a3a1b0 100644 --- a/docs/ci/user-guide.rst +++ b/docs/ci/user-guide.rst @@ -8,4 +8,102 @@ CI User Guide ============= -TBD +Structure of the Releng Repository +---------------------------------- + +jjb/<projects> + Individual project CI configurations. + +jjb/global + Collection of JJB defaults and templates shared by all projects. + +global-jjb/ + Git submodule pointing to `Global-JJB`_, which provides a variety of + common `CI jobs`_ such as ReadTheDocs + (RTD) builds. + +docs/ + This documentation. + +releases/ + Release configuration files for creating stable branches and tagging + repositories and related automation scripts. + +utils/ + Collection of common utilities used by projects + +utils/build-server-ansible + Ansible configuration for managing build servers. This is where + projects can add packages they need for their CI to the servers. + + +CI Setup +-------- + +Basic Setup +~~~~~~~~~~~ + +All projects are required to have a **+1 Verified** vote in Gerrit in +order to merge their code. As a new project that comes in may not yet +know how they want to setup CI, they can pass this validation by +configuring a 'no-op' job to run against their changesets. + +1. Clone the `Releng`_ repository, using the *Clone with commit-msg + hook* command under the *SSH* tab (displayed after logging in and + uploading an SSH key): + + .. note:: + <gerrit username> in the command below will be your username in + Gerrit when viewing the command on the website. + + For example:: + + git clone "ssh://<gerrit username>@gerrit.opnfv.org:29418/releng" && \ + scp -p -P 29418 <gerrit username>@gerrit.opnfv.org:hooks/commit-msg "releng/.git/hooks/" + + +2. Create a project directory under the *jjb/* directory, and an intial + project YAML file:: + + mkdir jjb/myproject + touch jjb/myproject/myproject-ci-jobs.yaml + +3. Modify the project YAML file to add the basic validation job:: + + $EDITOR jjb/myproject/myproject-ci-jobs.yaml + + :: + + --- + - project: + name: myproject + project: + - '{name}' + jobs: + - '{project}-verify-basic' + +Docker Builds +~~~~~~~~~~~~~ + +Docker build are managed through the **jjb/releng/opnfv-docker.yaml** +file. Modify this file with your project details to enable docker builds +on merges and tags to your project repository:: + + --- + - project: + name: opnfv-docker' + + [...] + + dockerrepo: + [...] + - 'myproject': + project: 'myproject' + <<: *master + +.. _Jenkins Job Builder: https://docs.openstack.org/infra/jenkins-job-builder/ +.. _Releng: https://gerrit.opnfv.org/gerrit/admin/repos/releng +.. _Global-JJB: https://docs.releng.linuxfoundation.org/projects/global-jjb/en/latest/index.html +.. _CI jobs: https://docs.releng.linuxfoundation.org/projects/global-jjb/en/latest/index.html#global-jjb-templates +.. _opnfvdocs: https://docs.opnfv.org/en/latest/how-to-use-docs/index.html +.. _support.linuxfoundation.org: https://jira.linuxfoundation.org/plugins/servlet/theme/portal/2/create/145 |