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 or yum.
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.
MacOS
You can use brew to install jcli.
brew tap jenkins-zh/jcli
brew install jcli
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.