Monty Taylor 4b9fc09a1c
Port in tox jobs from openstack-zuul-jobs
The original idea was that we'd have a "python27" job. But it turns out
that "python27" isn't actually as universal as you might think.
"tox-py27" on the other hand is a thing that can and should always work
for people who want to run tox with the py27 env.

Port in the jobs we had in openstack-zuul-jobs.

Also, copy in the text of the old shell scripts so that we can iterate on
them and make them better piecemeal.

These are named zuul-tox not tox because we already have tox jobs
defined elsewhere. We'll need to do the naming dance while we work on
them.

Change-Id: I813f3f2ae138c07918556bc81655518023527131
2017-07-06 11:18:47 -05:00

69 lines
2.3 KiB
YAML

---
- name: Install distro packages from bindep
args:
chdir: "src/{{ zuul.project.canonical_name }}"
executable: /bin/bash
shell: |
# set a default path to the preinstalled bindep entrypoint
export BINDEP=${BINDEP:-/usr/bindep-env/bin/bindep}
function is_fedora {
[ -f /usr/bin/yum ] && cat /etc/*release | grep -q -e "Fedora"
}
YUM=yum
if is_fedora; then
YUM=dnf
fi
# figure out which bindep list to use
if [ -n "$PACKAGES" ] ; then
# already set in the calling environment
:
elif [ -e bindep.txt ] ; then
# project has its own bindep list
export PACKAGES=bindep.txt
elif [ -e other-requirements.txt ] ; then
# project has its own bindep list
export PACKAGES=other-requirements.txt
else
# use the bindep fallback list preinstalled on the worker
export PACKAGES=/usr/local/jenkins/common_data/bindep-fallback.txt
fi
# an install loop, retrying to check that all requested packages are
# obtained
try=0
# Install test profile using bindep
until $BINDEP -b -f $PACKAGES test; do
if [ $try -gt 2 ] ; then
set +x
echo -e "\nERROR: These requested packages were not installed:\n" \
"\n`$BINDEP -b -f $PACKAGES test`\n" 1>&2
set -x
exit 1
fi
# do not abort inside the loop, we check for the desired outcome
set +e
if apt-get -v >/dev/null 2>&1 ; then
sudo apt-get -qq update
sudo PATH=/usr/sbin:/sbin:$PATH DEBIAN_FRONTEND=noninteractive \
apt-get -q --option "Dpkg::Options::=--force-confold" \
--assume-yes install `$BINDEP -b -f $PACKAGES test`
elif emerge --version >/dev/null 2>&1 ; then
sudo emerge -uDNq --jobs=4 @world
sudo PATH=/usr/sbin:/sbin:$PATH emerge -q --jobs=4 \
`$BINDEP -b -f $PACKAGES test`
elif zypper --version >/dev/null 2>&1 ; then
sudo PATH=/usr/sbin:/sbin:$PATH zypper --non-interactive install \
`$BINDEP -b -f $PACKAGES test`
else
sudo PATH=/usr/sbin:/sbin:$PATH $YUM install -y \
`$BINDEP -b -f $PACKAGES test`
fi
set -e
try=$(( $try+1 ))
done