Since slugrunner consists of several bash scripts, shellcheck can be used to detect common shell programming errors. This adds the standard test Makefile targets and downloads the latest shellcheck binary release from S3. (v0.4.3 is also the shellcheck version installed on Deis Jenkins slaves by the deis-ci-manager ansible playbooks.)
This also fixes the few warnings that linting uncovered, then puts that commit first so that each of these commits passes on its own.
(An earlier version of this PR built shellcheck from source using Haskell's cabal, but that process takes 5-7 minutes, so I extracted the binary artifact Travis CI built and upx'ed it for download, which takes Travis one or two seconds to fetch. The entire Travis job took 24 seconds.) This uses docker-go-dev's shellcheck now.
Since slugrunner consists of several
bash
scripts,shellcheck
can be used to detect common shell programming errors. This adds the standard test Makefile targetsand downloads the latest. (v0.4.3 is also theshellcheck
binary release from S3shellcheck
version installed on Deis Jenkins slaves by the deis-ci-manager ansible playbooks.)This also fixes the few warnings that linting uncovered, then puts that commit first so that each of these commits passes on its own.
(An earlier version of this PR builtThis uses docker-go-dev'sshellcheck
from source using Haskell'scabal
, but that process takes 5-7 minutes, so I extracted the binary artifact Travis CI built andupx
'ed it for download, which takes Travis one or two seconds to fetch. The entire Travis job took 24 seconds.)shellcheck
now.