Combination of multiple linters to install as a GitHub Action
Find a file
Lucas Gravley f961d1b808 again?
2020-01-09 13:43:30 -06:00
.automation adding the fixes 2020-01-09 13:19:21 -06:00
.github again? 2020-01-09 13:43:30 -06:00
lib Adding logic 2020-01-09 10:29:18 -06:00
TEMPLATES fix rails 2020-01-08 08:06:20 -06:00
.gitignore initial commit 2019-10-21 09:12:50 -05:00
Dockerfile Adding logic 2020-01-09 10:29:18 -06:00
LICENSE initial commit 2019-10-21 09:12:50 -05:00
README.md adding docs 2020-01-09 09:48:46 -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)

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)

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