Pre-commands
MegaLinter can run custom commands before running linters (for example, installing an plugin required by one of the linters you use)
Example in .mega-linter.yml config file
PRE_COMMANDS:
  - command: npm install eslint-plugin-whatever
    cwd: root        # Will be run at the root of MegaLinter docker image
    secured_env: true  # True by default, but if defined to false, no global variable will be hidden (for example if you need GITHUB_TOKEN)
  - command: echo "pre-test command has been called"
    cwd: workspace   # Will be run at the root of the workspace (usually your repository root)
    continue_if_failed: False  # Will stop the process if command is failed (return code > 0)
  - command: pip install flake8-cognitive-complexity
    venv: flake8 # Will be run within flake8 python virtualenv. There is one virtualenv per python-based linter, with the same name
  - command: export MY_OUTPUT_VAR="my output var" && export MY_OUTPUT_VAR2="my output var2"
    output_variables: ["MY_OUTPUT_VAR","MY_OUTPUT_VAR2"] # Will collect the values of output variables and update MegaLinter own ENV context
  - command: echo "Some command called before loading MegaLinter plugins"
    cwd: workspace   # Will be run at the root of the workspace (usually your repository root)
    continue_if_failed: False  # Will stop the process if command is failed (return code > 0)
    tag: before_plugins # Tag indicating that the command will be run before loading plugins
| Property | Description | Default value | 
|---|---|---|
| command | Command line to run | Mandatory | 
| cwd | Directory where to run the command ( workspaceorroot) | workspace | 
| secured_env | Apply filtering of secured env variables before calling the command (default true) Be careful if you disable it ! | true | 
| continue_if_failed | If set to false, stop MegaLinter process in case of command failure | true | 
| venv | If set, runs the command into the related python venv | |
| output_variables | ENV variables to get from output after running the commands, and store in MegaLinter ENV context, so they can be reused in next commands | [] | 
| tag | Tag defining at which commands entry point the command will be run   (available tags: before_plugins) |