puppet-openstack-integration/playbooks/run-lint-tests.yaml
Takashi Kajinami 0be086fef5 Explicitly set --bindir when isntalling bundle
... so that we can make sure that bundle command is installed in
GEM_HOME/bin directory.

Change-Id: I1ea78bbd2b7fe22d510e10b0c96c0ed7bdc9f8a3
Closes-Bug: #1866176
2020-03-10 06:09:34 +00:00

49 lines
2.1 KiB
YAML

- hosts: all
tasks:
- shell:
cmd: |
set -e
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
export GEM_BIN_DIR=$GEM_HOME/bin
if [ -f Gemfile ]; then
ruby <<EOF
cmd = 'gem install bundler --no-rdoc --no-ri --verbose --no-user-install --bindir=${GEM_BIN_DIR}'
if Gem::Version.new(RUBY_VERSION) < Gem::Version.new('2.3.0') then
cmd += ' -v 1.17.3'
end
system(cmd)
EOF
$GEM_BIN_DIR/bundle install --without system_tests --retry 3
$GEM_BIN_DIR/bundle exec rake lint 2>&1
if [ -f metadata.json ]; then
$GEM_BIN_DIR/bundle exec rake metadata_lint 2>&1
fi
else
gem install rake -n ./.bundled_gems/ --no-ri --no-rdoc --no-user-install
gem install puppet-lint -n ./.bundled_gems/ --no-ri --no-rdoc --no-user-install
gem install metadata-json-lint -n ./.bundled_gems/ --no-ri --no-rdoc --no-user-install
gem install puppetlabs_spec_helper -n ./.bundled_gems/ --no-ri --no-rdoc --no-user-install
gem install puppet -n ./.bundled_gems/ --no-ri --no-rdoc --no-user-install
./.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 }}'