Nestor – A Faster And Simpler CLI For Jenkins
It all started because at one point I was using a rather resource-challenged machine running Windows and an Ubuntu VM at the same time, and Firefox froze every so often, rendering Jenkins BuildMonitor and Jenkins web interface useless most of the time. So I looked for an alternative and gave Jenkins CLI a go.
Like most Java applications, Jenkins built-in CLI also suffers from slow start up time (flame suit: ON) due to core Java libraries loading (Kohsuke later told me on #jenkins that there’s also a handshaking process involved). This led me to try Jenkins Remote Access API with curl, which performed significantly faster than Jenkins CLI.
So that’s great, but I have another issue with the fact that Jenkins CLI’s commands start with “java -jar jenkins-cli.jar …”, that’s a finger twister right there, and lengthy curl + URL obviously doesn’t help.
Enter Nestor, a Jenkins CLI written in Node.js that aims to be a faster and simpler alternative to the existing solutions. The catch? Node.js and npm support on Windows is not there yet, so if you managed to run Nestor on Windows please let me know about it. Nestor has been tested and used daily on OS X and Linux.
Install Nestor using
npm install -g nestor
Configure the Jenkins instance you want to use using
Nestor commands are simple, it’s always
nestor <action> <param>
To trigger a build
> nestor build studio-bob Job was started successfully
To view a job status
> nestor job studio-bob Status: OK No xml report files found for checkstyle Build stability: 3 out of the last 5 builds failed.
To list the executors
> nestor executor * master idle 39% studio-bob
To view the queue
> nestor queue Queue is empty
To view all jobs status on the dashboard
> nestor dashboard WARN blojsom-bloojm OK jenkins-buildmonitor FAIL studio-ae86 OK studio-bob
Check out Nestor’s GitHub README page for more commands available.
Hopefully that’s simple enough.