Jenkins CLI

(this is for quite an old version of Jenkins)

You can access various features in Jenkins through a command-line tool. To get started, download jenkins-cli.jar, and run it as follows:

java -jar jenkins-cli.jar -s http://dockerhost:8080/ help

Note that this will only work if you have access to port 8080 and port

  1. If you’ve mapped 8080 to port 80, that’s fine too, but you need to be able to connect to the JNLP port for the CLI tool to work. If you get this message
Jul 09, 2015 9:58:16 AM hudson.remoting.SynchronousCommandTransport$ReaderThread run
SEVERE: I/O error in channel Chunked connection to http://dockerhost:8080/cli
java.io.StreamCorruptedException: invalid stream header: 0A0A0A0A

then you don’t have access.

https://issues.jenkins-ci.org/browse/JENKINS-23232

There is some suggestion that -Dhudson.diyChunking=false solves this problem. https://issues.jenkins-ci.org/browse/JENKINS-23223

Available Commands

For reference, here is a list and basic outline of all of the available Jenkins CLI commands that you can use to control Jenkins remotely.

add-job-to-view

Adds jobs to view.

build

Builds a job, and optionally waits until its completion.

cancel-quiet-down

Cancel the effect of the "quiet-down" command.

clear-queue

Clears the build queue.

connect-node

Reconnect to a node.

console

Retrieves console output of a build.

copy-job

Copies a job.

create-job

Creates a new job by reading stdin as a configuration XML file.

create-node

Creates a new node by reading stdin as a XML configuration.

create-view

Creates a new view by reading stdin as a XML configuration.

delete-builds

Deletes build record(s).

delete-job

Deletes a job.

delete-node

Deletes a node.

delete-view

Deletes view.

disable-job

Disables a job.

disconnect-node

Disconnects from a node.

enable-job

Enables a job.

get-job

Dumps the job definition XML to stdout.

get-node

Dumps the node definition XML to stdout.

get-view

Dumps the view definition XML to stdout.

groovy

Executes the specified Groovy script.

groovysh

Runs an interactive groovy shell.

help

Lists all the available commands or a detailed description of single command.

install-plugin

Installs a plugin either from a file, an URL, or from update center.

install-tool

Performs automatic tool installation, and print its location to stdout. Can be only called from inside a build.

keep-build

Mark the build to keep the build forever.

list-changes

Dumps the changelog for the specified build(s).

list-jobs

Lists all jobs in a specific view or item group.

list-plugins

Outputs a list of installed plugins.

login

Saves the current credential to allow future commands to run without explicit credential information.

logout

Deletes the credential stored with the login command.

mail

Reads stdin and sends that out as an e-mail.

offline-node

Stop using a node for performing builds temporarily, until the next "online-node" command.

online-node

Resume using a node for performing builds, to cancel out the earlier "offline-node" command.

quiet-down

Quiet down Jenkins, in preparation for a restart. Don’t start any builds.

reload-configuration

Discard all the loaded data in memory and reload everything from file system. Useful when you modified config files directly on disk.

reload-job

Reloads this job from disk.

remove-job-from-view

Removes jobs from view.

restart

Restart Jenkins.

safe-restart

Safely restart Jenkins.

safe-shutdown

Puts Jenkins into the quiet mode, wait for existing builds to be completed, and then shut down Jenkins.

session-id

Outputs the session ID, which changes every time Jenkins restarts.

set-build-description

Sets the description of a build.

set-build-display-name

Sets the displayName of a build.

set-build-parameter

Update/set the build parameter of the current build in progress.

set-build-result

Sets the result of the current build. Works only if invoked from within a build.

set-external-build-result

Set external monitor job result.

shutdown

Immediately shuts down Jenkins server.

update-job

Updates the job definition XML from stdin. The opposite of the get-job command.

update-node

Updates the node definition XML from stdin. The opposite of the get-node command.

update-view

Updates the view definition XML from stdin. The opposite of the get-view command.

version

Outputs the current version.

wait-node-offline

Wait for a node to become offline.

wait-node-online

Wait for a node to become online.

who-am-i

Reports your credential and permissions.