Yaml Lint action
Find a file
2021-08-12 11:46:16 +02:00
.github/workflows Save yamllint output/log to a file 2021-08-10 20:00:50 +02:00
test Use yamllint github format to set file annotations on errors & warnings (#12) 2020-10-22 12:23:39 +02:00
.gitattributes Autotag releases, use Dockerfile (for now) #5 2020-02-28 10:14:09 +01:00
.gitignore Initial commit 2019-10-16 10:26:48 +02:00
.yamllint Use yamllint github format to set file annotations on errors & warnings (#12) 2020-10-22 12:23:39 +02:00
action.yml Capture the whole run 2021-08-12 11:46:16 +02:00
Dockerfile Installs build tools for installing pyyaml (#15) 2021-04-15 08:44:05 +02:00
entrypoint.sh Capture the whole run 2021-08-12 11:46:16 +02:00
LICENSE Initial commit 2019-10-16 10:26:48 +02:00
README.md Save yamllint output/log to a file 2021-08-10 20:00:50 +02:00

GitHub YAMLlint

This action executes yamllint (https://github.com/adrienverge/yamllint) against file(s) or folder

Usage

Simple as:

- uses: ibiqlik/action-yamllint@v3

Optional input parameters

  • config_file - Path to custom configuration
  • config_data - Custom configuration (as YAML source)
  • file_or_dir - Enter file/folder (space separated), wildcards accepted. Examples:
    • . - run against all yaml files in a directory recursively (default)
    • file1.yaml
    • file1.yaml file2.yaml
    • kustomize/**/*.yaml mychart/*values.yaml
  • format - Format for parsing output [parsable,standard,colored,github,auto] (default: parsable)
  • strict - Return non-zero exit code on warnings as well as errors [true,false] (default: false)
  • no_warnings - Output only error level problems [true,false] (default: false)

Note: If .yamllint configuration file exists in your root folder, yamllint will automatically use it.

Outputs

logfile - Path to yamllint log file

${{ steps.<step>.outputs.logfile }}

Example usage in workflow

name: Yaml Lint
on: [push]
jobs:
  lintAllTheThings:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v1
    - name: yaml-lint
      uses: ibiqlik/action-yamllint@v3
      with:
        file_or_dir: myfolder/*values*.yaml
        config_file: .yamllint.yml

Or just simply check all yaml files in the repository:

name: Yaml Lint
on: [push]
jobs:
  lintAllTheThings:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v1
    - name: yaml-lint
      uses: ibiqlik/action-yamllint@v3

Config data examples:

# Single line
config_data: "{extends: default, rules: {new-line-at-end-of-file: disable}}"
# Multi line
config_data: |
  extends: default
  rules:
    new-line-at-end-of-file:
      level: warning
    trailing-spaces:
      level: warning  

Use output to save/upload the log in artifact. Note, you must have id in the step running the yamllint action.

name: Yaml Lint
on: [push]
jobs:
  lintAllTheThings:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v1
    - id: yaml-lint
      uses: ibiqlik/action-yamllint@v3

    - run: echo ${{ steps.yaml-lint.outputs.logfile }}

    - uses: actions/upload-artifact@v2
      with:
        name: yamllint-logfile
        path: ${{ steps.yaml-lint.outputs.logfile }}