summaryrefslogtreecommitdiffstats
path: root/tools/test-eco.sh
blob: 55792af8d9e90671e280cb98f2944ad49e6fd15f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
#!/usr/bin/env bash
set -eu
SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )

if [[ -d "${SCRIPT_DIR}/../.cache/eco/.git" ]]; then
  git -C "${SCRIPT_DIR}/../.cache/eco" pull
else
  mkdir -p "${SCRIPT_DIR}/../.cache"
  git clone --recursive https://github.com/ansible-community/ansible-lint-eco "${SCRIPT_DIR}/../.cache/eco"
fi
pushd "${SCRIPT_DIR}/../.cache/eco/projects" > /dev/null


for i in $(ls -d */); do
  DIR=${i%%/}
  RC=0
  pushd $DIR > /dev/null
  # Calling ansible lint without any positional arguments inside repository root
  SECONDS=0
  ANSIBLE_LINT_IGNORE_FILE=../$DIR.ignore.txt ansible-lint -qq --generate-ignore -f codeclimate | python3 -m json.tool > ../$DIR.json ||
  RC=$?
  echo "Got $RC RC on $DIR in $SECONDS seconds"
  popd > /dev/null
done
popd > /dev/null
# Fail if git reports dirty at the end
git diff --exit-code