FROM ubuntu:bionic AS base ENV DEBIAN_FRONTEND noninteractive RUN apt-get update # Common apt packages RUN apt-get install -yq --no-install-suggests --no-install-recommends \ software-properties-common build-essential libcap-dev libssl-dev \ python-all-dev python-setuptools wget xvfb ############################################################################### FROM base AS appimage RUN apt-get install -yq --no-install-suggests --no-install-recommends \ debhelper dh-apparmor dh-python python-stdeb fakeroot COPY . /home/builder/src WORKDIR /home/builder/src CMD python setup.py sdist \ && python setup.py --command-packages=stdeb.command bdist_deb \ && dpkg-deb -I deb_dist/*.deb \ && cp deb_dist/*.deb /dist/ \ && ln -s /dist out \ && buildscripts/appimage.sh ############################################################################### FROM base AS tox RUN apt-get install -yq --no-install-suggests --no-install-recommends \ language-pack-en \ libffi-dev python3-dev python3-pip python3.8 python3.8-dev python3.8-venv \ python-msgpack python-pip python-qt4 python-six qt5dxcb-plugin tor RUN python3.8 -m pip install setuptools wheel RUN python3.8 -m pip install --upgrade pip tox virtualenv RUN useradd -m -U builder # copy sources COPY . /home/builder/src RUN chown -R builder.builder /home/builder/src USER builder ENV LANG en_US.UTF-8 ENV LANGUAGE en_US:en ENV LC_ALL en_US.UTF-8 WORKDIR /home/builder/src ENTRYPOINT ["tox"] ############################################################################### FROM base AS snap RUN apt-get install -yq --no-install-suggests --no-install-recommends snapcraft COPY . /home/builder/src WORKDIR /home/builder/src CMD cd packages && snapcraft && cp *.snap /dist/ ############################################################################### FROM base AS winebuild RUN dpkg --add-architecture i386 RUN apt-get update RUN apt-get install -yq --no-install-suggests --no-install-recommends \ mingw-w64 wine-stable winetricks wine32 wine64 COPY . /home/builder/src WORKDIR /home/builder/src # xvfb-run -a buildscripts/winbuild.sh CMD xvfb-run -a i386 buildscripts/winbuild.sh \ && cp packages/pyinstaller/dist/*.exe /dist/ ############################################################################### FROM base AS buildbot # cleanup RUN rm -rf /var/lib/apt/lists/* # 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" ############################################################################### FROM base AS appandroid COPY . /home/builder/src WORKDIR /home/builder/src RUN chmod +x buildscripts/androiddev.sh RUN buildscripts/androiddev.sh