summaryrefslogtreecommitdiff
path: root/buildbot
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2020-02-23 14:10:52 +0100
committerChristian Grothoff <christian@grothoff.org>2020-02-23 14:10:52 +0100
commitfba5d65acdf16b96b6af37b9d66f46de392f96fe (patch)
treea5dbdb2b841f2046da2b155169ec083379c64660 /buildbot
parent4fb13ac898ec7bea4fb4e282dfca662ed889ca5f (diff)
downloaddeployment-fba5d65acdf16b96b6af37b9d66f46de392f96fe.tar.gz
deployment-fba5d65acdf16b96b6af37b9d66f46de392f96fe.tar.bz2
deployment-fba5d65acdf16b96b6af37b9d66f46de392f96fe.zip
add checker builder
Diffstat (limited to 'buildbot')
-rw-r--r--buildbot/master.cfg42
-rwxr-xr-xbuildbot/update-sources.sh30
2 files changed, 69 insertions, 3 deletions
diff --git a/buildbot/master.cfg b/buildbot/master.cfg
index 5aa5a59..76926a1 100644
--- a/buildbot/master.cfg
+++ b/buildbot/master.cfg
@@ -56,6 +56,11 @@ c["workers"] = [
worker.Worker("lcov-worker", "lcov-pass"),
##
+ # This worker builds everything and runs our 'make check'
+ # test suite against 'everything'.
+ worker.Worker("checker-worker", "checker-pass"),
+
+ ##
# This worker builds manuals / API docs / tutorials.
#
worker.Worker("doc-worker", "doc-pass"),
@@ -222,11 +227,11 @@ ALL_SCHEDULER = schedulers.SingleBranchScheduler(
change_filter=util.ChangeFilter(
branch_re="(master|stable)",
project_re="(backoffice|wallet-core|bank|exchange|"
- "merchant|deployment|donations|twister|"
+ "merchant|deployment|donations|twister|sync|"
"blog|help|survey|landing)"
),
treeStableTimer=None,
- builderNames=["test-builder"]
+ builderNames=["test-builder", "checker-builder"]
)
# Consider adding other Python parts, like the various frontends.
@@ -245,6 +250,7 @@ FORCE_SCHEDULER = schedulers.ForceScheduler(
name="force-scheduler",
builderNames=[
"lcov-builder",
+ "checker-builder",
"auditor-builder-test",
"auditor-builder-demo",
"test-builder",
@@ -468,6 +474,28 @@ LINT_FACTORY.addStep(
)
)
+CHECKER_FACTORY = util.BuildFactory()
+CHECKER_FACTORY.addStep(
+ ShellCommand(
+ name="clone sources",
+ description="fetching latest deployment repositories from git.gnunet.org",
+ descriptionDone="GNUnet code base updated",
+ command=["./update-sources.sh", "git://git.gnunet.org/", "libmicrohttpd", "gnunet"],
+ workdir="../../deployment/buildbot"
+ )
+)
+CHECKER_FACTORY.addStep(
+ ShellCommand(
+ name="clone sources",
+ description="fetching latest deployment repositories from git.taler.net",
+ descriptionDone="Taler code base updated",
+ command=["./update-sources.sh", "git://git.taler.net/", "exchange", "merchant", "wallet-core", "sync", "anastasis", "bank", "twister"],
+ workdir="../../deployment/buildbot"
+ )
+)
+# FIXME: CHECKER_FACTORY is way incomplete at this time!
+
+
LCOV_FACTORY = create_factory_with_deployment()
LCOV_FACTORY.addStep(
ShellCommand(
@@ -653,6 +681,12 @@ LCOV_BUILDER = util.BuilderConfig(
factory=LCOV_FACTORY
)
+CHECKER_BUILDER = util.BuilderConfig(
+ name="checker-builder",
+ workernames=["checker-worker"],
+ factory=CHECKER_FACTORY
+)
+
AUDITOR_BUILDER_TEST = util.BuilderConfig(
name="auditor-builder-test",
workernames=["test-auditor-worker"],
@@ -764,11 +798,12 @@ EMAIL = reporters.MailNotifier(
mode=("change"),
builders=(
"lcov-builder",
+ "checker-builder",
"doc-builder",
"test-builder",
+ "wallet-builder",
##
# Rarely/never used, excluding.
- # "wallet-builder",
# "selenium-builder"
),
extraRecipients=["buildfailures@taler.net"],
@@ -791,6 +826,7 @@ BUILDER_LIST = [
"buildmaster-builder",
"doc-builder",
"lcov-builder",
+ "checker-builder",
"auditor-builder",
"auditor-builder-test",
"auditor-builder-demo",
diff --git a/buildbot/update-sources.sh b/buildbot/update-sources.sh
new file mode 100755
index 0000000..1344a2e
--- /dev/null
+++ b/buildbot/update-sources.sh
@@ -0,0 +1,30 @@
+#!/bin/sh
+# This file is in the public domain.
+
+# Used by the checker-builder to get the latest code.
+
+# First argument is the base URL from where to clone the Gits.
+# Subsequent arguments must be the names of the Git repositories to clone.
+# All repositories are either freshly cloned or updated to the latest 'master' branch
+
+BASE_URL=$1
+shift 1
+
+mkdir -p $HOME/sources/
+
+for n in "$@"
+do
+ P=$HOME/sources/$n
+ echo "Updating $P"
+
+ if test -x "$P"
+ then
+ git -C $P clean -fdx
+ git -C $P fetch
+ git -C $P reset --hard origin/master
+ else
+ cd $HOME/sources
+ git clone ${BASE_URL}$n
+ cd -
+ fi
+done