From e3b14beacc35e75bc68fee065eb72001e706a6f1 Mon Sep 17 00:00:00 2001 From: Chenxiong Qi Date: Wed, 7 Aug 2019 21:44:24 +0800 Subject: [PATCH] Allow to run tests in containers in parallel Signed-off-by: Chenxiong Qi --- docker/Dockerfile-tests | 1 + docker/Dockerfile-tests-py3 | 1 + docker/test-py3.sh | 21 ++++++--------------- docker/test.sh | 19 ++++++++----------- 4 files changed, 16 insertions(+), 26 deletions(-) diff --git a/docker/Dockerfile-tests b/docker/Dockerfile-tests index c54d9028..a9c82ab8 100644 --- a/docker/Dockerfile-tests +++ b/docker/Dockerfile-tests @@ -11,6 +11,7 @@ RUN yum -y install \ --setopt=tsflags=nodocs \ bash \ createrepo_c \ + rsync \ fedmsg \ fedmsg-hub \ gcc \ diff --git a/docker/Dockerfile-tests-py3 b/docker/Dockerfile-tests-py3 index 105a48ca..76c7b72a 100644 --- a/docker/Dockerfile-tests-py3 +++ b/docker/Dockerfile-tests-py3 @@ -8,6 +8,7 @@ RUN dnf -y install \ --setopt=tsflags=nodocs \ git-core \ createrepo_c \ + rsync \ python3-fedmsg \ python3-kobo-rpmlib \ python3-rpm \ diff --git a/docker/test-py3.sh b/docker/test-py3.sh index 6c608a50..4b427d74 100755 --- a/docker/test-py3.sh +++ b/docker/test-py3.sh @@ -1,8 +1,12 @@ -#!/bin/bash +#!/bin/bash -ex + +mkdir -p ~/mbs +rsync -a --exclude '.*' --exclude '*.pyc' $PWD ~/mbs + +cd ~/mbs/src # Remove requirements not necessary for Python 3.7. # Also, prevent koji from being re-installed from PyPi. -cp requirements.txt requirements.txt.orig.py3 sed -i \ -e '/enum34/d' \ -e '/funcsigs/d' \ @@ -11,24 +15,11 @@ sed -i \ requirements.txt # Run everything with Python 3 -cp tox.ini tox.ini.orig.py3 sed -i \ -e 's/py.test/py.test-3/g' \ -e '/basepython/d' \ tox.ini -# Delete any leftover compiled Python files -for dir in module_build_service tests; do - find ${dir} -type f \( -name '*.pyc' -or -name '*.pyc' \) -exec rm -f {} \; -done - # Since tox seems to ignore `usedevelop` when we have `sitepackages` on, we have to run it manually python3 setup.py develop --no-deps /usr/bin/tox -e flake8,py3 "$@" -rv=$? - -# After running tox, we can revert back to the original files -rm -f requirements.txt tox.ini -mv requirements.txt.orig.py3 requirements.txt -mv tox.ini.orig.py3 tox.ini -exit $rv diff --git a/docker/test.sh b/docker/test.sh index 349416c2..3a49ad32 100755 --- a/docker/test.sh +++ b/docker/test.sh @@ -1,21 +1,18 @@ -#!/bin/bash +#!/bin/bash -ex + +mkdir -p ~/mbs +rsync -a --exclude '.*' --exclude '*.pyc' $PWD ~/mbs + +cd ~/mbs/src # We install the python-koji RPM but it doesn't register as installed through pip. # This hacks keeps tox from install koji from PyPi. -cp requirements.txt requirements.txt.orig sed -i '/koji/d' requirements.txt -# Delete any leftover compiled Python files -for dir in module_build_service tests; do - find ${dir} -type f \( -name '*.pyc' -or -name '*.pyc' \) -exec rm -f {} \; -done + # The python-virtualenv package bundles a very old version of pip, # which is incompatible with modern virtualenv. rm -f /usr/lib/python2.7/site-packages/virtualenv_support/pip-9* + # Since tox seems to ignore `usedevelop` when we have `sitepackages` on, we have to run it manually python setup.py develop --no-deps /usr/bin/tox -e flake8,py27 "$@" -rv=$? -# After running tox, we can revert back to the original requirements.txt file -rm -f requirements.txt -mv requirements.txt.orig requirements.txt -exit $rv