mirror of
https://pagure.io/fm-orchestrator.git
synced 2026-04-14 00:29:57 +08:00
test pull requests under Python 3 as well
This commit is contained in:
@@ -56,13 +56,15 @@ node('factory2'){
|
||||
onmyduffynode "cd fm-orchestrator && git log -2"
|
||||
}
|
||||
|
||||
stage('Build Docker Image') {
|
||||
stage('Build Docker Images') {
|
||||
onmyduffynode 'cd fm-orchestrator && docker build -t mbs/test -f docker/Dockerfile-tests .'
|
||||
onmyduffynode 'cd fm-orchestrator && docker build -t mbs/test-py3 -f docker/Dockerfile-tests-py3 .'
|
||||
}
|
||||
|
||||
stage('Run Test Suite') {
|
||||
stage('Run Test Suites') {
|
||||
timeout(20) {
|
||||
onmyduffynode 'docker run -v ~/fm-orchestrator:/src:Z mbs/test'
|
||||
onmyduffynode 'docker run -v ~/fm-orchestrator:/src:Z mbs/test-py3'
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -44,7 +44,7 @@ RUN yum -y install \
|
||||
rpm-build \
|
||||
&& yum clean all
|
||||
# We currently require a newer versions of these Python packages for the tests
|
||||
RUN pip install --upgrade flask-sqlalchemy pytest flake8 tox
|
||||
RUN pip install --upgrade flask-sqlalchemy pytest flake8 tox pip
|
||||
VOLUME /src
|
||||
WORKDIR /src
|
||||
CMD ["bash", "docker/test.sh"]
|
||||
|
||||
38
docker/Dockerfile-tests-py3
Normal file
38
docker/Dockerfile-tests-py3
Normal file
@@ -0,0 +1,38 @@
|
||||
FROM fedora:29
|
||||
|
||||
WORKDIR /build
|
||||
RUN dnf -y install \
|
||||
--nogpgcheck \
|
||||
--setopt=deltarpm=0 \
|
||||
--setopt=install_weak_deps=false \
|
||||
--setopt=tsflags=nodocs \
|
||||
git-core \
|
||||
createrepo_c \
|
||||
python3-fedmsg \
|
||||
python3-kobo-rpmlib \
|
||||
python3-rpm \
|
||||
libmodulemd \
|
||||
python3-gobject \
|
||||
python3-dogpile-cache \
|
||||
python3-flask \
|
||||
python3-flask-migrate \
|
||||
python3-flask-sqlalchemy \
|
||||
python3-koji \
|
||||
python3-ldap3 \
|
||||
python3-munch \
|
||||
python3-pip \
|
||||
python3-requests \
|
||||
python3-six \
|
||||
python3-solv \
|
||||
python3-sqlalchemy \
|
||||
python3-pungi \
|
||||
# Test-only dependencies
|
||||
python3-pytest \
|
||||
python3-flake8 \
|
||||
python3-mock \
|
||||
python3-tox \
|
||||
rpm-build \
|
||||
&& dnf clean all
|
||||
VOLUME /src
|
||||
WORKDIR /src
|
||||
CMD ["bash", "docker/test-py3.sh"]
|
||||
34
docker/test-py3.sh
Normal file
34
docker/test-py3.sh
Normal file
@@ -0,0 +1,34 @@
|
||||
#!/bin/bash
|
||||
|
||||
# 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' \
|
||||
-e '/futures/d' \
|
||||
-e '/koji/d' \
|
||||
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
|
||||
@@ -8,6 +8,9 @@ sed -i '/koji/d' requirements.txt
|
||||
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
|
||||
|
||||
Reference in New Issue
Block a user