puppet-openstack-integration/playbooks/run-lint-tests.yaml
Tobias Urdin 60967dee60 Run metadata-json-lint test in lint job
If spec helper is available it will run the rake
task that is included in [1] otherwise it will
install metadata-json-lint and run it manually
like the other lint things does.

Only runs if the metadata.json file is available
so should not require any changes in modules if
something is wrong there.

[1] https://review.openstack.org/591605

Depends-On: https://review.openstack.org/591605
Change-Id: I60571e919e95327bf56a61bc33298a3810b942f7
2018-08-14 13:39:07 +02:00

40 lines
1.5 KiB
YAML

- hosts: all
tasks:
- shell:
cmd: |
if [ -f Modulefile -o -f metadata.json ]; then
if [ -f Modulefile ]; then
MODULE=$(awk '/^name/ {print $NF}' Modulefile |tr -d \"\')
elif [ -f metadata.json ]; then
MODULE=$(python -c 'import json;print json.load(open("metadata.json"))["name"]')
fi
if [ -z "$MODULE" ]; then
echo "Module name not defined in Modulefile or metadata.json"
else
mkdir -p "$MODULE"
rsync -a --exclude="$MODULE" --exclude ".*" . "$MODULE"
cd "$MODULE"
fi
fi
mkdir .bundled_gems
export GEM_HOME=`pwd`/.bundled_gems
if [ -f Gemfile ]; then
gem install bundler --no-rdoc --no-ri --verbose
$GEM_HOME/bin/bundle install --without system_tests --retry 3
$GEM_HOME/bin/bundle exec rake lint 2>&1
if [ -f metadata.json ]; then
$GEM_HOME/bin/bundle exec rake metadata_lint 2>&1
fi
else
gem install rake -n ./.bundled_gems/
gem install puppet-lint
gem install metadata-json-lint -n ./.bundled_gems/ --no-ri --no-rdoc
gem install puppetlabs_spec_helper
./.bundled_gems/rake lint 2>&1
if [ -f metadata.json ]; then
./.bundled_gems/metadata-json-lint
fi
fi
chdir: '{{ ansible_user_dir }}/workspace'
environment: '{{ zuul | zuul_legacy_vars }}'