2019-10-21 10:12:50 -04: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:
2019-10-21 10:13:59 -04:00
- **Ruby** (Rubocop)
- **Shell** (Shellcheck)
- **Ansible** (Ansible-lint)
- **YAML** (Yamllint)
- **Python3** (Pylint)
- **JSON** (JsonLint)
- **MarkDown** (Markdownlint)
2019-10-21 12:05:55 -04:00
- **Perl** (Perl)
2019-10-21 10:13:59 -04:00
- **XML** (LibXML)
2019-10-21 12:05:55 -04:00
- **Coffeescript** (coffeelint)
2019-11-08 10:14:38 -05:00
- **Javascript** (eslint)(standard)
2020-01-09 17:58:41 -05:00
- **Dockerfile** (dockerfilelint)
2019-10-21 10:12:50 -04:00
## How to use
To use this **GitHub** Action you will need to complete the following:
2019-10-23 13:23:46 -04:00
- 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
2020-01-17 10:46:53 -05:00
- Add the **GitHub** Action: **Super-Linter** to your current **GitHub** Actions workflow
2020-01-13 09:48:37 -05:00
- Enjoy your more *stable* , and *cleaner* code base
2019-10-21 10:12:50 -04:00
2019-10-23 13:23:46 -04:00
### Example connecting GitHub Action Workflow
In your repository you should have a `workflows` folder with **GitHub** Action similar to below:
2019-10-21 10:12:50 -04:00
- `.github/workflows/linter.yml`
This file should have the following code:
```yml
---
###########################
###########################
## 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
2019-10-25 12:29:31 -04:00
env:
VALIDATE_ALL_CODEBASE: false
VALIDATE_ANSIBLE: false
2019-10-21 10:12:50 -04:00
...
```
2020-01-09 10:48:46 -05:00
2019-10-25 12:29:31 -04:00
## 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
2019-11-08 10:14:38 -05:00
- **VALIDATE_JAVASCRIPT**
- Default: `true`
- Flag to enable or disable the linting process of the language
2019-12-03 14:47:23 -05:00
- **ANSIBLE_DIRECTORY**
- Default: `/ansible`
- Flag to set the root directory for Ansible file location(s)
2020-01-09 17:58:41 -05:00
- **VALIDATE_DOCKER**
- Default: `true`
- Flag to enable or disable the linting process of the language
2019-10-23 14:15:12 -04:00
2020-01-09 10:48:46 -05:00
## Docker Hub
2019-10-23 14:15:35 -04:00
The **Docker** container that is built from this repository is located at `https://cloud.docker.com/u/admiralawkbar/repository/docker/admiralawkbar/super-linter`
2019-10-23 14:15:12 -04:00
2020-01-09 10:48:46 -05:00
## 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 ](https://github.com/github/super-linter/blob/master/.github/run-linter-locally.md )
2019-10-21 10:12:50 -04:00
2020-01-09 10:48:46 -05:00
## How to contribute
2020-01-09 18:01:23 -05:00
If you would like to help contribute to this **GitHub** Action, please see [CONTRIBUTING ](https://github.com/github/super-linter/blob/master/.github/CONTRIBUTING.md )
2019-10-21 10:12:50 -04:00
--------------------------------------------------------------------------------
### License
2019-10-21 10:30:31 -04:00
- [License ](https://github.com/github/super-linter/blob/master/LICENSE )