Managing Jenkins with jcli
As a developer, I usually use Jenkins like this:
Find a job which is related with my current work
Trigger that job
Check the output of the build log
Sometimes, I might need to check the update center. Maybe a new plugin is needed, or I need to update an existing plugin.
Or, I want to upload a plugin from my computer. For all these cases, I just don’t need a UI or even a browser.
I like to use a CLI to complete most of my tasks. For example, I use
kubectl to manage my Kubernetes cluster,
to create or modify the kubernetes resources. So, I start to think, 'Why not use a CLI to manage my Jenkins?'.
Why create a new one?
First, I almost forgot about the existing Jenkins CLI, written in Java. Let me introduce how to use that one.
Visit Jenkins page from
http://localhost:8080/jenkins/cli/. You’ll see a command like
java -jar jenkins-cli.jar -s http://localhost:8080/jenkins/ help. So, a jar file needs to be download.
We can use this command to complete this task
Now you can see that this is not a Linux-style CLI. Please consider some points below:
The users must have a JRE. This is not convenient for developers who don’t use Java.
The CLI is too wordy. We always need to type
java -jar jenkins-cli.jar -s http://localhost:8080/jenkins/as the initial command.
Cannot install it by some popular package manager, like
Of course, the Java CLI client is more native with Jenkins. But I’d like to use this more easily. So I decided to create a new CLI tool which would be written in Go and which would natively run on modern platforms.
That’s the story of creating
Easy to maintain config file for jcli
Multiple Jenkins support
Plugins management (list, search, install, upload)
Job management (search, build, log)
Open your Jenkins with a browser
Restart your Jenkins
Connection with proxy support
How to get it?
You can clone
jcli from the jenkins-cli repo. For now, we support
these three most popular OS platforms: MacOS, Linux, and Windows.
It’s very simple to install jcli into your Linux OS. Just need to execute a command line at below:
curl -L https://github.com/jenkins-zh/jenkins-cli/releases/latest/download/jcli-linux-amd64.tar.gz|tar xzv sudo mv jcli /usr/local/bin/
You can find the latest version by clicking here. Then download the tar file, cp the uncompressed
jcli directory into your system path.
How to get started?
It’s very simple to use this. Once you get
jcli on your computer, use this command to generate a sample configuration:
jcli config generate current: yourServer jenkins_servers: - name: yourServer url: http://localhost:8080/jenkins username: admin token: 111e3a2f0231198855dceaff96f20540a9 proxy: "" proxyAuth: "" # Goto 'http://localhost:8080/jenkins/me/configure', then you can generate your token.
In most cases, you should modify three fields which are
token. OK, I believe you’re ready. Please check whether you install the
github plugin in your Jenkins:
jcli plugin list --filter name=github
That’s the end. It’s still in very early development stage. Any contribution is welcome.