[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
This commit is contained in:
Paula Toth 2020-03-11 17:34:32 -07:00
parent 981258f0d7
commit 270b528c7c
3 changed files with 60 additions and 0 deletions

View File

@ -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 <paulatoth@google.com>" > "${WORKER_NAME}/info/admin"
ADD --chown=buildbot:buildbot run.sh .
ENTRYPOINT ["./run.sh"]

View File

@ -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 <passwd>
```

10
libc/utils/buildbot/run.sh Executable file
View File

@ -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