Home

Awesome

jenni

Jenkins personal assistant - CLI tool to interact with Jenkins server

npm Build

jenni in action

Note - jenni will only work inside the git repository

Features

Upcoming Features

Prerequisites

Installation

> npm i -g jenni

Above installation will give you globally available jen command to intract with Jenkins server.

Migration from v0.2.6 to v1

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

Setup

Each git project will requires separate initialization.

jen init will walk you through to initialize jenni to your project.

jen init

Usage

> 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                 OptionsDescription
jen init | i-Initialize jenni to your project.
jen status | s-Print branch build history.
jen open | oOptional build number <br> e.g. jen open <build number>Open jenkins build in the browser.
jen build | b--watch | -w <br><br> Watch the console output after triggering a build. <br><br> --stage | -s <br><br> 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 <br><br> View specific build console output. <br> 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. <br><br> Refer to this flow chart that explains console command behavior.
jen config | c--username | -n <br> --token | -t <br> --url | -u <br> --job-name <br> --job-path <br> --job-type <br> <br> e.g. Reconfigure username & token <br> jen config --username <foo> --token <bar>Overwrite project jenni config. Without any options it will print current config.

Debug

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

Known Limitations

Feedback

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.

Similar Projects

There're a few similar project you can found below:

license

MIT © Sureshraj