diff --git a/premerge/buildbot/Dockerfile b/premerge/buildbot/Dockerfile new file mode 100644 index 000000000..96ee435cc --- /dev/null +++ b/premerge/buildbot/Dockerfile @@ -0,0 +1,10 @@ +FROM ubuntu:24.04 +RUN apt-get update && apt-get install -y python3 python3-pip +COPY requirements.lock.txt /requirements.lock.txt +RUN pip3 install --break-system-packages -r /requirements.lock.txt && rm /requirements.lock.txt +RUN mkdir /app +WORKDIR /app +COPY dispatch_job.py . +COPY startup.sh . +RUN chmod +x startup.sh +ENTRYPOINT /app/startup.sh diff --git a/premerge/buildbot/requirements.lock.txt b/premerge/buildbot/requirements.lock.txt index 6f65d1060..a49faeed5 100644 --- a/premerge/buildbot/requirements.lock.txt +++ b/premerge/buildbot/requirements.lock.txt @@ -4,22 +4,46 @@ # # pip-compile --output-file=requirements.lock.txt requirements.txt # +attrs==25.3.0 + # via twisted +autobahn==24.4.2 + # via buildbot-worker +automat==25.4.16 + # via twisted +buildbot-worker==3.11.7 + # via -r requirements.txt cachetools==5.5.2 # via google-auth certifi==2025.7.14 # via # kubernetes # requests +cffi==1.17.1 + # via cryptography charset-normalizer==3.4.2 # via requests +constantly==23.10.4 + # via twisted +cryptography==45.0.5 + # via autobahn durationpy==0.10 # via kubernetes google-auth==2.40.3 # via kubernetes +hyperlink==21.0.0 + # via + # autobahn + # twisted idna==3.10 - # via requests + # via + # hyperlink + # requests +incremental==24.7.2 + # via twisted kubernetes==33.1.0 # via -r requirements.txt +msgpack==1.1.1 + # via buildbot-worker oauthlib==3.3.1 # via # kubernetes @@ -30,6 +54,8 @@ pyasn1==0.6.1 # rsa pyasn1-modules==0.4.2 # via google-auth +pycparser==2.22 + # via cffi python-dateutil==2.9.0.post0 # via kubernetes pyyaml==6.0.2 @@ -44,11 +70,23 @@ rsa==4.9.1 # via google-auth six==1.17.0 # via + # buildbot-worker # kubernetes # python-dateutil +twisted==25.5.0 + # via buildbot-worker +txaio==25.6.1 + # via autobahn +typing-extensions==4.14.1 + # via twisted urllib3==2.5.0 # via # kubernetes # requests websocket-client==1.8.0 # via kubernetes +zope-interface==7.2 + # via twisted + +# The following packages are considered to be unsafe in a requirements file: +# setuptools diff --git a/premerge/buildbot/requirements.txt b/premerge/buildbot/requirements.txt index 59942502d..dfd1b8447 100644 --- a/premerge/buildbot/requirements.txt +++ b/premerge/buildbot/requirements.txt @@ -1 +1,2 @@ kubernetes==33.1.0 +buildbot-worker==3.11.7 diff --git a/premerge/buildbot/startup.sh b/premerge/buildbot/startup.sh new file mode 100644 index 000000000..7f39b6463 --- /dev/null +++ b/premerge/buildbot/startup.sh @@ -0,0 +1,20 @@ +#!/bin/bash + +# This script performs all the necessary setup and then starts the buildbot +# worker. + +mkdir /worker +buildbot-worker create-worker /worker \ + lab.llvm.org:9994 \ + $BUILDBOT_USERNAME \ + $BUILDBOT_PASSWORD + +echo "Google LLVM Premerge Infra Rotation " \ + > /worker/info/admin + +{ + echo "Premerge container (https://github.com/llvm/llvm-project/pkgs/container/ci-ubuntu-24.04)" + echo "GCP n2/n2d standard instances." +} > /worker/info/host + +buildbot-worker start /worker