Jenkins

Development
Topics
Overview
Philosophy
Architecture
Source code
Project management
Coding style
Debugging
Tools
GitHub
Git
Maven
IDEs
Jenkins
Travis
Dotfiles
Guides
Writing plugins
ImageJ Ops
Contributing to a plugin
Distributing your plugins
Development lifecycle
Building a POM
Developing with Eclipse
Hands-on debugging
Adding new ops
Adding new formats
Using native libraries
Tips for developers
Tips for C++ developers
ImageJ 1.x plugins
Versioning
Logging
Uber-JARs
Jenkins: Serving the ImageJ community since 2010!
ImageJ has a Jenkins server: a continuous integration system which automatically checks the code for build and test errors.

Jenkins tests builds and performs releases for SciJava projects. It deploys SNAPSHOT builds to the ImageJ Maven repository in response to pushes to each code repository's master branch. So any downstream projects depending on a version of LATEST for a given component will match the last successful Jenkins build—i.e., the latest code on master.

Because every build also runs the associated unit tests, Jenkins is instrumental in early detection of new bugs introduced to the codebase.

You can access Jenkins's last successful build artifacts from the Downloads page.

Jenkins also performs releases, including automatically deploying ImageJ 1.x and building installers for ImageJ 1.x.

Jenkins performs many other services too, such as keeping Git repository mirrors in sync, building javadocs and updating other web resources.

Travis CI

Developers of third party libraries and plugins can look at Travis for an open-source CI tool, with build configurations stored in the source repository itself.

Emotional Jenkins

Jenkins is ImageJ's robot butler! He does his job faithfully, and without rest.

When things are going well, he is happy. But when code breaks, he can become sad, or even angry:

Emotional-jenkins.png

Make sure you keep your code shipshape if you want to avoid the butler's wrath!