As a developer, I usually use Jenkins like this:
- Find a job which is related to 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?'.
First, I almost forgot about the existing https://jenkins.io/doc/book/managing/cli/[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 that 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
You can clone
jcli from https://github.com/jenkins-zh/jenkins-cli/[the jenkins-cli repo]. For now, we support
these three most popular OS platforms: macOS, Linux, and Windows.
You can use brew to install jcli.
brew tap jenkins-zh/jcli brew install jcli
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 https://github.com/jenkins-zh/jenkins-cli/releases/latest/download/jcli-windows-386.tar.gz[here]. Then download the tar file, cp the uncompressed
jcli directory into your system path.
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 the very early development stage. Any contribution is welcome.
It was published originally from jenkins.io