A tiny commandline tool for Jenkins jobs.
Switch branches/tags
Clone or download
Pull request Compare This branch is 15 commits behind mre:master.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
cmd/riffraff
internal
vendor
.gitignore
.goreleaser.yml
.travis.yml
LICENSE
Makefile
README.md
go.mod
go.sum
usage.gif

README.md

riffraff

Travis (.org) Codecov branch GoDoc Go Report Card

usage

A commandline interface for Jenkins.

Features

  • Queries the current status of jobs in parallel.
  • Can trigger Jenkins builds from the commandline.
  • Visualizes the status of jobs and nodes.
  • Can diff the output two runs.
usage: riffraff [<flags>] <command> [<args> ...]

Flags:
      --help     Show context-sensitive help (also try --help-long and --help-man).
  -v, --verbose  Verbose mode. Print full job output
      --salt     Show failed salt states

Commands:
  help [<command>...]
    Show help.

  status [<regex>]
    Show the status of all matching jobs

  build [<regex>]
    Trigger build for all matching jobs

  logs <job>
    Show the logs of a job

  diff <job> <build1> <build2>
    Print a diff between two builds of a job

  queue [<regex>]
    Show the queue of all matching jobs

  nodes
    Show the status of all Jenkins nodes

  open [<regex>]
    Open a job in the browser

Installation

go get github.com/mre/riffraff

...or download a static binary from the releases page.

Getting started

You need to set the following environment variables:

export JENKINS_URL="http://example.com/"
export JENKINS_USER="username"
export JENKINS_PW="password"

You might want to put those into your ~/.bashrc, ~/.zshrc or equivalent.

Usage

riffraff status jenkins-job-name

This will print the current status of all Jenkins jobs matching the given pattern (jenkins-job-name in this case). You can use any regular expression for that, e.g.:

riffraff status "^application-.*-unittests$"

You can get the full output of each last job matching the pattern with

riffraff status -v "^application-.*-unittests$"

Development

  • Install golang version 1.11 or later for go modules support
  • Clone this repository to a directory in your $GOPATH/src tree (recommended) or usego get -u github.com/mre/riffraff.git (uses https not SSH)
  • In the source folder run go run main.go to install modules and run riffraff
  • If you don't have a Jenkins server you can run it by using its .war file (recommended) or installing its .deb file

OBTW

The tool is named after the butler from the Rocky Horror Picture Show, and not the rapper with the same name ;-).