Jenkins has a built-in command line client that allows you to access Jenkins from a script or from your shell. This is convenient for automation of routine tasks, bulk updates, trouble diagnosis, and so on.
Jenkins CLI is distributed inside
jenkins.war. Download it from
//yourserver.com/jnlpJars/jenkins-cli.jar. In theory, the CLI jar is dependent on the version of Jenkins, but in practice, we expect to be able to retain compatibility between different versions of Jenkins.
The general syntax is as follows (the design is similar to tools like svn/git):
JENKINS_URL can be specified via the environment variable
$JENKINS_URL. This environment variable is automatically set when Jenkins fork a process during builds, which allows you to use Jenkins CLI from inside the build without explicitly configuring the URL. The '
help' command will give you the list of the available commands, which depends on the server you are talking to.
Plugins installed on Jenkins server can add custom CLI commands. See writing CLI commands for more details.
Working with Credentials
If your Jenkins requires authentication, use
--password-file options to specify the credentials. To avoid doing this for every command, you can also use the
login CLI command once (with the same credentials parameters), and after that you may use other commands without specifying credentials.
Note that not every authentication type supports these parameters for credentials. Prior to version 1.373, only authentication in Jenkins' own database was supported. As of 1.373, LDAP is also supported. If the CLI reports these are invalid parameters, file an issue for your authentication type and ask them to extend
AbstractPasswordBasedSecurityRealm instead of directly from
SecurityRealm to get support for these parameters.
Change History: Note that a security hole in CLI commands was fixed in version 1.371, and that CLI
login did not work properly for many commands until 1.375.