Upgrade from Jenkins 1.656 to Jenkins LTS 2.440

Hello All,

We are using Jenkins 1.656 (I know very old) to Jenkins 4.440.x LTS.
What should be the steps we follow? Can anyone please guide? Any suggestions will help.

Jenkins: 1.656
OS: Windows NT (unknown) - 10.0
Java: 1.8.0_66 - Oracle Corporation (Java HotSpot(TM) Client VM)
---
ant:1.2
antisamy-markup-formatter:1.1
audit-trail:2.2
credentials:1.18
cvs:2.11
disk-usage:0.28
email-ext:2.42
external-monitor-job:1.4
javadoc:1.1
jobConfigHistory:2.14
junit:1.2-beta-4
ldap:1.11
mailer:1.11
matrix-auth:1.1
matrix-project:1.4.1
maven-plugin:2.13
pam-auth:1.1
script-security:1.13
ssh-credentials:1.10
ssh-slaves:1.9
subversion:1.54
token-macro:1.12.1
translation:1.10
windows-slaves:1.0

Well, there might be some problems along the way. Personally, I did a fresh install (and copy job configurations once I got a new installation working), but I guess you might try to upgrade the whole thing. I’m not sure if that is possible because even upgrading the configuration of jobs didn’t fully work for me.

Some gotchas:

  1. You will need a new Java version probably (JDK17 is a good choice). So probably do it on some other machine then your current one.
  2. You will need to update Java on all agents / nodes (old sIave nodes). The Java version need to be the same on all Jenkins nodes. Otherwise thing will appear to work, but builds will break randomly.
  3. Some plugins might not be available for the new version. You will need to check.
  4. Not all job configurations can be updated automatically!
    • First make sure you have all plugins installed.
    • Jenkins should provide a warning about unknown/leftover configuration. Even if you will find all plugins some configurations might be too old to be upgraded.
    • If you used PostBuildScript you will need to upgrade job configuration with a separate script, see: GitHub - Eccenux/jenkins-postbuild-converter.
  5. If you are using Groovy then script approval will bite you.

Oh, and also remember to disable scheduled jobs while you are migrating (so they are not executed while you are still testing your new installation).

If you are lucky, it might be a smooth transition. Most of the configuration is actually updated without problems. Major problems for me came from heavily using PostBuildScript and Groovy system steps in old Jenkins.

1 Like

Oh, from your list I know that those plugins are not available:

For job history I recommended putting you job configurations in Git or SVN. That way you also have an external backup. Obviously this has to be a private repository.

1 Like

Hello @Nux,

Thank you so much for detailed explanation. This is really helpful. I will definitely keep these things in mind.