summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDevan Carpenter <devan@taler.net>2023-06-07 14:55:40 -0400
committerDevan Carpenter <devan@taler.net>2023-06-07 15:04:20 -0400
commitba007582b72e405127c8f03a2a429b09c09aaadc (patch)
tree79cb861fe7eb79fb7281cb9dfb9c3b639077f352
parent740aeef3ca2c4ebadcadcebb95787b450b6d82b1 (diff)
downloaddeployment-dev/dvn/buildbot-refactor.tar.gz
deployment-dev/dvn/buildbot-refactor.tar.bz2
deployment-dev/dvn/buildbot-refactor.zip
buildbot: prep workspace for the container jobsdev/dvn/buildbot-refactor
we want to clone down the project repo and prepare the workspace at the beginning of any container factory run.
-rw-r--r--buildbot/master.cfg50
1 files changed, 33 insertions, 17 deletions
diff --git a/buildbot/master.cfg b/buildbot/master.cfg
index 2059d0f..1f07ae0 100644
--- a/buildbot/master.cfg
+++ b/buildbot/master.cfg
@@ -24,7 +24,9 @@
# @author ng0
# @author Christian Grothoff
# @author Devan Carpenter
+import os
import re
+import subprocess
from getpass import getuser
from buildbot.steps.source.git import Git
from buildbot.steps.shell import ShellCommand
@@ -160,14 +162,15 @@ def update_deployment(factory):
))
# Convenience function that builds and runs a container.
-def container_job_run(jobCmd="/workdir/ci/ci.sh",):
+def container_run_step(factory, WORK_DIR, containerName, jobCmd="/workdir/ci/ci.sh"):
factory.addStep(steps.ShellSequence(
- name="container build and run"
- commands=[
- util.ShellArg(command=["podman", "build", "-t", containerName, "."]),
- util.ShellArg(command=["podman", "run", "-ti", "--rm", "--volume", "$PWD:/workdir", "--workdir", "/workdir", containerName, jobCmd]),
- ],
- haltOnFailure=True
+ name="container build and run",
+ commands=[
+ util.ShellArg(command=["podman", "build", "-t", containerName, "."]),
+ util.ShellArg(command=["podman", "run", "-ti", "--rm", "--volume", "$PWD:/workdir", "--workdir", "/workdir", containerName, jobCmd]),
+ ],
+ haltOnFailure=True,
+ workdir=WORK_DIR
))
##################################################################
@@ -1170,12 +1173,14 @@ BUILDERS.append(util.BuilderConfig(
EMAIL_ALERTS.append("packaging-debian-builder")
EMAIL_ALERTS.append("packaging-ubuntu-builder")
-################ 19: CONTAINER FACTORY ###################################
+#############################################
+# 19: CONTAINER FACTORY #####################
+#############################################
##
# These factories uses the standard podman worker.
WORKERS.append(worker.Worker("container-worker", "container-pass"))
-
+#
#container_repos = ["backoffice", "wallet-core", "bank", "exchange",
# "merchant", "deployment", "twister", "sync",
# "help", "taler-merchant-demos", "challenger"]
@@ -1185,16 +1190,27 @@ container_repos = ["wallet-core"]
for reponame in container_repos:
##
# Factory-wide variables
- GIT_REPO="https://git.taler.net/" + reponame[0] + ".git"
+ REPO_URL = "https://git.taler.net/" + reponame[0] + ".git"
+ CONTAINER_WORKDIR = "/home/container-worker/workspace"
+ # TODO: get repo branch from trigger
+ REPO_BRANCH = "dvn/container-ci"
+ # Create a factory
container_factory = util.BuildFactory()
##
- # Pull repo for given project
- container_factory.addStep(git_step(GIT_REPO,"dvn/container-ci"))
- container_factory.addStep(container_run_step)
-
+ # Clone repo for a given project
+ if not os.path.isdir(CONTAINER_WORKDIR+reponame[0]):
+ subprocess.call(["git", "clone", "--depth=1", "--branch="+REPO_BRANCH,
+ REPO_URL, CONTAINER_WORKDIR+reponame[0]])
+ else:
+ subprocess.call(["rm", "-rf", reponame[0]], cwd=CONTAINER_WORKDIR)
+ subprocess.call(["git", "clone", "--depth=1", "--branch="+REPO_BRANCH,
+ REPO_URL, CONTAINER_WORKDIR+"/source"])
+
+ container_run_step(container_factory, CONTAINER_WORKDIR, reponame[0])
+
BUILDERS.append(util.BuilderConfig(
- name=reponame + "-builder",
+ name=f"{reponame[0]}-builder",
workernames=["container-worker"],
factory=container_factory
))
@@ -1203,10 +1219,10 @@ for reponame in container_repos:
name="container-scheduler",
change_filter=util.ChangeFilter(
branch="dvn/container-ci",
- project_re="(" + reponame + ")"
+ project_re=f"({reponame[0]})"
),
treeStableTimer=None,
- builderNames=[reponame + "-builder"]
+ builderNames=[f"{reponame[0]}-builder"]
))
## TODO: TBD