[libc-commits] [libc] 270b528 - [libc] Add docker container for llvm-libc buildbot worker.
Paula Toth via libc-commits
libc-commits at lists.llvm.org
Wed Mar 11 17:36:02 PDT 2020
Author: Paula Toth
Date: 2020-03-11T17:35:41-07:00
New Revision: 270b528c7c5ca7fbba45a6d6c5b637fd40f307a1
URL: https://github.com/llvm/llvm-project/commit/270b528c7c5ca7fbba45a6d6c5b637fd40f307a1
DIFF: https://github.com/llvm/llvm-project/commit/270b528c7c5ca7fbba45a6d6c5b637fd40f307a1.diff
LOG: [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
Added:
libc/utils/buildbot/Dockerfile
libc/utils/buildbot/README.txt
libc/utils/buildbot/run.sh
Modified:
Removed:
################################################################################
diff --git a/libc/utils/buildbot/Dockerfile b/libc/utils/buildbot/Dockerfile
new file mode 100644
index 000000000000..21369961e865
--- /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 <paulatoth at google.com>" > "${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 000000000000..3edec0e416c3
--- /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 <passwd>
+```
diff --git a/libc/utils/buildbot/run.sh b/libc/utils/buildbot/run.sh
new file mode 100755
index 000000000000..38299239740d
--- /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
More information about the libc-commits
mailing list