Plugin Management Library and CLI Tool Phase 2 GSoC Updates

At end of the first GSoC phase, I
announced
the first alpha release
of the CLI tool and library that will help centralize
plugin management and make plugin tooling easier.

Phase 2 has mainly been focused on improving upon the initial CLI and library written
in Coding Phase 1. In particular, we’ve been focusing on getting the tool ready to
incorporate into the Jenkins Docker Image to replace the
install-plugins.sh bash script
to download plugins. This work included parsing improvements so that blank lines and comments in the
plugins.txt file are filtered out, allowing update centers and the plugin download
directory to be set via environment variables or CLI Options, creating Windows
compatible defaults, and fixing a bug in which dependencies for specific
plugin versions were not always getting resolved correctly.

In parallel to getting the tool ready for Jenkins Docker integration, Phase 2 saw
the addition of several new features.

Yaml Input

In addition to specifying the plugins they want to download via the --plugins
CLI option or through a .txt file, users can now use a Jenkins yaml file with a
plugins root element.

Say goodbye to the days of specifying incremental
plugins like incrementals;org.jenkins-ci.plugins.workflow;2.20-rc530.b4f7f7869384
you can enter the artifactId, groupId, and version to specify an incremental plugin.

Yaml Input Example
Yaml CLI Example

Making the Download Process More Transparent

Previously, the plugin download process was not very transparent to users – it was
difficult to know the final set of plugins that would be downloaded after pulling in
all the dependencies. Instead of determing the set of plugins that will be downloaded
at the time of download, users now have the option to see the full set of plugins
and their versions that will be downloaded in advance. With the --list CLI
option, users can see all currently downloaded and bundled plugins, the set of all
plugins that will be downloaded, and the effective plugin set – the set of all
plugins that are already downloaded or will be downloaded.

List CLI Option Example

Viewing Information About plugins

Now that you know which plugins will be downloaded, wouldn’t it be nice to know
if these are the latest versions or if any of the versions you want to install have
security warnings? You can do that now too.

Security Warning CLI Option Example
Security Warning CLI Option Example

Next Steps and Additional Information

The updates mentioned in this blog will be released soon so you can try them out.
The focus of Phase 3 will be to continue to iterate upon and improve the library
and CLI. We hope to release a first version and submit a pull request to Jenkins Docker soon.
Thanks to everyone who has already tried it out and given feedback! I will also be
presenting my work at DevOps World
in San Francisco in a few weeks. You can use the code PREVIEW for a discounted registration
($799 instead of $1,499).

Feel free to reach out through
the Plugin Installation Manager CLI Tool Gitter chat or through
the Jenkins Developer Mailing list. I would love to get your questions, comments, and feedback!
We have meetings Tuesdays and Thursdays at 6PM UTC.

Originally posted on Jenkins Blog
Author: stopalopa

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *