question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

Retire jenkins.imagej.net

See original GitHub issue

Our faithful Jenkins server has served us well for several years. However, Jenkins is a complex piece of software with many security concerns and nuances. LOCI is making a concerted effort to reduce the number and complexity of services it runs, in favor of community- and cloud-based services whenever possible. E.g., rather than hosting the ImageJ source code in SCM on the LOCI server rack, all code is hosted here on GitHub. This is superior in pretty much every way, especially for community-oriented collaboration and development.

For continuous integration, the cloud-based services Travis CI (for Linux and macOS) and AppVeyor (for Windows) are freely available for OSS projects, and have become very popular and reliable. As such, the time of the ImageJ Jenkins draws to a close. This issue describes the work that needs to be done to fully migrate away from Jenkins in favor of Travis and Appyveyor for all ImageJ-related CI tasks.

  • Migrate pure-Java component builds to Travis. Most of our components are pure Java and build the same on every platform. So we can use Travis to build master whenever there is a push, and deploy the result to the ImageJ Maven repository. This replaces many individual Jenkins build jobs.
  • Use Travis to release components to ImageJ Maven repository. This partially replaces the private Release-Version Jenkins job.
  • Use Travis to release components to OSS Sonatype. This partially replaces the private Release-Version Jenkins job. Verify that cache invalidation still works, and/or is no longer necessary, such that released artifacts are immediately available from imagej.public group.
  • Use Travis to manage ImageJ1 repositories. There are several Jenkins jobs in a chain for detecting when ImageJ1 has changed and pushing those changes to ImageJA.
  • Multi-platform builds. We need to use both Travis and AppVeyor, and they need to detect when to auto-close (and when not to auto-close) the staging repository, such that all platform artifacts are successfully deployed.
  • GPG signing. We want to sign all artifacts when GPG credentials are available. Right now, Jenkins only signs things being deployed to OSS Sonatype. The username is scijava-ci with “real” name SciJava CI where applicable. Email can be scijava-ci@scijava.org or similar. The release-version.sh script is currently where GPG settings are validated, but release:perform on the cloud side is where it will actually be used. This must be reconciled.
  • Fiji distribution bundles. This includes Stable-Fiji-Java-8 and Stable-Fiji-MacOSX.
  • Convert remaining jobs to cloud CI. This includes:
    • SciJava Maven plugin – the catch with this one is that it currently deploys SNAPSHOT builds to OSS Sonatype snapshots repository – we need to decide whether to keep doing that (and if so, whether to generalize that to all OSS-Sonatype-based projects)
    • BoneJ2 (bonej-org/BoneJ2#65)
    • MorphoLibJ
    • BAR
    • H5J_Loader_Plugin
    • github-backup-osx
    • MPI-CBG jobs – my preference is to simply retire these jobs; when @fjug and co. need CI builds for Indago et. al they can switch to Travis at that time
    • Git mirror jobs – my preference, after much consideration, is to completely retire all of git.imagej.net – there are only a small handful of projects where I think the Git mirror is even useful, and really, we can resurrect them individually using GitHub + Travis if the need arises in the future
    • OpenSPIM jobs
    • SLIM-Curve jobs
    • Internal server jobs (some private jobs) – main things are: A) Drupal cron (which can be set up inside each Docker container using cron as normal); B) disk usage checks (which can be set up via cron); C) some public service validation such as the Validate-Javadoc (which needs a Travis analogue somehow)
  • Auto-update status.scijava.org using Travis. Replace obsolete Source-Code-Status job with (nightly?) Travis CI build of scijava/status.scijava.org.

Issue Analytics

  • State:closed
  • Created 6 years ago
  • Reactions:5
  • Comments:9 (8 by maintainers)

github_iconTop GitHub Comments

1reaction
ctruedencommented, Apr 22, 2020

There are no remaining jobs from Jenkins that we have missed over the past year. We are fully Travisified! 🎉

0reactions
imagejancommented, May 28, 2020

@ctrueden wrote:

I don’t think any tooling makes use of the wayne branch now. So I deleted it, and we’ll see if anything breaks.

There’s one situation where it would be useful to have the latest changes from imagej1 on an own branch in ImageJA as well: when testing ij1-related repositories, to simplify pinning to the daily build, e.g. in https://github.com/imagej/ij1-patcher/pull/47.

See also https://github.com/imagej/ij1-builds/issues/1.

Read more comments on GitHub >

github_iconTop Results From Across the Web

Jenkins - ImageJ Wiki
... ImageJ community Jenkins server: a continuous integration system which automatically checked the code for build and test errors, but it is now...
Read more >
Fiji / ImageJ release versions - Development - Image.sc Forum
Issue: Retire jenkins.imagej.net. opened by ctrueden on 2017-10-04. Our faithful Jenkins server has served us well for several years.
Read more >
imagej/imagej - Gitter
@imagejan I am going to retire the ImageJ Jenkins javadoc jobs in favor of using Travis CI, and pushing the results to GitHub...
Read more >
Consider deploying SNAPSHOT builds to maven.scijava.org · Issue ...
Currently, the imagej branch of ImageJA is synchronized with released versions of ij.jar (requiring that ... Retire jenkins.imagej.net imagej/imagej2#178.
Read more >
ImageJ2: ImageJ for the next generation of scientific image data
Background: ImageJ is an image analysis program extensively used in the ... images results in a match of net.imagej.ops.math.IIToIIOutputII.
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found