A submodule to lint your shell projects with shellcheck in travis.ci builds.
- The
install.shscript will install shellckeck. - The
build.shwill lint all executable files with shellcheck, avoiding Ruby, compdef and the like files. It will also ignore all files inside.gitdirectory and files of yourgitmodules, if any.
git submodule add https://github.com/caarlos0/shell-ci-build.git build
cp build/travis.yml.example .travis.ymlWe also support Shippable:
cp build/shippable.yml.example .shippable.yml
Or tweak your .travis.yml to be like this:
language: bash
install:
- ./build/install.sh
script:
- ./build/build.shYou might want to lint other files, to do that, you need your own
build.sh and a slight change in .travis.yml file.
Example (from my dotfiles):
#!/usr/bin/env bash
set -eo pipefail
source ./build/build.sh
check "./zsh/zshrc.symlink"language: bash
install:
- ./build/install.sh
script:
- ./build.sh
notifications:
email: falseThis will make travis ran the build.sh from this project first,
then, lint your custom files.
You can also override the find_cmd function, which returns a string
containing the find command to eval. Check the source or open an
issue if you have any problems.
Update your projects is easy. Just run this:
git submodule update --remote --merge && \
git commit -am 'updated shell-ci-build version' && \
git push