openstack-ansible-tests/test-ansible-lint.sh
Markos Chandras 4bb840d2de Skip ansible-lint test against roles
In order to decouple changes in the roles repositories from changes
needed in other repositories due to the ansible-lint test, the roles
repositories will skip all dependent roles when executing the lint test.
The roles can be updated in time as patches are submitted to those
repositories. In order to do that, we need to stop symlinking the
role into the same directory where its dependent roles are and place
it to its own directory so we can ignore the dependent roles in
ansible-lint.

Change-Id: I49c01fb63054e45bae5ae45a89cce986579959de
Closes-Bug: #1737310
2017-12-19 11:14:18 +00:00

49 lines
1.8 KiB
Bash
Executable File

#!/usr/bin/env bash
# Copyright 2016, Rackspace US, Inc.
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# WARNING:
# This file is use by all OpenStack-Ansible roles for testing purposes.
# Any changes here will affect all OpenStack-Ansible role repositories
# with immediate effect.
# PURPOSE:
# This script executes ansible-lint against the role directory.
## Shell Opts ----------------------------------------------------------------
set -e
## Vars ----------------------------------------------------------------------
export WORKING_DIR=${WORKING_DIR:-$(pwd)}
export COMMON_TESTS_PATH="${WORKING_DIR}/tests/common"
export TEST_PLAYBOOK=${TEST_PLAYBOOK:-$WORKING_DIR/tests/test.yml}
export ANSIBLE_LINT_PARAMS=${ANSIBLE_LINT_PARAMS:-}
echo "TEST_PLAYBOOK: ${TEST_PLAYBOOK}"
echo "ANSIBLE_LINT_PARAMS: ${ANSIBLE_LINT_PARAMS}"
## Main ----------------------------------------------------------------------
# Ensure that the Ansible environment is properly prepared
source "${COMMON_TESTS_PATH}/test-ansible-env-prep.sh"
# Execute ansible-lint. We do not want to test dependent roles located
# in $HOME/.ansible/roles since we only care about the role we are currently
# testing.
ansible-lint ${ANSIBLE_LINT_PARAMS} --exclude=$HOME/.ansible/roles \
-R -r ${COMMON_TESTS_PATH}/ansible-lint/ ${TEST_PLAYBOOK}