# which accompanies this distribution, and is available at
# http://www.apache.org/licenses/LICENSE-2.0
##############################################################################
-set -eux
+set -eu
set -o pipefail
export PYTHONUNBUFFERED=1
if [ ${USE_VENV} = "true" ]; then
export VENV=/opt/stack/bifrost
- $SCRIPT_HOME/env-setup.sh
+ $SCRIPT_HOME/env-setup.sh &>/dev/null
# Note(cinerama): activate is not compatible with "set -u";
# disable it just for this line.
set +u
ANSIBLE=${VENV}/bin/ansible-playbook
ENABLE_VENV="true"
else
- $SCRIPT_HOME/env-setup.sh
+ $SCRIPT_HOME/env-setup.sh &>/dev/null
ANSIBLE=${HOME}/.local/bin/ansible-playbook
fi
-logs_on_exit() {
- $SCRIPT_HOME/collect-test-info.sh
-}
-trap logs_on_exit EXIT
-
# Change working directory
cd $BIFROST_HOME/playbooks
-# Syntax check of dynamic inventory test path
-for task in syntax-check list-tasks; do
- ${ANSIBLE} ${XCI_ANSIBLE_VERBOSITY} -i inventory/localhost \
- test-bifrost-create-vm.yaml \
- --${task}
- ${ANSIBLE} ${XCI_ANSIBLE_VERBOSITY} -i inventory/localhost \
- ${TEST_PLAYBOOK} \
- --${task} \
- -e testing_user=${TESTING_USER}
-done
-
# NOTE(hwoarang): Disable selinux as we are hitting issues with it from time to
# time. Remove this when Centos7 is a proper gate on bifrost so we know that
# selinux works as expected.
case ${ID,,} in
*suse)
OS_FAMILY="Suse"
- INSTALLER_CMD="sudo -H -E zypper install -y --no-recommends"
+ INSTALLER_CMD="sudo -H -E zypper -q install -y --no-recommends"
CHECK_CMD="zypper search --match-exact --installed"
PKG_MAP=(
[gcc]=gcc
[wget]=wget
)
EXTRA_PKG_DEPS=( python-xml )
- sudo zypper -n ref
+ sudo zypper -n ref
# NOTE (cinerama): we can't install python without removing this package
# if it exists
if $(${CHECK_CMD} patterns-openSUSE-minimal_base-conflicts &> /dev/null); then
ubuntu|debian)
OS_FAMILY="Debian"
export DEBIAN_FRONTEND=noninteractive
- INSTALLER_CMD="sudo -H -E apt-get -y install"
+ INSTALLER_CMD="sudo -H -E apt-get -y -q=3 install"
CHECK_CMD="dpkg -l"
PKG_MAP=(
[gcc]=gcc
[wget]=wget
)
EXTRA_PKG_DEPS=()
- sudo apt-get update
+ sudo apt-get update
;;
rhel|fedora|centos)
OS_FAMILY="RedHat"
PKG_MANAGER=$(which dnf || which yum)
- INSTALLER_CMD="sudo -H -E ${PKG_MANAGER} -y install"
+ INSTALLER_CMD="sudo -H -E ${PKG_MANAGER} -q -y install"
CHECK_CMD="rpm -q"
PKG_MAP=(
[gcc]=gcc
)
sudo yum updateinfo
EXTRA_PKG_DEPS=()
- sudo yum update --assumeno
;;
*) echo "ERROR: Supported package manager not found. Supported: apt, dnf, yum, zypper"; exit 1;;
PIP=$(which pip)
echo "Using pip: $(${PIP} --version)"
-sudo -H -E ${PIP} install --upgrade virtualenv
-sudo -H -E ${PIP} install --upgrade pip
+sudo -H -E ${PIP} -q install --upgrade virtualenv
+sudo -H -E ${PIP} -q install --upgrade pip
# upgrade setuptools, as latest version is needed to install some projects
-sudo -H -E ${PIP} install --upgrade setuptools
-${PIP} install --user --upgrade ansible==$XCI_ANSIBLE_PIP_VERSION
+sudo -H -E ${PIP} -q install --upgrade setuptools
+${PIP} install -q --user --upgrade ansible==$XCI_ANSIBLE_PIP_VERSION
with_nested:
- "{{ scenarios }}"
- [ "{{ scenario_path_default }}", "{{ role_path_default }}" ]
+ loop_control:
+ label: "{{ item[0].scenario }}"
- name: Create scenario directories
file:
path: "{{ role_path_default }} + '/' + item.scenario }}"
state: directory
with_items: "{{ scenarios }}"
+ loop_control:
+ label: "{{ item.scenario }}"
- name: Clone git repos (with git)
git:
until: git_clone | success
retries: "{{ git_clone_retries }}"
delay: "{{ git_clone_retry_delay }}"
+ loop_control:
+ label: "{{ item.scenario }}"
- name: Check that scenarios exist
stat:
path: "{{ scenario_path_default }}/{{ item.scenario }}/{{ item.role }}"
register: scenarios_list_exists
with_items: "{{ scenarios }}"
+ loop_control:
+ label: "{{ item.scenario }}"
- name: Plug in the scenario to XCI
shell: >-
{{ role_path_default }}/{{ item.item.scenario }}
when: item.stat.exists
with_items: "{{ scenarios_list_exists.results }}"
+ loop_control:
+ label: "{{ item.item.scenario }}"
- name: Plug in the scenario to XCI (fallback)
shell: >-
{{ role_path_default }}/{{ item.item.scenario }}
when: not item.stat.exists
with_items: "{{ scenarios_list_exists.results }}"
+ loop_control:
+ label: "{{ item.item.scenario }}"
vars:
ansible_python_interpreter: "/usr/bin/python"