From f0d36055ad128b807dd6c4d5b4e13606363ddbc0 Mon Sep 17 00:00:00 2001 From: timofey Date: Sat, 26 Aug 2023 17:14:22 +0000 Subject: [PATCH] customize --- master.cfg | 13 +++++++------ simple/docker-compose.yml | 15 ++++++++++++++- worker/Dockerfile | 4 +++- worker/Dockerfile.mdbook | 10 ++++++++++ worker/worker-setup-user.sh | 3 +++ worker/worker-setup.sh | 5 ++--- 6 files changed, 39 insertions(+), 11 deletions(-) create mode 100644 worker/Dockerfile.mdbook create mode 100644 worker/worker-setup-user.sh diff --git a/master.cfg b/master.cfg index f2149db..d17d9bf 100644 --- a/master.cfg +++ b/master.cfg @@ -3,7 +3,7 @@ import os -from buildbot.plugins import worker, changes, util, steps, schedulers, reporters +from buildbot.plugins import changes, reporters, schedulers, steps, util, worker from buildbot.www.authz.roles import RolesFromBase # This is a sample buildmaster config file. It must be installed as @@ -30,6 +30,7 @@ assert CLIENT_SECRET c["workers"] = [ worker.Worker("worker-rust-1-65", "pass", properties={"rust_version": "1.65"}), worker.Worker("worker-rust-1-71", "pass", properties={"rust_version": "1.71"}), + worker.Worker("worker-rust-mdbook", "pass"), ] rust_workers_1_65 = ["worker-rust-1-65"] rust_workers_1_71 = ["worker-rust-1-71"] @@ -91,7 +92,7 @@ env = {"CARGO_TARGET_DIR": CARGO_TARGET_DIR} DOC_DIR = f"{CARGO_TARGET_DIR}/doc" -def basic_factory(): +def radn_rs_factory(): factory = util.BuildFactory() factory.addStep( steps.Git( @@ -109,7 +110,7 @@ def append_factory(factory, name: str, workernames: list[str]): def cargo_test(name: str, workernames: list[str]): - factory = basic_factory() + factory = radn_rs_factory() factory.addStep( steps.ShellCommand( command=["cargo", "test"], @@ -120,7 +121,7 @@ def cargo_test(name: str, workernames: list[str]): def cargo_clippy(name: str, workernames: list[str]): - factory = basic_factory() + factory = radn_rs_factory() factory.addStep( steps.ShellCommand( command=[ @@ -139,7 +140,7 @@ def cargo_clippy(name: str, workernames: list[str]): def cargo_fmt(name: str, workernames: list[str]): - factory = basic_factory() + factory = radn_rs_factory() factory.addStep( steps.ShellCommand( command=[ @@ -155,7 +156,7 @@ def cargo_fmt(name: str, workernames: list[str]): def cargo_doc(name: str, workernames: list[str], specific: bool, latest: bool): - factory = basic_factory() + factory = radn_rs_factory() factory.addStep( steps.ShellCommand( command=[ diff --git a/simple/docker-compose.yml b/simple/docker-compose.yml index 8459e72..0b3a42b 100644 --- a/simple/docker-compose.yml +++ b/simple/docker-compose.yml @@ -33,7 +33,7 @@ services: - buildbot-worker volumes: - buildbot-docs:/buildbot_share/docs/:rw - + db: env_file: - db.env @@ -71,6 +71,19 @@ services: networks: - buildbot-worker + rust-worker-mdbook: + build: + context: ../worker + dockerfile: Dockerfile.mdbook + environment: + BUILDMASTER: buildbot + BUILDMASTER_PORT: 9989 + WORKERNAME: worker-rust-mdbook + WORKERPASS: pass + WORKER_ENVIRONMENT_BLACKLIST: DOCKER_BUILDBOT* BUILDBOT_ENV_* BUILDBOT_1* WORKER_ENVIRONMENT_BLACKLIST + networks: + - buildbot-worker + nginx: container_name: buildbot-nginx build: diff --git a/worker/Dockerfile b/worker/Dockerfile index 4eeaa20..19e0625 100644 --- a/worker/Dockerfile +++ b/worker/Dockerfile @@ -4,7 +4,9 @@ COPY worker-setup.sh worker-setup.sh RUN bash worker-setup.sh USER buildbot WORKDIR /buildbot +COPY worker-setup-user.sh worker-setup-user.sh +RUN bash worker-setup-user.sh COPY buildbot.tac /buildbot/buildbot.tac RUN rustup component add clippy RUN rustup component add rustfmt -CMD ["/usr/bin/dumb-init", "twistd", "--pidfile=", "-ny", "buildbot.tac"] +CMD ["/usr/bin/dumb-init", "/buildbot/venv/bin/twistd", "--pidfile=", "-ny", "buildbot.tac"] diff --git a/worker/Dockerfile.mdbook b/worker/Dockerfile.mdbook new file mode 100644 index 0000000..59d2beb --- /dev/null +++ b/worker/Dockerfile.mdbook @@ -0,0 +1,10 @@ +FROM rust:1.72 +COPY worker-setup.sh worker-setup.sh +RUN bash worker-setup.sh +USER buildbot +WORKDIR /buildbot +COPY worker-setup-user.sh worker-setup-user.sh +RUN bash worker-setup-user.sh +COPY buildbot.tac /buildbot/buildbot.tac +RUN cargo install mdbook +CMD ["/usr/bin/dumb-init", "/buildbot/venv/bin/twistd", "--pidfile=", "-ny", "buildbot.tac"] diff --git a/worker/worker-setup-user.sh b/worker/worker-setup-user.sh new file mode 100644 index 0000000..0d5e8f2 --- /dev/null +++ b/worker/worker-setup-user.sh @@ -0,0 +1,3 @@ +python3 -m venv /buildbot/venv/ +/buildbot/venv/bin/pip3 --no-cache-dir install 'twisted[tls]' +/buildbot/venv/bin/pip3 --no-cache-dir install buildbot-worker diff --git a/worker/worker-setup.sh b/worker/worker-setup.sh index 87f2b8b..f3d464e 100644 --- a/worker/worker-setup.sh +++ b/worker/worker-setup.sh @@ -3,16 +3,15 @@ apt-get update \ && apt-get -y install -q \ build-essential \ git \ - python3-dev \ libffi-dev \ libssl-dev \ + python3-dev \ python3-setuptools \ python3-pip \ + python3-venv \ dumb-init \ curl \ && rm -rf /var/lib/apt/lists/* \ -&& pip3 --no-cache-dir install 'twisted[tls]' \ && mkdir /buildbot \ && useradd -ms /bin/bash buildbot \ -&& pip3 install buildbot-worker \ && chown -R buildbot /buildbot