lgsm local mirror
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

1.7 KiB

shell-ci-build Build Status

A submodule to lint your shell projects with shellcheck in travis.ci builds.

Build

  • 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 your gitmodules, if any.

Usage

git submodule add https://github.com/caarlos0/shell-ci-build.git build
cp build/travis.yml.example .travis.yml

We 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.sh

Customizing

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.

Updating

Update your projects is easy. Just run this:

git submodule update --remote --merge && \
  git commit -am 'updated shell-ci-build version' && \
  git push