grunt-yamllint

0.3.0 • Public • Published

grunt-yamllint v0.1.0

Validate YAML files with JS-YAML.

Getting Started

This plugin requires Grunt ~0.4.0

If you haven't used Grunt before, be sure to check out the Getting Started guide, as it explains how to create a Gruntfile as well as install and use Grunt plugins. Once you're familiar with that process, you may install this plugin with this command:

npm install grunt-yamllint --save-dev

Once the plugin has been installed, it may be enabled inside your Gruntfile with this line of JavaScript:

grunt.loadNpmTasks('grunt-yamllint');

yaml-lint task

Run this task with the grunt yamllint command.

Task targets, files and options may be specified according to the grunt Configuring tasks guide.

Options

Any specified option will be passed through directly to JS-YAML, thus you can specify any option that JS-YAML supports. See the JS-YAML documentation for a list of supported options.

A few additional options are supported:

force

Type: Boolean
Default: false

Set force to true to report JS-YAML errors but not fail the task.

Usage examples

Wildcards

In this example, running grunt yamllint:all (or grunt yamllint because yamllint is a multi task) will lint the project's YAML files in the lib and test directories and their subdirectores, using the default JS-YAML options.

// Project configuration.
grunt.initConfig({
  yamllint: {
    all: ['lib/**/*.yaml', 'test/**/*.yaml']
  }
});

Linting before and after concatenating

In this example, running grunt yaml-lint will lint both the "beforeconcat" set and "afterconcat" sets of files. This is not ideal, because dist/output.yaml may get linted before it gets created via the grunt-contrib-concat plugin concat task.

In this case, you should lint the "beforeconcat" files first, then concat, then lint the "afterconcat" files, by running grunt yamllint:beforeconcat concat yamllint:afterconcat.

// Project configuration.
grunt.initConfig({
  concat: {
    dist: {
      src: ['src/foo.yaml', 'src/bar.yaml'],
      dest: 'dist/output.yaml'
    }
  },
  yamllint: {
    beforeconcat: ['src/foo.yaml', 'src/bar.yaml'],
    afterconcat: ['dist/output.yaml']
  }
});

Specifying JS-YAML options and globals

In this example, custom JS-YAML options are specified. Note that when grunt yamllint:uses_defaults is run, those files are linted using the default options, but when grunt yamllint:with_overrides is run, those files are linted using merged task/target options.

// Project configuration.
grunt.initConfig({
  yamllint: {
    options: {
      schema: 'DEFAULT_SAFE_SCHEMA'
    },
    uses_defaults: ['dir1/**/*.yaml', 'dir2/**/*.yaml'],
    with_overrides: {
      options: {
          schema: 'DEFAULT_FULL_SCHEMA'
      },
      files: {
        src: ['dir3/**/*.yaml', 'dir4/**/*.yaml']
      },
    }
  },
});

Snippet of options from JS-YAML

Options:

Release History

  • 2014-10-20  v0.1.0   Work in progress, not yet officially released.

Package Sidebar

Install

npm i grunt-yamllint

Weekly Downloads

883

Version

0.3.0

License

MIT

Last publish

Collaborators

  • geedew