Jenkins

From Wikitech
Revision as of 22:02, 7 December 2012 by Hashar (Talk | contribs)

Jump to: navigation, search

Jenkins is a software coming from the Java community, to assist in building a continuous integration system. It offers a highly modular system which has allowed other community to add their own plugins (such as GIT, PHP...). Wikimedia Foundation is using Jenkins to run MediaWiki tests and generates nightly build of its Android applications.

Contents

Upgrading

Upstream does a release every week and a stable one from time to time, also named Long Term Support (LTS). We will certainly want to at least upgrade to LTS whenever it is released and possibly to a snapshot in between depending on bug fixes.

Updating

Debian packages can be installed on Ubuntu and are made available at:

http://pkg.jenkins-ci.org/debian/ http://pkg.jenkins-ci.org/debian-stable/

Per ops convention, the packages need to be copied to apt.wikimedia.org

Getting new packages on apt.wikimedia.org

The package needs to be imported to the repo per instructions on Reprepro

This means connecting to brewster, copying the .deb file over and:

reprepro -C universe includedeb lucid-wikimedia jenkins_1.431_all.deb; reprepro copy precise-wikimedia lucid-wikimedia jenkins
Note 
This direct import is only ok because the jenkins packages just contains a Java WAR file. Other packages need to be rebuilt before adding them to our repo.

Deploying

Jenkins is deployed on gallium host, reserved for continuous integration purposes. It can safely be restarted at anytime as long as the developer community is aware about it ( #mediawiki / #wikimedia-dev ). You will most probably want to have one continuous integration person floating around while doing the upgrade since plugin dependencies might broke once Jenkins is upgraded.

To upgrade the package, just apt-get update && apt-get upgrade jenkins. (or tell puppet to ensure "latest")

How to

Restart Jenkins

/etc/init.d/jenkins restart

Some platform engineering people are also allowed to restart it through sudo

Logs

Main application logs:

tail -f /var/log/jenkins/jenkins.log

Disable plugin

Jenkins plugins are placed in /var/lib/jenkins/plugin/ and ends with a .hpi extension. To disable a plugin, renames it to .hpi.disable and restart Jenkins.

Links

bug 31877 bug about upgrade done in April 2012 bug 41973 bug tracking the next LTS upgrade.

Worklog

Issues about upgrade done on April 5th 2012 :

Personal tools
Namespaces

Variants
Actions
Navigation
Ops documentation
Wiki
Toolbox