From 270b528c7c5ca7fbba45a6d6c5b637fd40f307a1 Mon Sep 17 00:00:00 2001 From: Paula Toth Date: Wed, 11 Mar 2020 17:34:32 -0700 Subject: [PATCH] [libc] Add docker container for llvm-libc buildbot worker. Summary: Created a docker container to provide transparency and easy changes to the llvm-libc buildbot intfra. Reviewers: sivachandra Reviewed By: sivachandra Subscribers: MaskRay, tschuett, libc-commits Tags: #libc-project Differential Revision: https://reviews.llvm.org/D75596 --- libc/utils/buildbot/Dockerfile | 34 ++++++++++++++++++++++++++++++++++ libc/utils/buildbot/README.txt | 16 ++++++++++++++++ libc/utils/buildbot/run.sh | 10 ++++++++++ 3 files changed, 60 insertions(+) create mode 100644 libc/utils/buildbot/Dockerfile create mode 100644 libc/utils/buildbot/README.txt create mode 100755 libc/utils/buildbot/run.sh diff --git a/libc/utils/buildbot/Dockerfile b/libc/utils/buildbot/Dockerfile new file mode 100644 index 0000000..2136996 --- /dev/null +++ b/libc/utils/buildbot/Dockerfile @@ -0,0 +1,34 @@ +FROM debian:10 + +# Installing dependecies. +RUN dpkg --add-architecture i386 +RUN apt-get update +RUN apt-get install -y build-essential clang subversion git vim \ + zip libstdc++6:i386 file binutils-dev binutils-gold cmake python-pip \ + ninja-build +RUN python -m pip install buildbot-slave==0.8.12 + +# Change linker to gold. +RUN update-alternatives --install "/usr/bin/ld" "ld" "/usr/bin/ld.gold" 20 + +# Create and switch to buildbot user. +RUN useradd buildbot --create-home +USER buildbot + +WORKDIR /home/buildbot + +# Use clang as the compiler. +ENV CC=/usr/bin/clang +ENV CXX=/usr/bin/clang++ + +ENV WORKER_NAME="libc-x86_64-debian" + +# Set up buildbot host and maintainer info. +RUN mkdir -p "${WORKER_NAME}/info/" +RUN bash -c "(uname -a ; \ + gcc --version | head -n1 ; ld --version \ + | head -n1 ; cmake --version | head -n1 ) > ${WORKER_NAME}/info/host" +RUN echo "Paula Toth " > "${WORKER_NAME}/info/admin" + +ADD --chown=buildbot:buildbot run.sh . +ENTRYPOINT ["./run.sh"] diff --git a/libc/utils/buildbot/README.txt b/libc/utils/buildbot/README.txt new file mode 100644 index 0000000..3edec0e --- /dev/null +++ b/libc/utils/buildbot/README.txt @@ -0,0 +1,16 @@ +This folder contains resources needed to create a docker container for +llvm-libc builbot worker. + +Dockerfile: Sets up the docker image with all pre-requisites. + +run.sh: Script to create and start buildbot worker with supplied password. + +cmd to build the docker container: +``` +docker build -t llvm-libc-buildbot-worker . +``` + +cmd to run the buildbot: +``` +docker run -it llvm-libc-buildbot-worker +``` diff --git a/libc/utils/buildbot/run.sh b/libc/utils/buildbot/run.sh new file mode 100755 index 0000000..3829923 --- /dev/null +++ b/libc/utils/buildbot/run.sh @@ -0,0 +1,10 @@ +#!/bin/bash + +# This serves as the entrypoint for docker to allow us to +# run and start the buildbot while supplying the password +# as an argument. +buildslave create-slave --keepalive=200 "${WORKER_NAME}" \ + lab.llvm.org:9990 "${WORKER_NAME}" "$1" + +buildslave start "${WORKER_NAME}" +tail -f ${WORKER_NAME}/twistd.log -- 2.7.4