4.7 KiB
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
- If your repository does not have rules files, they will fall back to defaults in this repositories
- 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
- Default:
- VALIDATE_YAML
- Default:
true
- Flag to enable or disable the linting process of the language
- Default:
- VALIDATE_JSON
- Default:
true
- Flag to enable or disable the linting process of the language
- Default:
- VALIDATE_XML
- Default:
true
- Flag to enable or disable the linting process of the language
- Default:
- VALIDATE_MD
- Default:
true
- Flag to enable or disable the linting process of the language
- Default:
- VALIDATE_BASH
- Default:
true
- Flag to enable or disable the linting process of the language
- Default:
- VALIDATE_PERL
- Default:
true
- Flag to enable or disable the linting process of the language
- Default:
- VALIDATE_PYTHON
- Default:
true
- Flag to enable or disable the linting process of the language
- Default:
- VALIDATE_RUBY
- Default:
true
- Flag to enable or disable the linting process of the language
- Default:
- VALIDATE_COFFEE
- Default:
true
- Flag to enable or disable the linting process of the language
- Default:
- VALIDATE_ANSIBLE
- Default:
true
- Flag to enable or disable the linting process of the language
- Default:
- VALIDATE_JAVASCRIPT
- Default:
true
- Flag to enable or disable the linting process of the language
- Default:
- ANSIBLE_DIRECTORY
- Default:
/ansible
- Flag to set the root directory for Ansible file location(s)
- Default:
- VALIDATE_DOCKER
- Default:
true
- Flag to enable or disable the linting process of the language
- Default:
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