Essential jobs on jenkins

There are many jobs running on jenkins that are essential for monitoring the health of the build, the branch and general stability of cloudstack. Every committer and contributor to the project is expected to know where these builds are and how to view the failures of a job.

  • build--master-noredist / cloudstack-master - these are the cloudstack build jobs that run the entire maven clean install
  • build-systemvm-master - systemvm build job that generates system vm templates
  • build-docs-install-guide / build-docs-admin-guides - docs for admin and install guides
  • cloudstack-marvin - marvin build
  • package-rhel63 / package-deb - rhel63 and debian builds

views

We divide per-release set of jobs into its own view. So you will see views that follow targeted release branches. Views exist for the 4.0, 4.1, 4.2 etc release lines. The default view on the jenkins landing page is usually the current release that is in progress. At the moment all views are manually created using the jenkins ui.

master

The master view typically contains all the necessary jobs that are cloned into jobs for a specific release. When a new release is announced, the release manager (or whoever can access jenkins) will create a view for the branch and configure all jobs to point to that branch.

management

The management view will generally contain jobs that are required for administration of jenkins and other related infrastructure. These are not jobs of cloudstack but just helper jobs eg: copying /syncing mirrors. reviewboard integration etc.

nomenclature

There is a method to the madness of naming the jobs that are on jenkins. Here's a loose classification of the set of jobs and how to name them:

job-regex

description

build-*

Any jobs that perform a build of a specific module using mvn. These are generally java components

test-*

Any jobs that will run tests. These could be unit/integration tests

package-*

Jobs that will create binaries - rpms/debian packages

-docs-*

Any jobs that build our publican documentation

mgmt-*

Jobs specific to management of the project infrastructure

Apart from the above the job will also (optionally) contain the name of the branch against which it is targeted to run. Eg:

  • build-master-noredist - builds all of cloudstack with the noredist components on the master branch.

backup

All the jenkins configuration is backed up to an S3 bucket daily. Since most of our configuration is done on the jenkins ui it can be difficult to tell the nature of audits/changes one performs on the jobs. Moving to a github based job configuration is targeted for the near future.

  • No labels