Skip to content

Commit e502566

Browse files
committed
ci: fix ninja-build on EL9 workers; drop runner-hosted Buildbot workflow
On Enterprise Linux 9 ninja-build lives in EPEL and is built against the CRB (CodeReady Builder) repo, so both must be enabled before it resolves. The rocky image pulled in epel-release but never enabled CRB, and the ubi image had neither EPEL nor CRB, so both failed with "Unable to find a match: ninja-build". Enable dnf-plugins-core + crb on Rocky, and install the EPEL release RPM plus ubi-9-codeready-builder-rpms on UBI. Also remove .github/workflows/buildbot-ci.yml, which stood up a Buildbot master and workers inside a GitHub Actions runner. CI now runs solely through the real docker-compose deployment, triggered by the GitHub webhook or an operator's buildbot sendchange. Scrub the now-stale references to that workflow from the docs and module docstrings; the PBChangeSource / sendchange / wait_for_builds.py operator path stays.
1 parent 2ae03fc commit e502566

7 files changed

Lines changed: 22 additions & 146 deletions

File tree

.github/workflows/buildbot-ci.yml

Lines changed: 0 additions & 131 deletions
This file was deleted.

buildbot/README.md

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -16,14 +16,15 @@ large regression databases.
1616

1717
The `freebsd/freebsd-toolchain:15.1` image is a FreeBSD-kernel image: it only
1818
builds and runs on a FreeBSD Docker host. Set `BUILDBOT_ACTIVE_WORKERS` to the
19-
comma-separated subset of workers a given host can serve (the GitHub workflow
20-
uses `debian,fedora,rocky,ubi`); the full 5-image matrix stays defined.
19+
comma-separated subset of workers a given host can serve (a Linux Docker host
20+
serves `debian,fedora,rocky,ubi`); the full 5-image matrix stays defined.
2121

22-
Alongside the GitHub webhook, the master exposes a `PBChangeSource`, so a build
23-
can be triggered over localhost with `buildbot sendchange`. The `Buildbot-CI`
24-
GitHub workflow uses this: it stands up a real master plus the four Linux
25-
latent workers on the runner, injects the current revision over
26-
`localhost:9989`, and fails unless every active builder finishes successfully.
22+
Alongside the GitHub webhook, the master exposes a `PBChangeSource`, so an
23+
operator can trigger a build against the deployed master with
24+
`buildbot sendchange --master <host>:9989`, without depending on the webhook.
25+
`buildbot/ci/wait_for_builds.py` polls the REST API and exits non-zero unless
26+
every active builder finishes successfully, turning such a run into a pass/fail
27+
gate.
2728

2829
The Debian builder also runs clang-format in verification mode, cppcheck,
2930
clang-tidy, and scan-build. Formatting never rewrites the checkout. Each

buildbot/changesources.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,9 @@
1818
def create_change_sources():
1919
"""Use webhooks primarily and pollers as loss/restart recovery.
2020
21-
A PBChangeSource is also exposed so an operator (or the GitHub Actions
22-
workflow) can inject a change over the master PB port with
23-
``buildbot sendchange`` without depending on the GitHub webhook.
21+
A PBChangeSource is also exposed so an operator can inject a change over
22+
the master PB port with ``buildbot sendchange`` without depending on the
23+
GitHub webhook.
2424
"""
2525
return [
2626
changes.PBChangeSource(user=CHANGE_USER, passwd=CHANGE_PASSWORD),

buildbot/ci/wait_for_builds.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@
22
"""Wait for the Buildbot builds triggered over localhost to finish.
33
44
Polls the master REST API until every expected builder has a completed build,
5-
then exits non-zero if any of those builds did not succeed. Used by the
6-
Buildbot-CI GitHub workflow to turn a real Buildbot run into a pass/fail gate.
5+
then exits non-zero if any of those builds did not succeed. Turns a real
6+
Buildbot run triggered over the PB port into a pass/fail gate.
77
"""
88

99
import json

buildbot/docker/build-images.sh

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,8 @@ declare -a requested=()
77

88
# Usage: build-images.sh [-jN] [name ...]
99
# With no names, every image is built. Pass names (e.g. debian fedora rocky ubi)
10-
# to build a subset -- the Linux-only GitHub workflow uses this to skip freebsd.
10+
# to build a subset -- a Linux Docker host uses this to skip the freebsd image,
11+
# which only builds and runs on a FreeBSD Docker host.
1112
for arg in "$@"; do
1213
case "${arg}" in
1314
-j*) parallelism="${arg#-j}" ;;

buildbot/docker/workers/rocky.Dockerfile

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
11
FROM rockylinux/rockylinux:9
22
ARG BUILDBOT_WORKER_VERSION=4.2.1
33
ENV BUILDBOT_WORKER_VERSION=${BUILDBOT_WORKER_VERSION}
4-
RUN dnf -y install epel-release && dnf -y groupinstall "Development Tools" && \
4+
RUN dnf -y install epel-release dnf-plugins-core && \
5+
dnf config-manager --set-enabled crb && \
6+
dnf -y groupinstall "Development Tools" && \
57
dnf -y install bash ca-certificates ccache clang cmake git ninja-build python3 \
68
python3-pip tar && dnf clean all
79
COPY buildbot/docker/install-worker.sh /usr/local/bin/install-worker

buildbot/docker/workers/ubi.Dockerfile

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,10 @@
11
FROM redhat/ubi9:latest
22
ARG BUILDBOT_WORKER_VERSION=4.2.1
33
ENV BUILDBOT_WORKER_VERSION=${BUILDBOT_WORKER_VERSION}
4-
RUN dnf -y install bash ca-certificates ccache clang cmake gcc gcc-c++ git make \
4+
RUN dnf -y install dnf-plugins-core \
5+
https://dl.fedoraproject.org/pub/epel/epel-release-latest-9.noarch.rpm && \
6+
dnf config-manager --set-enabled ubi-9-codeready-builder-rpms && \
7+
dnf -y install bash ca-certificates ccache clang cmake gcc gcc-c++ git make \
58
ninja-build python3 python3-pip tar && dnf clean all
69
COPY buildbot/docker/install-worker.sh /usr/local/bin/install-worker
710
RUN /usr/local/bin/install-worker

0 commit comments

Comments
 (0)