Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/miyajan/jflint

A client tool to lint Jenkinsfile
https://github.com/miyajan/jflint

jenkins jenkinsfile npm

Last synced: about 1 month ago
JSON representation

A client tool to lint Jenkinsfile

Awesome Lists containing this project

README

        

# jflint

A helper tool to lint a Declarative Jenkinsfile

[![npm version](https://img.shields.io/npm/v/jflint.svg)](https://www.npmjs.com/package/jflint)
[![npm downloads](https://img.shields.io/npm/dm/jflint.svg)](https://www.npmjs.com/package/jflint)
![Node.js Version Support](https://img.shields.io/badge/Node.js%20support-v4–v7-brightgreen.svg)
[![Build Status](https://travis-ci.org/miyajan/jflint.svg?branch=master)](https://travis-ci.org/miyajan/jflint)
[![dependencies Status](https://david-dm.org/miyajan/jflint/status.svg)](https://david-dm.org/miyajan/jflint)
[![Coverage Status](https://coveralls.io/repos/github/miyajan/jflint/badge.svg?branch=master)](https://coveralls.io/github/miyajan/jflint?branch=master)
![License](https://img.shields.io/npm/l/jflint.svg)

## Description

This tool helps to lint a Declarative Jenkinsfile.

[The official document](https://github.com/jenkinsci/pipeline-model-definition-plugin/wiki/Validating-(or-linting)-a-Declarative-Jenkinsfile-from-the-command-line) provides a ssh approach and a curl approach to lint a Declarative Jenkinsfile. However, both approaches are a bit complicated for daily use.

So I created this tool to lint easily. **This tool itself does not lint a Jenkinsfile, but sends a request to Jenkins in the same way as curl approach and displays the result**.

## Install

```
$ npm install jflint -g
```

## Usage

```
$ jflint [options] /path/to/Jenkinsfile
```

## Options

### ```-j``` or ```--jenkins-url```

Specify the URL of Jenkins to lint Jenkinsfile. The URL must be passed by this option or a config file.

### ```-u``` or ```--username```

Specify username for Jenkins. Username is required when security is enabled on Jenkins.

### ```-p``` or ```--password```

Specify password or [API token](https://wiki.jenkins-ci.org/display/JENKINS/Authenticating+scripted+clients) for Jenkins. Password or API token is required when security is enabled on Jenkins.

### ```--csrf-disabled```

Specify this options when CSRF security setting is disabled on Jenkins.

### ```-c``` or ```--config```

Specify a path to config file.

### ```--ssl-verification-disabled```

Disable SSL verification.

## Config file

You can load options from json file like the following.

```json
{
"jenkinsUrl": "http://jenkins.example.com",
"username": "admin",
"password": "p@ssword"
}
```

Config file is searched in the following order.

* the path specified by ```-c|--config```
* ```.jflintrc``` from the current directory all the way up to the filesystem root
* ```${HOME}/.jflintrc```

If the same setting is specified in both option and config file, the option setting overrides the config setting.

## Contribution

1. Fork
2. Create a feature branch
3. Commit your changes
4. Rebase your local changes against the master branch
5. Run `npm test`
6. Create new Pull Request

## License

MIT

## Author

[miyajan](https://github.com/miyajan): Jumpei Miyata [email protected]