Jenkins

From Official Kodi Wiki
Jump to navigation Jump to search
Home icon grey.png   ▶ Team XBMC
▶ Development
▶ Category:Team XBMC specific notes
 
▶ Jenkins


This page describes the "Jenkins" builder used by Team XBMC to build the variety of releases from Team XBMC

Jenkins

Jenkins start.jpg

Jenkins is the successor of Buildbot which was harder to maintain and Jenkins also offers a wide variety of plugin that can be used to benefit further development and testing.

When going to http://jenkins.xbmc.org you are shown the current frontpage like shown below and you start at the dashboard giving you several build statistics and overview of current used builders.

You also see tabs for each platform that contain specific builders for each one of those. The helpers contains like the name says helpers that can aid in doing quick builds like build all platforms or uploading of XBMC releases to our mirrors.

Building

Building using Jenkins is only allowed by XBMC Team members. Team members that have XBMC git rights are allowed to use these builders.


Automated builds

Automated build are started at a specific time which can be configured at for each job. At the moment we use the job XBMC-BuildAll which is triggered by a timer. It starts the list of separate jobs listed below and by default will build the master branch from https://github.com/xbmc/xbmc

  • XBMC-Android-ARM
  • XBMC-IOS-ATV
  • XBMC-OSX-32
  • XBMC-OSX-64
  • XBMC-WIN-32

Timed builds are considered nightly builds and are uploaded to http://mirrors.xbmc.org/nightlies/ The build time is set using cron and using the XBMC-BuildAll configure page.

Starting manual build

To start a manual build to build a certain release or just for testing/compiling purpose you have two choices.

Specific platform

Jenkins platforms.jpg
To build a specific platform you must click on the platform of choice you want.
Jenkins singlebuild1.jpg
After that you are presented with the following screen (some option may not be visible to you due to restrictions).

This gives an overview of the available option and the build history of the platform.

To start a build click on 'Build Now where you can provide the necessary information on what you want to build.

Jenkins singlebuild2.jpg
Here you can choose what type of release you want to build, branch/tag or commit, if you want to upload the finished build to the server http://mirrors.xbmc.org/test-builds/ and what git repository you want to build from (i.e. your own one).

Do note if you just want to do a compile run, please disable uploading the results as this will save in total time needed and won't upload unnecessary builds to our mirrors.

Once you started building you can follow it's progress with the progress bars or click on the console to view the compiling progress.


Build all platforms

Jenkins buildall1.jpg

By clicking on the XBMC-BuildMulti-All job in the helper tab you get several options on the left side just like on a single platform build. Click on Start a new build. This process is the same as the single builds for each platforms with the only change this will trigger each individual builder that is currently linked to this build job.


Jenkins - Github Integration

Testing Pull Requests

Before merging it is strongly advised to first compile the pull request before merging. You can trigger this by adding a comment on github containing the following sentence: "jenkins build this place" This sentence doesn't have to be a comment on it's own and can be combined with other text concerning that PR. This will only work for Team XBMC members who have git commit rights. After the PR has been successfully build this will be add the the merge button that it is "safe to merge".

Configure Jenkins - Github Integration


See also