Use tox for testing inside a container #1884

Closed
g1itch wants to merge 8 commits from ci-tox into v0.6
2 changed files with 19 additions and 65 deletions
Showing only changes of commit 5a167f45c7 - Show all commits

View File

@ -1,61 +1,31 @@
FROM ubuntu:bionic AS base FROM ubuntu:bionic
ENV DEBIAN_FRONTEND noninteractive ENV DEBIAN_FRONTEND noninteractive
ENV TRAVIS_SKIP_APT_UPDATE 1
ENV LANG en_US.UTF-8
ENV LANGUAGE en_US:en
ENV LC_ALL en_US.UTF-8
RUN apt-get update RUN apt-get update
RUN apt-get install -yq --no-install-suggests --no-install-recommends \ RUN apt-get install -yq --no-install-suggests --no-install-recommends \
software-properties-common software-properties-common
RUN dpkg --add-architecture i386 # RUN dpkg --add-architecture i386
RUN add-apt-repository ppa:deadsnakes/ppa
RUN apt-get -y install sudo
RUN apt-get install -yq --no-install-suggests --no-install-recommends \ RUN apt-get install -yq --no-install-suggests --no-install-recommends \
# travis xenial bionic # xenial bionic
python-setuptools libssl-dev libpq-dev python-prctl python-dev \ build-essential libcap-dev libssl-dev python-all-dev python-pip \
python-dev python-virtualenv python-pip virtualenv \
# dpkg
python-minimal python-setuptools python-all python openssl libssl-dev \
dh-apparmor debhelper dh-python python-msgpack python-qt4 python-stdeb \
python-all-dev python-crypto python-psutil \
fakeroot python-pytest \
# Code quality
pylint python-pycodestyle python3-pycodestyle pycodestyle python-flake8 \
python3-flake8 flake8 python-pyflakes python3-pyflakes pyflakes pyflakes3 \
curl \
# Wine
python python-pip wget wine-stable winetricks mingw-w64 wine32 wine64 xvfb \
# Buildbot # Buildbot
python3-dev libffi-dev python3-setuptools \ libffi-dev python3-all-dev python3-pip \
python3-pip \ # Testing environment
# python 3.7 language-pack-en \
python3.7 python3.7-dev \ qtbase5-dev qt5-default tor tox xvfb \
# .travis.yml # dpkg
build-essential libcap-dev tor \ debhelper dh-apparmor dh-python fakeroot python-stdeb
language-pack-en # Wine
# wget wine-stable winetricks mingw-w64 wine32 wine64
# cleanup # cleanup
RUN rm -rf /var/lib/apt/lists/* RUN rm -rf /var/lib/apt/lists/*
#####################################################################################################
FROM base AS travis
# travis2bash
RUN wget -O /usr/local/bin/travis2bash.sh https://git.bitmessage.org/Bitmessage/buildbot-scripts/raw/branch/master/travis2bash.sh
RUN chmod +x /usr/local/bin/travis2bash.sh
RUN useradd -m -U builder RUN useradd -m -U builder
RUN echo 'builder ALL=(ALL) NOPASSWD:ALL' >> /etc/sudoers
# copy sources # copy sources
COPY . /home/builder/src COPY . /home/builder/src
@ -63,25 +33,10 @@ RUN chown -R builder.builder /home/builder/src
USER builder USER builder
ENV LANG en_US.UTF-8
ENV LANGUAGE en_US:en
ENV LC_ALL en_US.UTF-8
WORKDIR /home/builder/src WORKDIR /home/builder/src
ENTRYPOINT /usr/local/bin/travis2bash.sh CMD ["tox"]
#####################################################################################################
FROM base AS buildbot
# travis2bash
RUN wget -O /usr/local/bin/travis2bash.sh https://git.bitmessage.org/Bitmessage/buildbot-scripts/raw/branch/master/travis2bash.sh
RUN chmod +x /usr/local/bin/travis2bash.sh
# copy entrypoint
COPY packages/docker/buildbot-entrypoint.sh entrypoint.sh
RUN chmod +x entrypoint.sh
RUN useradd -m -U buildbot
RUN echo 'buildbot ALL=(ALL) NOPASSWD:ALL' >> /etc/sudoers
USER buildbot
ENTRYPOINT /entrypoint.sh "$BUILDMASTER" "$WORKERNAME" "$WORKERPASS"

View File

@ -1,5 +1,4 @@
#!/bin/bash #!/bin/bash
docker build --target travis -t pybm -f packages/docker/Dockerfile.bionic . docker build -t pybm-test -f packages/docker/Dockerfile.bionic .
docker run pybm docker run pybm-test