1 .. This work is licensed under a Creative Commons Attribution 4.0 International License.
2 .. SPDX-License-Identifier: CC-BY-4.0
3 .. (c) Open Platform for NFV Project, Inc. and its contributors
11 Structure of the Releng Repository
12 ----------------------------------
15 Individual project CI configurations.
18 Collection of JJB defaults and templates shared by all projects.
21 Git submodule pointing to `Global-JJB`_, which provides a variety of
22 common `CI jobs`_ such as ReadTheDocs
29 Release configuration files for creating stable branches and tagging
30 repositories and related automation scripts.
33 Collection of common utilities used by projects
35 utils/build-server-ansible
36 Ansible configuration for managing build servers. This is where
37 projects can add packages they need for their CI to the servers.
46 All projects are required to have a **+1 Verified** vote in Gerrit in
47 order to merge their code. As a new project that comes in may not yet
48 know how they want to setup CI, they can pass this validation by
49 configuring a 'no-op' job to run against their changesets.
51 1. Clone the `Releng`_ repository, using the *Clone with commit-msg
52 hook* command under the *SSH* tab (displayed after logging in and
53 uploading an SSH key):
56 <gerrit username> in the command below will be your username in
57 Gerrit when viewing the command on the website.
61 git clone "ssh://<gerrit username>@gerrit.opnfv.org:29418/releng" && \
62 scp -p -P 29418 <gerrit username>@gerrit.opnfv.org:hooks/commit-msg "releng/.git/hooks/"
65 2. Create a project directory under the *jjb/* directory, and an intial
69 touch jjb/myproject/myproject-ci-jobs.yaml
71 3. Modify the project YAML file to add the basic validation job::
73 $EDITOR jjb/myproject/myproject-ci-jobs.yaml
83 - '{project}-verify-basic'
88 Docker build are managed through the **jjb/releng/opnfv-docker.yaml**
89 file. Modify this file with your project details to enable docker builds
90 on merges and tags to your project repository::
108 Documentation is build using they Python Sphinx project. You can read
109 more about how these build work and how your documentation should be
110 setup in the `opnfvdocs`_ project.
112 Create a file at **jjb/myproject/myproject-rtd-builds.yaml** with the
119 project-name: myproject
121 project-pattern: 'myproject'
122 rtd-build-url: <request from LFN IT>
123 rtd-token: <request from LFN IT>
126 - '{project-name}-rtd-jobs'
129 Open a ticket with a link to the change adding your documentation
130 at `support.linuxfoundation.org`_ and the LFN IT team will
131 provide you the *rtd-build-url* and *rtd-token*.
133 This will create jobs to build your project documentation (under *docs/*
134 in your project repository) on proposed changes, and trigger a rebuild
135 on the RTD site when code is merged in your project.
137 .. _Jenkins Job Builder: https://docs.openstack.org/infra/jenkins-job-builder/
138 .. _Releng: https://gerrit.opnfv.org/gerrit/admin/repos/releng
139 .. _Global-JJB: https://docs.releng.linuxfoundation.org/projects/global-jjb/en/latest/index.html
140 .. _CI jobs: https://docs.releng.linuxfoundation.org/projects/global-jjb/en/latest/index.html#global-jjb-templates
141 .. _opnfvdocs: https://docs.opnfv.org/en/latest/how-to-use-docs/index.html
142 .. _support.linuxfoundation.org: https://jira.linuxfoundation.org/plugins/servlet/theme/portal/2/create/145