Combination of multiple linters to run as a GitHub Action or standalone
Find a file
Lucas Gravley 0447cd98a5 fix name
2020-02-03 15:28:18 -06:00
.automation Update README.md 2020-01-09 14:25:45 -06:00
.github fix spaces 2020-01-10 08:16:10 -06:00
lib fix name 2020-02-03 15:28:18 -06:00
TEMPLATES cleaner 2020-01-10 10:08:54 -06:00
.gitignore initial commit 2019-10-21 09:12:50 -05:00
Dockerfile Merge pull request #51 from github/jwiebalk/dockerlinter 2020-02-03 07:30:55 -06:00
LICENSE initial commit 2019-10-21 09:12:50 -05:00
README.md Merge branch 'master' into jwiebalk/dockerlinter 2020-01-17 09:46:53 -06:00

Super-Linter

This repository is for the GitHub Action to run a Super-Linter.
Developers on GitHub can call this Action to lint their code base with the following list of linters:

  • Ruby (Rubocop)
  • Shell (Shellcheck)
  • Ansible (Ansible-lint)
  • YAML (Yamllint)
  • Python3 (Pylint)
  • JSON (JsonLint)
  • MarkDown (Markdownlint)
  • Perl (Perl)
  • XML (LibXML)
  • Coffeescript (coffeelint)
  • Javascript (eslint)(standard)
  • Dockerfile (dockerfilelint)

How to use

To use this GitHub Action you will need to complete the following:

  • Copy any or all template rules files from TEMPLATES/ into your repository in the location: .github/linters/
    • If your repository does not have rules files, they will fall back to defaults in this repositories TEMPLATE folder
  • Add the GitHub Action: Super-Linter to your current GitHub Actions workflow
  • Enjoy your more stable, and cleaner code base

Example connecting GitHub Action Workflow

In your repository you should have a workflows folder with GitHub Action similar to below:

  • .github/workflows/linter.yml

This file should have the following code:

---
###########################
###########################
## Linter GitHub Actions ##
###########################
###########################
name: Lint Code Base

#
# Documentation:
# https://help.github.com/en/articles/workflow-syntax-for-github-actions
#

#############################
# Start the job on all push #
#############################
on: ['push']

###############
# Set the Job #
###############
jobs:
  build:
    # Name the Job
    name: Lint Code Base
    # Set the agent to run on
    runs-on: ubuntu-latest

    ##################
    # Load all steps #
    ##################
    steps:
      ##########################
      # Checkout the code base #
      ##########################
      - name: Checkout Code
        uses: actions/checkout@master

      ################################
      # Run Linter against code base #
      ################################
      - name: Lint Code Base
        uses: docker://admiralawkbar/super-linter:latest
        env:
          VALIDATE_ALL_CODEBASE: false
          VALIDATE_ANSIBLE: false
...

Env Vars

The super-linter allows you to pass the following ENV variables to be able to trigger different functionality:

  • VALIDATE_ALL_CODEBASE
    • Default: true
    • Will parse the entire repository and find all files to validate across all types
    • NOTE: When set to false, only new or edited files will be parsed for validation
  • VALIDATE_YAML
    • Default: true
    • Flag to enable or disable the linting process of the language
  • VALIDATE_JSON
    • Default: true
    • Flag to enable or disable the linting process of the language
  • VALIDATE_XML
    • Default: true
    • Flag to enable or disable the linting process of the language
  • VALIDATE_MD
    • Default: true
    • Flag to enable or disable the linting process of the language
  • VALIDATE_BASH
    • Default: true
    • Flag to enable or disable the linting process of the language
  • VALIDATE_PERL
    • Default: true
    • Flag to enable or disable the linting process of the language
  • VALIDATE_PYTHON
    • Default: true
    • Flag to enable or disable the linting process of the language
  • VALIDATE_RUBY
    • Default: true
    • Flag to enable or disable the linting process of the language
  • VALIDATE_COFFEE
    • Default: true
    • Flag to enable or disable the linting process of the language
  • VALIDATE_ANSIBLE
    • Default: true
    • Flag to enable or disable the linting process of the language
  • VALIDATE_JAVASCRIPT
    • Default: true
    • Flag to enable or disable the linting process of the language
  • ANSIBLE_DIRECTORY
    • Default: /ansible
    • Flag to set the root directory for Ansible file location(s)
  • VALIDATE_DOCKER
    • Default: true
    • Flag to enable or disable the linting process of the language

Docker Hub

The Docker container that is built from this repository is located at https://cloud.docker.com/u/admiralawkbar/repository/docker/admiralawkbar/super-linter

Running Super-Linter locally (troubleshooting/debugging/enhancements)

If you find that you need to run super-linter locally, you can follow the documentation at Running super-linter locally

How to contribute

If you would like to help contribute to this GitHub Action, please see CONTRIBUTING


License