ansible/test/utils/shippable/code-smell.sh
Adrien Vergé 527d8307c1 Lint YAML files under test/
This commit extends YAML linting by enabling standard rules from the
`yamllint` tool [1]. Since syntax errors and key duplicates are already
checked since 4d48711, this change only adds detection for cosmetic
problems. It also narrows checks to the test/ dir only.

The main goal is to prevent future problems to enter the code base
without being noticed. While it would be a huge effort to be PEP8
compliant, it is relatively easy to have correct YAML style *now* and
prevent future errors by enabling linting.

Note: for those (like me) caring about code attribution: use `git blame
-w` to ignore whitespace-only changes.

Note: I disabled some linting checks (such as indentation), they can be
enforced in the future if needed. Similarly, current checks can also be
disabled. See the `.yamllint` file.

[1]: https://yamllint.readthedocs.io/
2016-11-11 14:50:57 -08:00

31 lines
905 B
Bash
Executable file

#!/bin/bash -eux
source_root=$(python -c "from os import path; print(path.abspath(path.join(path.dirname('$0'), '../../..')))")
install_deps="${INSTALL_DEPS:-}"
cd "${source_root}"
if [ "${install_deps}" != "" ]; then
apt-add-repository 'deb http://archive.ubuntu.com/ubuntu trusty-backports universe'
apt-get update -qq
apt-get install shellcheck
pip install -r "${source_root}/test/utils/shippable/code-smell-requirements.txt" --upgrade
pip list
fi
yamllint ./test
test/sanity/code-smell/replace-urlopen.sh
test/sanity/code-smell/use-compat-six.sh
test/sanity/code-smell/boilerplate.sh
test/sanity/code-smell/required-and-default-attributes.sh
test/sanity/code-smell/shebang.sh
test/sanity/code-smell/line-endings.sh
test/sanity/code-smell/empty-init.sh
test/sanity/code-smell/no-basestring.sh
shellcheck \
test/integration/targets/*/*.sh \
test/utils/shippable/*.sh