From: Fatih Degirmenci Date: Wed, 4 Dec 2019 09:33:11 +0000 (+0100) Subject: engine: Enable ansible-lint X-Git-Url: https://gerrit.nordix.org/gitweb?a=commitdiff_plain;h=9d466baf7c8d4df243ac37b894b3e675261c1f34;p=infra%2Fcicd.git engine: Enable ansible-lint Change-Id: I365c2cb3aefd63a90d016244003390169ffb8ad7 --- diff --git a/jjb/cloud-infra/scripts/cloud-infra-ansible-lint.sh b/jjb/cloud-infra/scripts/cloud-infra-ansible-lint.sh index db8fba239..ece055e17 100644 --- a/jjb/cloud-infra/scripts/cloud-infra-ansible-lint.sh +++ b/jjb/cloud-infra/scripts/cloud-infra-ansible-lint.sh @@ -18,11 +18,56 @@ # SPDX-License-Identifier: Apache-2.0 # ============LICENSE_END========================================================= -set -o errexit -set -o nounset -set -o pipefail +# source engine-vars so we can install the correct versions of +# pip, ansible, and ansible-lint +source $WORKSPACE/engine/config/engine-vars + +# install dependencies +sudo apt update > /dev/null 2>&1 +sudo apt install -y -q=3 gcc libffi-dev libssl-dev lsb-release libpython3-dev \ + python3-minimal python3-pip python3-yaml virtualenv > /dev/null 2>&1 cd $WORKSPACE -echo "Hello, World!" +echo "Info: Install pip==$ENGINE_PIP_VERSION ansible==$ENGINE_ANSIBLE_VERSION and ansible-lint==$ENGINE_ANSIBLE_LINT_VERSION" +echo "----------------------------------------------------" + +# install pip, ansible, and ansible-lint in venv +export ANSIBLE_VENV=$WORKSPACE/.venv +virtualenv -p python3 --quiet --no-site-packages ${ANSIBLE_VENV} +source ${ANSIBLE_VENV}/bin/activate +pip -q install --upgrade pip==$ENGINE_PIP_VERSION +pip -q install --upgrade virtualenv pip setuptools shade \ + ansible==$ENGINE_ANSIBLE_VERSION ansible-lint==$ENGINE_ANSIBLE_LINT_VERSION + +echo "----------------------------------------------------" +echo "Info: Done" +echo "Info: Run ansible-lint on playbooks" +echo "----------------------------------------------------" + +# the locations of the engine playbooks +playbooks_dir=(engine/playbooks engine/provisioner/bifrost/playbooks engine/provisioner/heat/playbooks \ + engine/installer/kolla/playbooks engine/installer/kubespray/playbooks) + +# set exit_code so we exit ourselves rather than ansible-lint bailing out without +# verifying all the playbooks +declare -i exit_code=0 + +# lint the playbooks +for dir in ${playbooks_dir[@]}; do + for play in $(ls ${WORKSPACE}/${dir}/*.yml); do + echo "--> Checking '${play}' playbook..." + ansible-lint --nocolor ${play} + lint_exit_code=$? + if [[ $lint_exit_code != 0 ]]; then + exit_code=$lint_exit_code + else + echo [OK] + fi + echo + done +done +echo "----------------------------------------------------" +echo "Info: Done" +exit $exit_code # vim: set ts=2 sw=2 expandtab: