Jenkins JIRA plugin: how to remove a version? - jenkins

In a Jenkins pipeline, I had used jiraEditVersion to change the name of an old project version in JIRA (eg: 100.0.001) to a new version (eg: 100.0.001.1234, where 1234 is a build number), but I found that the old version still existed. Are there any ways to remove the old version programmatically? I have checked the JIRA plugin document but cannot find any (https://jenkinsci.github.io/jira-steps-plugin/steps/version/).

Related

Problem with Jenkins plugins when moving to a new computer

After moving Jenkins to a new computer I cannot upgrade plugins since it thinks the new version is older than the installer.
I get the following message:
Some plugins could not be loaded due to unsatisfied dependencies. Fix these issues and restart Jenkins to re-enable these plugins.
Dependency errors:
Static Analysis Utilities (1.96)
Update required: Maven Integration plugin (2.12.1) to be updated to 2.17 or higher
Update required: Matrix Project Plugin (1.6) to be updated to 1.7.1 or higher
Update required: OWASP Markup Formatter Plugin (1.3) to be updated to 1.5 or higher
and several more.
I then try to upgarde Maven INtegration polugin (and alla others) it looks like the are installed and Jenkins is restarted. But I get the same error again.
When looking in the plugin folder I see that I have several version of the plugin. I try to remove the different folders and then detect that the old verision is still used even if the new version is available in the folder.
In the pluginmanager/installed the Maven Integration plugin is listed as version 2.12.1 and the possibility to DOWNGRADE to 3.8. 3.8 is the version that I upgrade to.
My conclusion is that during the move of the .jenkins folder to the new computer the dates of the old plugins are getting new values which confuses Jenkins. Is that a correct conclusion? How can I correct it?
Since the folder dates were changed long ago at the old computer I was not able to zip the old .jenkins folder with "correct" dates
However, I found a way forward anyway. I did like this:
Started with a newly installed Jenkins version.
Made sure I had all necessary plugins in the new Jenkins installation
Copied the following folders from the old computers .jenkins zip file:
jobs
nodes
secrets
users
workspace
Then I also moved the files in the .jenkins folder

Some plugins could not be loaded due to unsatisfied dependencies. Fix these issues and restart Jenkins

I was working on jenkins and working fine but i don't know what happened Jenkins shows following errors and no jobs are visible to me after that:
I am new in jenkins please help me to solve this.
As I understand the problem it could happened in cause of downgrading jenkins version or updating plugins "Pipeline: Node and Processes".
You need to restore previous jenkins version or downgrade plugin.
Additionally you can configure jenkins to get plugins' versions which fit your jenkins version in "Manage Jenkins" -> "Manage plugins" -> "Advanced" -> "Update site" and set the version you are currently using (for example https://updates.jenkins.io/stable-2.176/update-center.json)
Jenkins plugins are dependent on Jenkins LTS versions in use. Best way is while installing the Jenkins take latest (but stable) version of plugins.
Since you are using 1.176 version and trying to upgrade the plugins, the latest plugins do not support the older version of Jenkins (since Jenkins follow Parallel incremental development).
You can resolve the problem in 2 ways.
1. Downgrade the plugins and keep the LTS Jenkins version as it is. (not preferred solution since you will not be able to use latest functionality of the plugins and using old plugins is not secured).
Downgrade of plugins will also be suggested by Manage Jenkins --> Manage Plugins --> Installed
2. Upgrade Jenkins version (LTS 2.24x.x)
It is time taking option, but if you are heavely using jenkins for your work it is more suggested to upgrade the version. Besides new plugins have more secured and vast functionalities.
You can check the Changelog and can decided which version is good for you.
Take a reference of Upgrading Jenkins link.
To understand plugins and Jenkins LTS version dependency, use Jenkins wiki(Confluence Page).
e.g. Pipeline:Node and Processes plugin wiki indicates that for version 2.29 you need to have Jenkins version 1.150.1 or higher.
Note: Latest Jenkins version supports HTTPS instead of HTTP URL for advanced proxy options under Manager Jenkins.

Jenkins plugin upgrade

I have a large fleet of Jenkins instances running in a cluster, all having the LDAP plugin version 1.6 (Jenkins version 1.611). I want to fleet-upgrade the LDAP plugin version to 1.7 (to incorporate environment variables in my plugin configuration). How do I achieve this without manually uploading 1.7 version through UI for each Jenkins instance?
I tried writing a script which basically performs these operations for each Jenkins instance:
Replace the existing .jpi/.hpi file in $JENKINS_HOME/plugins for ldap plugin with the correct .hpi file (of the 1.7 version)
Edit config.xml under $JENKINS_HOME which has the version number
Safe restart Jenkins
It works fine till step 2 but as soon as I perform safe restart, Jenkins magically puts in the original .jpi/.hpi file (the 1.6 version file) back inside $JENKINS_HOME/plugins. Jenkins instance has the 1.6 plugin version again in the UI. Is there a better way to perform fleet plugin upgrades in general? I want to mention that I want the 1.7 plugin version, not the latest
How do I fix this? I even tried using curl (mentioned at https://stackoverflow.com/a/20848745/1746529) but didn't help.
Got a working answer on Google groups.
"As you are on 1.x create an empty ldap.jpi.pinned file as a sibling and that marker will instruct Jenkins not to replace with the bundled plugin."
Came across the documentation for it as well - https://wiki.jenkins-ci.org/display/JENKINS/Pinned+Plugins

Project Versioning - CI/CD - Jenkins - AEM

AEM muti-module project has pom.xml at each module level. Version can we changed at that level, new build shows the artifacts with updated version.
With versions, there would be a new AEM Package created for each version. We would want to uninstall/delete the old package before installing new version.
Question is, how can we handle the uninstallation/deletion part of old package (new package to be installed is of different version) in CI-CD job? We could think of following solutions
Query the list of packages to get the version and use that to uninstall.
Pass version as parameter to Jenkins Job in "Build with Parameters". But automatic build trigger on code check-in could have issue.
Has anyone faced similar situation? Please share if there is best practice which is followed for AEM CI-CD jobs for handling different release versions.
Querying the list of packages is your best option I think. You can collect any previous version of your package then, no matter when you deployed that specific package to that server the last time.
An alternative option might be to delete the package immediately after installing it, but I fear there might be lots of problems waiting for you then:
Some packages need a restart, you may not delete the package to early, ...
As I said, I would go for the querying solution.

Updating jenkins plugin from source

I currently have Build User Vars Plugin 1.1 installed in my Jenkins. Since version 1.1 of the plugin, there has been some important changes to the plugin code, and I want to pick them up. The question is what is the least amount of work to package up the hpi/jpi file that I can push on my Jenkins install that will contain latest changes.
It's fairly easy to build a plugin locally; you can then upload the hpi/jpi file to Jenkins via the Advanced tab in the plugin manager.
See the Jenkins plugin tutorial for detailed steps.

Resources