Skip to content

operable/shellcheck-buildkite-plugin

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

shellcheck-buildkite-plugin

Shell script linter plugin for Buildkite

Build status

NOTE: Plugins only work with the as yet unlreleased 3.0 version of the Buildkite Agent!

NOTE: This plugin is a work-in-progress. We use it internally at Operable to test our bundles. However, it may still blow up your systems; use at your own discretion!

This plugin allows you to lint your shell scripts using shellcheck. It is implememnted in terms of the Docker image for shellcheck, so it must be run on a build agent that has access to docker.

Keys

  • script: specify the script (or scripts) to lint. Each file is linted individually.

  • opts: space-separated string of command-line options for shellcheck; corresponds to the SHELLCHECK_OPTS environment variable.

    Useful options for the purposes of this plugin include --exclude (to exclude specific checks) and --shell (to specify a scripting dialect).

    All options available can be seen by running shellcheck without any arguments, e.g.:

docker run --rm -t koalaman/shellcheck
No files specified.

Usage: shellcheck [OPTIONS...] FILES...
  -e CODE1,CODE2..  --exclude=CODE1,CODE2..  exclude types of warnings
  -f FORMAT         --format=FORMAT          output format
  -C[WHEN]          --color[=WHEN]           Use color (auto, always, never)
  -s SHELLNAME      --shell=SHELLNAME        Specify dialect (sh,bash,dash,ksh)
  -x                --external-sources       Allow 'source' outside of FILES.
  -V                --version                Print version information

Codes for the warnings can be found in the shellcheck wiki.

Usage

- steps
  - label: Simple linting
    plugins:
      operable/shellcheck:
        script: my_script.sh

  - label: Lint multiple scripts
    plugins:
      operable/shellcheck:
        script:
          - my_script.sh
          - my_other_script.sh
          - yet_another_script.sh

  - label: Exclude some warnings
    plugins:
      operable/shellcheck:
        script: my_script.sh
        opts: --exclude=1000

Also see this plugin's pipeline configuration for other examples.

About

Shell script linter plugin for Buildkite

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages