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 wget http://localhost:8080/jenkins/jnlpJars/jenkins-cli.jar
.
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
brew
oryum
.
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 jcli
.
Features
-
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.
Linux
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/
Windows
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 url
, username
and 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.