Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
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
- Host: GitHub
- URL: https://github.com/miyajan/jflint
- Owner: miyajan
- License: mit
- Created: 2017-02-16T13:56:31.000Z (almost 8 years ago)
- Default Branch: master
- Last Pushed: 2018-10-16T08:52:02.000Z (about 6 years ago)
- Last Synced: 2024-03-15T15:10:03.596Z (9 months ago)
- Topics: jenkins, jenkinsfile, npm
- Language: JavaScript
- Size: 17.6 KB
- Stars: 43
- Watchers: 2
- Forks: 4
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
- awesome-ops - miyajan/jflint - 02-16|2018-10-16 | Jenkinsfile 语法检测工具,可集成在 Jenkinsfile 仓库的 CI 流程中 | (Jenkins-Tools)
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]