Code Monkey home page Code Monkey logo

action-yamllint's Introduction

GitHub YAMLlint

This action executes yamllint (https://github.com/adrienverge/yamllint) against files 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 automatically uses it.

Outputs

logfile - Path to yamllint log file

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

Note: Each yamllint run (for example if you define multiple yamllint steps) has its own log

Example usage in workflow

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

Or just simply lint all yaml files in the repository:

---
name: Yaml Lint
on: [push]  # yamllint disable-line rule:truthy
jobs:
  lintAllTheThings:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - 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]  # yamllint disable-line rule:truthy
jobs:
  lintAllTheThings:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
      - id: yaml-lint
        uses: ibiqlik/action-yamllint@v3

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

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

action-yamllint's People

Contributors

ibiqlik avatar lucianposton avatar ruzickap avatar jeffwidman avatar mike-carey avatar zkoppert avatar

Stargazers

Roman avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.