summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDevan Carpenter <devan@taler.net>2023-06-12 23:09:50 -0400
committerDevan Carpenter <devan@taler.net>2023-06-12 23:09:50 -0400
commit13ff12c811fda692da9e45305528f963b0f71d82 (patch)
tree0e76ece94827c57d13dbedf4307e9e0d947c11d6
parent2f2372fd65f5bba7f9ab2dcfbe0916016dc2ccec (diff)
downloaddeployment-13ff12c811fda692da9e45305528f963b0f71d82.tar.gz
deployment-13ff12c811fda692da9e45305528f963b0f71d82.tar.bz2
deployment-13ff12c811fda692da9e45305528f963b0f71d82.zip
buildbot: generate steps from project's CI dir
This should allow any repo added to the "container builder" to generate steps by adding a subdir to "<project_root>/ci/jobs/" containing shell scripts. Each script will create a new step in the factory.
-rw-r--r--buildbot/master.cfg23
1 files changed, 19 insertions, 4 deletions
diff --git a/buildbot/master.cfg b/buildbot/master.cfg
index b2f980a..253afb3 100644
--- a/buildbot/master.cfg
+++ b/buildbot/master.cfg
@@ -24,6 +24,8 @@
# @author ng0
# @author Christian Grothoff
# @author Devan Carpenter
+import os
+import pathlib
import re
from buildbot.steps.source.git import Git
@@ -1198,7 +1200,7 @@ EMAIL_ALERTS.append("packaging-ubuntu-builder")
#############################################
##
# These factories uses the standard podman worker.
-WORKERS.append(worker.Worker("container-worker", "container-pass"))
+WORKERS.append(Worker("container-worker", "container-pass"))
#
# container_repos = ["backoffice", "wallet-core", "bank", "exchange",
@@ -1240,9 +1242,22 @@ for reponame in container_repos:
))
# Run container step with default commands
- container_run_step("Build docs",
- container_factory, CONTAINER_WORKDIR, reponame,
- "ci/jobs/docs.sh")
+ CI_JOBS_PATH = f"{CONTAINER_WORKDIR}/ci/jobs"
+ if os.path.exists(CI_JOBS_PATH):
+ for parentDir, dirNames, fileNames in os.walk(CI_JOBS_PATH):
+ dirNames.sort()
+ fileNames.sort()
+ for filename in fileNames:
+ if filename.endswith('.sh'):
+ basedir = pathlib.PurePath(parentDir)
+ container_run_step(basedir,
+ container_factory,
+ CONTAINER_WORKDIR, reponame,
+ f"ci/jobs/{basedir}/{filename}")
+ else:
+ print("No jobs found")
+ else:
+ print("Cannot find jobs directory")
BUILDERS.append(util.BuilderConfig(
name=f"{reponame}-builder",