👩💻 Jenkins Personal Assistant - CLI to interact with Jenkins server
MIT License
Jenkins personal assistant - CLI tool to interact with Jenkins server
Note - jenni will only work inside the git repository
>= v8.11
installed.> npm i -g jenni
Above installation will give you globally available jen
command to intract with Jenkins server.
The v1 has breaking changes. If you're using an old version of Jenni, follow the steps below before upgrading to v1.
step 1: Find the config dir path
> jen c
output: Config path - /home/suresh/.config/jenni-nodejs/config.json
step 2: Manually delete the config directory
> rm -rf /home/suresh/.config/jenni-nodejs
step 3:
> npm update -g jenni@latest
Each git project will requires separate initialization.
jen init
will walk you through to initialize jenni to your project.
> jen --help
Usage: jen [options] [command]
Jenkins personal assistant
Options:
-v, --version output the version number
-d, --debug Enable debug mode
-h, --help output usage information
Commands:
init|i Initialize jen
status|s Print branch build status
open|o Open jenkins build in browser
build|b [options] Trigger a new build
console|co [options] Show console output
config|c [options] Show or Update repository configuration
Command | Options | Description |
---|---|---|
jen init | i
|
- | Initialize jenni to your project. |
jen status | s
|
- | Print branch build history. |
jen open | o
|
Optional build number e.g. jen open <build number>
|
Open jenkins build in the browser. |
jen build | b
|
--watch | -w Watch the console output after triggering a build. --stage | -s Watch the stage view after triggering a build. |
Trigger a new build and optionally watch its console output or stage view. Note it's not possible to view console output, stage view together. |
jen console | co
|
--build | -b View specific build console output. e.g. jen console --build <build id>
|
By default, this command will print the last build console output. If the job has more than one running builds, then it will prompt the user to select a build to retrieve its console output. Use --build option to view the specific build console output. Refer to this flow chart that explains console command behavior. |
jen config | c
|
--username | -n --token | -t --url | -u --job-name --job-path --job-type e.g. Reconfigure username & token jen config --username <foo> --token <bar>
|
Overwrite project jenni config. Without any options it will print current config. |
It's basic for the moment, pass -d
or --debug
to log debug messages. Can also be enabled by setting the environment variable DEBUG_JEN
to true
. E.g.
> jen status -d
// OR
> DEBUG_JEN=true jen status
At the moment Jenni handles only WorkflowJob
and WorkflowMultiBranchProject
job types. So, if you get the error message Unsupported job type: <job type>
please file an issue.
When initializing Jenni (jen init
) currently there is no way to interactively select jobs inside the folders (Issue). As a workaround, Jenni will print jobs up to 3 levels deep. For example
├── folder-1
│ ├── folder-1.1
│ │ └── job3
│ └── job2
└── job1
for the above structure, the output will be:
job1
folder-1 → job2
folder-1 → folder-1.1 - job3
So if your job is deeply nested, you should manually configure the job. Follow this guide.
I'm no expert Jenkins user 🤫. I'm building this tool while learning Jenkins concepts. I'm really interested in hearing your use cases, insights, and suggestions for improvements.
There're a few similar project you can found below:
MIT © Sureshraj