Jenkins manager
The project aims to wrap Jenkins json api and some post requests which can be performed on Jenkins parts (such as 'delete node').
It is a very early stage of development (it'd be better to say hobby project to learn Rust). Current functionality includes:
- shutdown Set 'prepare to shutdown' bunner with optional reason
- on Set shutdown banner
- off Cancel shutdown
- restart Restart Jenkins instance (soft/hard)
- copy Copy job from the existing one
- job Copy job
- view Copy view
- node Node actions
- show Show node information
- list List all (with optional status information)
- job
- list Recursively list all the jobs in an instance
- build Build a job (use '-' as param list to build with defaults)
- remove Remove a job (use with caution, the action is permanent)
There are two types of the jobs in Jenkins: parameterized and un-parameterized.
To build a job without parameters use the following command:
jenkinsctl job build <JOB>
To build a job with parameters use:
jenkinsctl job build <JOB> [PARAMS]
jenkinsctl
accepts parameters in the following format:
param=value,...,param=value
You can also perform a parameterized build using defaults:
jenkinsctl job build <JOB> -
To stream a job's execution process to stdout, add the -f
switch:
jenkinsctl job build <JOB> [PARAMS] -f
Jenkins rest api provides three levels of interruption:
stop
aborts a pipeline;term
forcibly terminates a build;kill
hard kill a pipeline (the most destructive way to stop a pipeline);
jenkinsctl
wraps it with the *nix signals equivalent:
jenkinsctl job kill -s <HUP|TERM|KILL|1|15|9> <JOB> <BUILD>
It is possible to rebuild particular job in a Jenkins web ui, however
there is no rest api endpoint for the rebuild
operation.
Therefore the rebuild
option starts new build with the same parameters
as in a build specified by the arg.
Technically there is no differences, you can only notice that a job is not being rebuilt but started with the same parameters in a console log output.
jenkinsctl job rebuild <JOB> <BUILD>