Skip to content

Commit

Permalink
[libc] Add docker container for llvm-libc buildbot worker.
Browse files Browse the repository at this point in the history
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
  • Loading branch information
PaulkaToast committed Mar 12, 2020
1 parent 981258f commit 270b528
Show file tree
Hide file tree
Showing 3 changed files with 60 additions and 0 deletions.
34 changes: 34 additions & 0 deletions 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 <paulatoth@google.com>" > "${WORKER_NAME}/info/admin"

ADD --chown=buildbot:buildbot run.sh .
ENTRYPOINT ["./run.sh"]
16 changes: 16 additions & 0 deletions 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 <passwd>
```
10 changes: 10 additions & 0 deletions 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

0 comments on commit 270b528

Please sign in to comment.