in_ci checks for environment variables set by a selection of CI systems and returns true if the test appears to be running in CI. Additionally it can test for specific CI systems, and returns true if the CI system is listed. Deduplicate existing environment checks for Travis and Jenkins. Signed-off-by: Joe Groocock <me@frebib.net>
66 lines
1.7 KiB
Bash
Executable File
66 lines
1.7 KiB
Bash
Executable File
#!/bin/bash
|
|
# check for any yaml files that aren't properly formatted
|
|
|
|
exit 0 # i give up, we're skipping this entirely, help wanted to fix this
|
|
|
|
echo running "$0"
|
|
set -o errexit
|
|
set -o nounset
|
|
set -o pipefail
|
|
|
|
#ROOT="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && cd .. && pwd )" # dir!
|
|
ROOT=$(dirname "${BASH_SOURCE}")/..
|
|
cd "${ROOT}"
|
|
. test/util.sh
|
|
|
|
#if in_ci travis jenkins; then
|
|
# echo "Travis and Jenkins give wonky results here, skipping test!"
|
|
# exit 0
|
|
#fi
|
|
|
|
RUBY=`command -v ruby 2>/dev/null`
|
|
if [ -z $RUBY ]; then
|
|
fail_test "The 'ruby' utility can't be found."
|
|
fi
|
|
|
|
$RUBY -e "require 'yaml'" 2>/dev/null || fail_test "The ruby 'yaml' library can't be found."
|
|
|
|
if $RUBY -e "puts RUBY_VERSION" | grep -q ^1 ; then
|
|
echo "SKIPPING - cannot test YAML formatting with Ruby 1.x"
|
|
exit 0
|
|
fi
|
|
|
|
# eg: 2.3.3p222 -> 2.3.3
|
|
version="`$RUBY --version | cut -f2 -d' ' | cut -f1 -d'p'`"
|
|
major="`echo $version | cut -f1 -d'.'`"
|
|
minor="`echo $version | cut -f2 -d'.'`"
|
|
point="`echo $version | cut -f3 -d'.'`"
|
|
|
|
echo "Found Ruby version: `$RUBY --version`"
|
|
if [ "$major" -lt 2 ]; then
|
|
echo "Skipping yamlfmt - cannot test YAML formatting with Ruby < 2.x"
|
|
exit 0
|
|
fi
|
|
|
|
if [ "$major" -eq 2 ] && [ "$minor" -lt 1 ] ; then
|
|
echo "Skipping yamlfmt - cannot test YAML formatting with Ruby < 2.1"
|
|
exit 0
|
|
fi
|
|
|
|
find_files() {
|
|
git ls-files | grep '\.yaml$'
|
|
}
|
|
|
|
bad_files=$(
|
|
for i in $(find_files); do
|
|
if ! diff -q <( ruby -e "require 'yaml'; puts YAML.load_file('$i').to_yaml.each_line.map(&:rstrip).join(10.chr)+10.chr" 2>/dev/null ) <( cat "$i" ) &>/dev/null; then
|
|
echo "$i"
|
|
fi
|
|
done
|
|
)
|
|
|
|
if [[ -n "${bad_files}" ]]; then
|
|
fail_test "The following yaml files are not properly formatted: ${bad_files}"
|
|
fi
|
|
echo 'PASS'
|