https://github.com/esss/steve
A tool that simplifies running Jenkins jobs from command-line
https://github.com/esss/steve
Last synced: 9 months ago
JSON representation
A tool that simplifies running Jenkins jobs from command-line
- Host: GitHub
- URL: https://github.com/esss/steve
- Owner: ESSS
- License: mit
- Created: 2017-01-02T16:30:13.000Z (over 9 years ago)
- Default Branch: master
- Last Pushed: 2017-09-04T13:48:21.000Z (almost 9 years ago)
- Last Synced: 2025-01-10T00:54:34.551Z (over 1 year ago)
- Language: Python
- Size: 171 KB
- Stars: 1
- Watchers: 6
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
steve
=================

`steve` is a command-line tool tailored to how ESSS projects deal with
Jenkins. From any git repo containing an ESSS project it should be
possible to run a command line like:
```bash
steve -u foo
```
`steve` will use your current platform and branch (and most relevant
mode, if your project uses that `jobs_done` feature) to guess job name
in Jenkins and it will start right away to watch progress of current
build of job (if none is in progress, it starts a new build).
Configuration file
------------------
`steve` looks for a configuration file named `.steve` in home of user
(`~` on linux, `c:\users\` on windows). The configuration
file is an INI-like file, with following (all optional) fields
available so far:
```
[user]
name =
password =
```
Note that command line `-u/--user` has more priority than user from
configuration file.
For more information about [Jenkins API token]((https://wiki.jenkins-ci.org/display/JENKINS/Authenticating+scripted+clients).
## FAQ
*Will `steve` create new builds if one is already in progress?*
No, it just starts a new build if there isn't one already in progress.
It is possible to interrupt `steve` and restart it again to keep
monitoring progress of a same job.
*Do I have to always use current branch and platform?*
No. Use `-b/--branch BRANCH` to run other branch and
`-m/--matrix platform:PLATFORMS` for other platforms. Notice that it is
possible to monitor many platforms at once, by using space separated
values (accepted values are the usual ones: `win64`, `win32`,
`linux64`, `win64d`, `win32d`, `win64g`, `win32g`)
```bash
steve -u foo -m platform:win64,linux64
```

*Who is the most relevant mode? Can I change it too?*
Most relevant mode is the first value of each key in `matrix` of
`.jobs_done.yaml` file, except for platform that defaults to user's current
platform.
To select other configuration `-m/--matrix MATRIX`. Matrix option must be
a series of keys separated by whitespaces (` `), where each key is followed by a
colon (`:`) and a series of values separated by comma (`,`).
To run a job both in Python 2.7 and 3.5 on linux64 e win64:
```bash
steve -u foo -m python:27,35 platform:win64,linux64
```
*What about parametrized builds?*
You can pass any number of parameters to a build (provided the job declares
parameters):
```bash
steve -u foo -p param1:foo param2:bar
```
Note all other options absent in custom matrix are set to most relevant values,
as explained in *Who is the most relevant mode? Can I change it too?*.