A submodule to lint your shell projects with shellcheck in travis.ci builds.
- The
install.sh
script will install shellckeck. - The
build.sh
will lint all executable files with shellcheck, avoiding Ruby, compdef and the like files. It will also ignore all files inside.git
directory and files of yourgitmodules
, if any.
git submodule add https://github.com/caarlos0/shell-ci-build.git build
cp build/travis.yml.example .travis.yml
Or tweak your .travis.yml
to be like this:
language: bash
install:
- ./build/install.sh
script:
- ./build/build.sh
You 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: false
This 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