Updating jenkins plugin from source - jenkins

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.

Related

How to install TFS plugin on jenkins?

I want to install TFS plugin on jenkins but I cannot to do it through Manage jenkins section as my company's network is not allowing me to do it.
Can you please suggest on how I can manually download the plugin and add it on jenkins folder?
thanks in advance
If you are talking about : https://github.com/jenkinsci/tfs-plugin, then you can try to download the tfs.hpi file from Github (The latest release is currently 5.157.1) and then manually install the plugin in Jenkins:
Manage Jenkins > Manage Plugins > Advanced > Upload Plugin and select the plugin file downloaded previously (Make sure to have git-plugin installed normally first so all additional dependencies are in place).

jenkins - the Publish Over SSH plugin not displayed

I am working with Jenkins and I want to install the Publish Over SSH Plugin, but I didn't see the plugin not in the Available Tab, and not in the Installed Tab.
Is it possible to install this plugin in another way?
Manual installation :
0- donwload source code zip file from here under:
https://github.com/jenkinsci/publish-over-ssh-plugin.git
1- install mvn on your local machine if not yet.
2- open terminal in the folder (source code folder which is downloaded from Github (step 0)
3- Run mvn compile, after that mvn package--> will generate target folder with necessary files.(.jar, .hpi)
4- inside the generated folder target you will find .hpi file
5- in Jenkins UI go to manage Jenkins -> Plugin management -> in the second section UI based upload, upload .hpi file from target folder and hit upload. after successful upload a window appears where you can restart jenkins - changes will take effect after restarting.
You will successfully find the plugin installed under "installed" tab. With security warning. which is obviously not to be used in a production environment.
let me know if you have any issues.
The plugin was probably pulled from plugin repository due to an extensive list of unresolved Security Issues.
If prepared to accept the risk, you can download the latest release from the GitHub repo, then manually upload.
Update: for some reason, the plugin mainteners only github release the source tarballs and not the corresponding hpi/jpi. Found it in the archives. Go up a dir for earler versions, up two for over plugins.
Update 2: Shortly after this answer was posted, the vulnerabilities in the plugin were resolved and a new release made - 1.23 (Feb 11, 2022), thereby making the plugin available again for download. While the answer has now been "accepted" a year later, the guidance is applicable to any revoked plugin: got to GitHub and download the plugin from the GitHub release. Links to source are found on the the "links" section of the plugins site for each plugin .

Jenkins plugin updates are unavailable

I have updated my jenkins server and see the following message for some plugins. I am not sure how to fix this. I looked at the dependencies section for that plugin and I see they are already installed. Not sure what else is missing so I can see the update available. Dependency for this is Mailer which is already installed on my server.
That is frustrating but you can try uploading plugins manually.
You can download plugins from here link to plugin storage.
Of course you have to roughly see what version of the plugin goes with your jenkins version.
Once you downloaded 'proper' plugin version, you go to manage plugins, advanced tab and there you can upload the plugin file. After that restart jenkins and check changes. You should really go to manage plugins, updated plugin tab and update selected plugins...
It could be guess work, but I'm sure after a couple of guesses you'll get to the version of Jenkins you have.
You might need to upgrade jenkins.. here are all jenkins war files:
https://get.jenkins.io/war-stable/
Last but not least... don't try to fix all dependencies.. fix those you use, rest is optional.

Jenkins plugins for old versions

Fore some reasons I have to use Jenkins 2.32 and I need to install some plugins there. Machine with it has no internet, so I only can upload plugin file to install it from file.
So, the problem is there any easy way to obtain required plugin for required Jenkins version with all it's dependencies?
p.s.
I can't update Jenkins - it's out of my power.
p.p.s.
I find only way to download old versions of plugin, but by this way I can't check dependencies and required jenkins version before loading.
I had such an environment before.
Warning: it's an annoying process.
Because there was no internet, we uploaded all plugins manually, i.e. looking at the plugin page (e.g. https://plugins.jenkins.io/git/) and then downloading from the archive (e.g. https://updates.jenkins.io/download/plugins/git) the .hpi file. As you have to use a relatively old version of Jenkins you may want to check the changelog of the plugin, if you have to use an older version.
In addition on each plugin page the dependencies are listed and you have to repeat the above steps for each dependency.
The only good thing is that usually Jenkins gives you hints, which dependencies are missing after you uploaded a plugin.
You can probably extract the information out of the plugin-versions.json in the Jenkins Update Center.
For more information about the layout of update center, see this document.
You may also find my previous response on jenkins failed to install plugins - docker image (with groovy scripts) helpful

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

Resources