User Tools

Site Tools


octopus:project_guidelines

CI Guidelines for OPNFV Projects

This page explains what basic things each OPNFV project needs to do in order to enable the CI for the project.

It is not complete and will evolve together with OPNFV itself.

Please note that this guide assumes the Git and Gerrit related stuff have already been set up for the project you are working on.

If the project has already been approved by TSC but Git/Gerrit has not been set up for it yet, contact LF right now by sending mail to opnfv-helpdesk@rt.linuxfoundation.org together with the details of the project and get it done.

Steps to Take

Here is the list of steps to take in order to enable CI for each project. See details section for more information.

  • Determine what to check/test in Commit Gate for every patch for your project
  • List what to check/test in Commit Gate for your project
  • Add/Modify Jenkins Jobs

Details

What to Check/Test in Commit Gate

Commit gate testing is done automatically upon arrival of a new patch and helps us to keep the quality of master branch above certain level and enforce standards for example how to format the commit message. It also provides feedback regarding the quality of the commit by scoring and adding information on Gerrit.

If a commit fails to pass these tests, it won't be merged to master until it passes commit gate.

Since each project has its own nature, requirements, and languages used for implementation, it is natural to have different type of tests in commit gate. Therefore, you must determine what you want to test when a new patch is submitted to protect the quality and give feedback.

An important thing to keep in mind while deciding the scope is that the commit gate testing is generally the shortest/fastest loop in CI. So, the time it takes to run the commit gate testing should be reasonable.

For example, OpenStack Gate Tests could take up to 1 hour in some cases. But faster is better so we don't build up the queue in Gerrit which could result in tricky merge situations and in CI which could increase the feedback time.

Here are some examples regarding what could be run in commit gate on each and every patch.

  • commit message check
  • style/lint
  • unit test
  • basic build
  • subset of integration tests

See the corresponding flow from this link.

Provide Input

Please provide your input on Etherpad, https://etherpad.opnfv.org/p/octopus.

Jenkins Jobs

All the projects that were created and approved on or before 2015-02-10 have initial/basic jobs created on OPNFV Jenkins, https://build.opnfv.org/ci/.

If you are a project creator or committer, you either need to contact Octopus team to get help regarding how to set up/configure jobs for your project or do this yourself.

If you prefer to do this yourself, please follow the steps listed on the page https://wiki.opnfv.org/octopus/jenkins_wow.

We encourage/advise you to contact Octopus Team first for Jenkins related questions, especially during this phase.

Further Reading

octopus/project_guidelines.txt · Last modified: 2015/03/01 13:07 by Fatih Degirmenci