gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[taler-deployment] branch master updated: merge gnunet BB configuration


From: Admin
Subject: [taler-deployment] branch master updated: merge gnunet BB configuration into Taler BB
Date: Tue, 04 Feb 2025 14:26:31 +0100

This is an automated email from the git hooks/post-receive script.

grothoff pushed a commit to branch master
in repository taler-deployment.

The following commit(s) were added to refs/heads/master by this push:
     new 8bed2bc  merge gnunet BB configuration into Taler BB
8bed2bc is described below

commit 8bed2bc4cf60f123c60c7656c31d45686577f335
Author: Christian Grothoff <christian@grothoff.org>
AuthorDate: Tue Feb 4 14:26:29 2025 +0100

    merge gnunet BB configuration into Taler BB
---
 buildbot/README     |  46 +++-
 buildbot/master.cfg | 663 +++++++++++++++++++++++++++++++++++++++++++++++++++-
 2 files changed, 702 insertions(+), 7 deletions(-)

diff --git a/buildbot/README b/buildbot/README
index 2a49ae2..868c58e 100644
--- a/buildbot/README
+++ b/buildbot/README
@@ -1,4 +1,3 @@
-
 -- 10 JUNE 2020
 
 Christian recently removed pip install of buildbot, replaced with debian repo 
version.
@@ -29,3 +28,48 @@ Packages needed to use Buildbot 0.9.x.
 - buildbot-www
 - buildbot-waterfall-view
 - buildbot-console-view
+
+======= From GNUnet BB README ========
+
+
+== Enable CI for a repository
+
+In order to include a repository in the CI it must
+
+- be added to the buildmaster configuration and assigned to workers
+  that can actually build it (ask your admin)
+- contain CI tasks in the ".buildmaster" directory.
+
+== CI/CD Tasks
+
+When a new commit is pushed, each assigned builder will be tasked to
+execute the following scripts from the repository in question, in order, if
+they exist:
+
+0. .buildbot/build.sh
+1. .buildbot/install.sh
+2. .buildbot/test.sh
+3. .buildbot/deploy.sh
+
+If there is a worker-specific script found prefixed with "<workername>_"
+the respective script overrides the "default" script.
+Usually, you want the deploy script to only run on a specific worker.
+
+Example:
+
+.buildbot/build.sh
+.buildbot/install.sh
+.buildbot/specialworker_install.sh
+.buildbot/deployhost_deploy.sh
+
+This will result in "build.sh" and "install.sh" to be executed on any worker.
+But, "deployhost_deploy.sh" will only be executed on the worker "deployhost".
+The worker "specialworker" will not execute "install.sh" but instead
+"specialhost_install.sh". This script may omit any installation or modify the
+functionality of the standard "install.sh".
+
+== Custom builds
+
+Buildbot is very configurable. If you need very specific build configurations
+that requires functions only available in the buildmaster configuration,
+please contact your admin.
diff --git a/buildbot/master.cfg b/buildbot/master.cfg
index 5ae8edb..cea920a 100644
--- a/buildbot/master.cfg
+++ b/buildbot/master.cfg
@@ -88,6 +88,21 @@ class MessageFormatterWithStdout(reporters.MessageFormatter):
         ctx.update(dict(stdout="\n".join(stdout)))
 
 
+#####################################################
+# Commit message triggers                           #
+#                                                   #
+# This checks for triggers in the commit messages   #
+# !tarball will trigger a release build             #
+# !coverity will trigger a coverity check           #
+#####################################################
+def checkForTarballTrigger(change):
+    if "!tarball" in change.comments:
+        return True
+    return False
+def checkForCoverityTrigger(change):
+    if "!coverity" in change.comments:
+        return True
+
 SERVICES = []
 
 # The 'builders' list defines the Builders, which tell Buildbot
@@ -139,6 +154,29 @@ def git_step(repo, target_branch="master"):
         branch=target_branch
     )
 
+# FIXME: document this function!
+def add_default_step(bldr, step):
+  worker_script = ".buildbot/%(prop:workername)s_" + step + ".sh"
+  default_script = ".buildbot/" + step + ".sh"
+  cmd = '[ -f %s ] && ls -1 %s || exit 0' % (worker_script,worker_script)
+  bldr.addStep(steps.SetPropertyFromCommand(command=util.Interpolate(cmd),
+                                            hideStepIf=True,
+                                            property='buildbotScript_%s' % 
step,
+                                            name="Checking for worker-specific 
%s script" % step))
+  cmd = '[ -f %s ] && ls -1 %s || exit 0' % (default_script,default_script)
+  
bldr.addStep(steps.SetPropertyFromCommand(doStepIf=(util.Property('buildbotScript_%s'
 % step) != util.Interpolate(worker_script)),
+                                            hideStepIf=True,
+                                            command=util.Interpolate(cmd),
+                                            property='buildbotScript_%s' % 
step,
+                                            name="Checking for %s script" % 
step))
+  bldr.addStep(steps.ShellCommand(command=util.Property('buildbotScript_%s' % 
step),
+                                  haltOnFailure=True,
+                                  doStepIf=(util.Property('buildbotScript_%s' 
% step) != None),
+                                  hideStepIf=lambda results, s: 
results==SKIPPED,
+                                  name="Executing %s step" % step))
+
+
+
 # Convenience function that runs 'make check' in a
 # directory of the code inside of a netjail.
 def jailed_check(package, srcdirs):
@@ -385,6 +423,592 @@ SERVICES.append(reporters.MailNotifier(
 
 NIGHTLY_TRIGGERS.append("linkchecker-builder")
 
+####################
+## GNUnet workers ##
+####################
+
+WORKERS.append(Worker("firefly-x86_64-amdepyc", "pass"))
+WORKERS.append(Worker("mp-amd64-openbsd", "Tai7zeic"))
+WORKERS.append(Worker("schanzen-aarch64-fedora-meson", "eWi9keet"))
+
+
+SCHEDULERS.append(schedulers.AnyBranchScheduler(
+                       name="gnunet",
+                       
change_filter=util.ChangeFilter(branch_re='master|dev/.+',
+                       repository='https://git.gnunet.org/git/gnunet.git'),
+                       treeStableTimer=None,
+                       builderNames=["gnunet_autotools", "gnunet_meson"]))
+
+SCHEDULERS.append(schedulers.SingleBranchScheduler(
+                       name="tagged_release",
+                       
change_filter=util.ChangeFilter(branch_re='.*v[0-9]*[.][0-9]*[.][0-9]*$',
+                       repository='https://git.gnunet.org/git/gnunet.git'),
+                       treeStableTimer=None,
+                       builderNames=["gnunet_release"]))
+
+
+SCHEDULERS.append(schedulers.SingleBranchScheduler(
+                       name="tarball",
+                       onlyImportant=True,
+                       change_filter=util.ChangeFilter(branch='master',
+                       repository='https://git.gnunet.org/git/gnunet.git'),
+                       fileIsImportant=checkForTarballTrigger,
+                       treeStableTimer=None,
+                       builderNames=["gnunet_release"]))
+
+
+# Build a tarball nightly
+SCHEDULERS.append(schedulers.Nightly(name='nightly',
+                       change_filter=util.ChangeFilter(branch='master',
+                           repository='https://git.gnunet.org/git/gnunet.git'),
+                       builderNames=['gnunet_release'],
+                       onlyIfChanged=True,
+                       hour=6, minute=0))
+
+SCHEDULERS.append(schedulers.SingleBranchScheduler(
+                       name="gnunet_cov",
+                       onlyImportant=True,
+                       change_filter=util.ChangeFilter(branch='master',
+                       repository='https://git.gnunet.org/git/gnunet.git'),
+                       fileIsImportant=checkForCoverityTrigger,
+                       treeStableTimer=None,
+                       builderNames=["gnunet_coverity"]))
+
+SCHEDULERS.append(schedulers.SingleBranchScheduler(
+                       name="gnunet_rpm",
+                       
change_filter=util.ChangeFilter(branch='dev/schanzen/copr',
+                       repository='https://git.gnunet.org/git/gnunet-rpm.git'),
+                       treeStableTimer=None,
+                       builderNames=["gnunet_rpm_copr"]))
+
+
+# Schedule a coverity pass monthly
+SCHEDULERS.append(schedulers.Nightly(name='nightly_cov',
+                       change_filter=util.ChangeFilter(branch='master',
+                           repository='https://git.gnunet.org/git/gnunet.git'),
+                       builderNames=['gnunet_coverity'],
+                       onlyIfChanged=True,
+                       dayOfMonth=0, hour=3, minute=0))
+
+
+
+
+#
+# WEBSITES
+#
+SCHEDULERS.append(schedulers.SingleBranchScheduler(
+                            name="www_master_scheduler",
+                            change_filter=util.ChangeFilter(branch='master',
+                                
repository='https://git.gnunet.org/git/www.git'),
+                            treeStableTimer=None,
+                            builderNames=["stage.gnunet.org"]))
+
+SCHEDULERS.append(schedulers.SingleBranchScheduler(
+                            name="www_stable_scheduler",
+                            change_filter=util.ChangeFilter(branch='stable',
+                                
repository='https://git.gnunet.org/git/www.git'),
+                            treeStableTimer=None,
+                            builderNames=["www.gnunet.org"]))
+SCHEDULERS.append(schedulers.SingleBranchScheduler(
+                            name="bib_scheduler",
+                            change_filter=util.ChangeFilter(branch='master',
+                                
repository='https://git.gnunet.org/git/gnunetbib.git'),
+                            treeStableTimer=None,
+                            builderNames=["bib.gnunet.org"]))
+SCHEDULERS.append(schedulers.SingleBranchScheduler(
+                            name="reclaim_www_scheduler",
+                            change_filter=util.ChangeFilter(branch='master',
+                                
repository='https://git.gnunet.org/git/www-reclaim.git'),
+                            treeStableTimer=None,
+                            builderNames=["reclaim.gnunet.org"]))
+SCHEDULERS.append(schedulers.SingleBranchScheduler(
+                            name="rest_scheduler",
+                            change_filter=util.ChangeFilter(branch='master',
+                                
repository='https://git.gnunet.org/git/gnunet-rest-api.git'),
+                            treeStableTimer=None,
+                            builderNames=["rest.gnunet.org"]))
+SCHEDULERS.append(schedulers.SingleBranchScheduler(
+                            name="lsd_scheduler",
+                            change_filter=util.ChangeFilter(branch='master',
+                            repository_re='https://git.gnunet.org/git/lsd.*'),
+                            treeStableTimer=None,
+                            builderNames=["lsd.gnunet.org"]))
+SCHEDULERS.append(schedulers.SingleBranchScheduler(
+                            name="gana_scheduler",
+                            change_filter=util.ChangeFilter(branch='master',
+                            repository='https://git.gnunet.org/git/gana.git'),
+                            treeStableTimer=None,
+                            builderNames=["gana.gnunet.org"]))
+SCHEDULERS.append(schedulers.SingleBranchScheduler(
+                            name="doc_scheduler",
+                            change_filter=util.ChangeFilter(branch='master',
+                            
repository='https://git.gnunet.org/git/gnunet-handbook.git'),
+                            treeStableTimer=None,
+                            builderNames=["doc.gnunet.org"]))
+
+
+#
+# Buildbot self-reconfigure
+#
+SCHEDULERS.append(schedulers.SingleBranchScheduler(
+                            name="bb_reload_scheduler",
+                            change_filter=util.ChangeFilter(branch='master',
+                                
repository='https://git.gnunet.org/git/buildbot-ci.git'),
+                            treeStableTimer=None,
+                            builderNames=["buildbot"]))
+
+
+
+def add_default_pipeline(bldr):
+  add_default_step(bldr, "build")
+  add_default_step(bldr, "install")
+  add_default_step(bldr, "test")
+  add_default_step(bldr, "deploy")
+
+
+factory = util.BuildFactory()
+factoryMeson = util.BuildFactory()
+factoryWithDocs = util.BuildFactory()
+
+
+
+###########################
+#         GNUnet          #
+###########################
+gnunet_make_step = steps.ShellSequence(
+    name=util.Interpolate("GNUnet build"),
+    env={'GNUNET_PREFIX': '/tmp/gnunet-buildbot/lib',
+         'PATH': ["/tmp/gnunet-buildbot/bin", "${PATH}"],
+         'TMPDIR': '/tmp/gnunet/'},
+    haltOnFailure=True,
+    commands=[
+      util.ShellArg(command=['./bootstrap'], logname='bootstrap', 
haltOnFailure=True),
+      util.ShellArg(command=['./configure',
+                             "--prefix=/tmp/gnunet-buildbot",
+                             "--enable-experimental",
+                             "--enable-logging=verbose"],
+                             logname='configure',
+                             haltOnFailure=True),
+      util.ShellArg(command=['make'],
+                    logname='make',
+                    haltOnFailure=True),
+      util.ShellArg(command=['make', 'install'],
+                    logname='make install',
+                    haltOnFailure=True),
+      #util.ShellArg(command=['sudo', '/home/buildbot/bin/netjail.sh', 'bash', 
'-c', "'make check'"],
+      #              logname='make check',
+      #              warnOnFailure=True,
+      #              flunkOnFailure=False), # make check has issues.
+      util.ShellArg(command=['make', 'uninstall'],
+                    logname='make uninstall',
+                    haltOnFailure=True)]
+)
+
+gnunet_meson_step = steps.ShellSequence(
+    name=util.Interpolate("GNUnet build (meson)"),
+    env={'GNUNET_PREFIX': '/tmp/gnunet-buildbot/lib',
+         'PATH': ["/tmp/gnunet-buildbot/bin", "${PATH}"],
+         'TMPDIR': '/tmp/gnunet/'},
+    haltOnFailure=True,
+    commands=[
+      util.ShellArg(command=['./bootstrap', 'meson'], logname='bootstrap', 
haltOnFailure=True),
+      util.ShellArg(command=['meson', 'setup',
+                             "-Dprefix=/tmp/gnunet-buildbot",
+                             "-Dexperimental=true",
+                             "-Dlogging=verbose",
+                             "build"],
+                             logname='setup',
+                             haltOnFailure=True),
+      util.ShellArg(command=['meson', 'compile', '-C', 'build'],
+                    logname='compile',
+                    haltOnFailure=True),
+      util.ShellArg(command=['meson', 'install', '-C', 'build'],
+                    logname='install',
+                    haltOnFailure=True),
+      util.ShellArg(command=['ninja', 'uninstall', '-C', 'build'],
+                    logname='ninja uninstall',
+                    haltOnFailure=True)]
+)
+
+gnunet_meson_build_steps = [
+  steps.Git(repourl='https://git.gnunet.org/git/gnunet.git',
+            mode='full', method='fresh'),
+  gnunet_meson_step
+]
+
+factoryMeson.addSteps(gnunet_meson_build_steps)
+
+gnunet_build_steps = [
+  steps.Git(repourl='https://git.gnunet.org/git/gnunet.git',
+            mode='full', method='fresh'),
+  gnunet_make_step
+]
+
+factory.addSteps(gnunet_build_steps)
+
+# The factory with doc deployment (only for firely)
+factoryWithDocs.addSteps(gnunet_build_steps)
+
+# Add the deployment step
+factoryWithDocs.addStep(steps.ShellCommand(command=['make', 'full'],
+                                           
workdir=util.Interpolate('build/doc/doxygen'),
+                                           haltOnFailure=True,
+                                           name="Doxygen"))
+factoryWithDocs.addStep(steps.ShellCommand(command=['make', 'html'],
+                                           
workdir=util.Interpolate('build/doc'),
+                                           haltOnFailure=True,
+                                           name="HTML Documentation"))
+
+factoryWithDocs.addStep(steps.ShellSequence(
+    name=util.Interpolate("Deploy Doxygen"),
+    workdir=util.Interpolate('build/doc'),
+    commands=[
+        util.ShellArg(command=['chmod', '-R', 'ag+rX', '../doc'],
+                      logname='Permissions',
+                      haltOnFailure=True),
+        util.ShellArg(command=['rsync', '-a', '--delete',
+                               '--exclude', 'sphinx',
+                               '../doc/',
+                               
'handbook@firefly.gnunet.org:~/doc_deployment/'],
+                      logname='Deploy',
+                      haltOnFailure=True),
+    ]))
+
+
+############################
+#        COVERITY          #
+# Occurs: 1st day of month #
+############################
+cov_factory = util.BuildFactory()
+cov_factory.addStep(steps.Git(repourl='https://git.gnunet.org/git/gnunet.git', 
mode='full', method='fresh'))
+cov_factory.addStep(steps.ShellSequence(
+    name=util.Interpolate("Git rev. %(prop:got_revision)s build"),
+    commands=[
+        util.ShellArg(command=['./bootstrap'], logname='bootstrap'),
+        util.ShellArg(command=['./configure',
+                               "--prefix=/tmp/gnunet-buildbot",
+                               "--enable-testing",
+                               "--enable-experimental"], logname="configure"),
+        util.ShellArg(command=['cov-build', '--dir', 'cov-int', 'make', 
'-j16'], logname='cov-build'),
+    ]))
+cov_factory.addStep(steps.ShellCommand(command=['tar', 'czf', 
'coverity.tar.gz', 'cov-int/'],
+                                       haltOnFailure=True,
+                                       name="Packing up"))
+cov_factory.addStep(steps.ShellCommand(command=['curl',
+                                                '--form', 
util.Interpolate('token=%(secret:coverity_token)s'),
+                                                '--form', 
'email=mschanzenbach@posteo.de',
+                                                '--form', 'version="git 
master"',
+                                                '--form', 
'file=@./coverity.tar.gz',
+                                                '--form', 
'description="Buildbot triggered build"',
+                                                
'https://scan.coverity.com/builds?project=GNUnet%2Fgnunet'],
+                                       haltOnFailure=True,
+                                       name="Sending"))
+
+
+#################################################
+# RELEASE BUILD                                 #
+# Occurs:                                       #
+#  1. Nightly                                   #
+#  2. Upon a pushed release tag (vX.Y.Z)        #
+#  3. With a commit message containing !tarball #
+#################################################
+dist_factory = util.BuildFactory()
+# https://github.com/buildbot/buildbot/issues/6539 change to "copy" when fixed
+dist_factory.addStep(steps.Git(repourl='https://git.gnunet.org/git/gnunet.git',
 mode='full', method='clobber'))
+
+# We do meson first, because autotools changes the source...
+# There seems to be a meson bug where it thinks that the source was changed.
+# So we add --allow-dirty anyway
+dist_factory.addStep(steps.ShellSequence(
+    name=util.Interpolate("(Meson) Git rev. %(prop:got_revision)s build"),
+    haltOnFailure=True,
+    commands=[
+        util.ShellArg(command=['./bootstrap', 'meson'],
+                      logname='bootstrap',
+                      haltOnFailure=True),
+        util.ShellArg(command=['meson', 'setup', 'build'],
+                      logname='meson setup',
+                      haltOnFailure=True),
+        util.ShellArg(command=['git', 'status'],
+                      logname='status before dist',
+                      haltOnFailure=True),
+        util.ShellArg(command=['meson', 'dist',
+                               '-C', 'build',
+                               '--no-tests'],
+                      logname="dist",
+                      haltOnFailure=True)
+    ]))
+
+# Get version number of tarball
+cmdmeson = 'ls -1 build/meson-dist/gnunet-*.tar.xz | sed 
"s/build\/meson-dist\/gnunet-//" | sed "s/.tar.xz//" | tail -n1'
+#cmd = 'git describe --tags | sed "s/^v//"'
+dist_factory.addStep(steps.SetPropertyFromCommand(hideStepIf=False,
+                                                  command=cmdmeson,
+                                                  
property='gnunet_meson_releasever',
+                                                  name="(Meson) Getting 
release version"))
+dist_factory.addStep(steps.ShellCommand(command=["tar",
+                                                 "xf",
+                                                 
util.Interpolate('build/meson-dist/gnunet-%(prop:gnunet_meson_releasever)s.tar.xz'),
+                                                 '-C', 'build'],
+                                  haltOnFailure=True,
+                                  name="Extracting tarball"))
+# Try to build dist package
+dist_factory.addStep(steps.ShellSequence(
+    
workdir=util.Interpolate('build/build/gnunet-%(prop:gnunet_meson_releasever)s'),
+    name=util.Interpolate("(Meson) GNUnet %(prop:gnunet_meson_releasever)s 
tarball build"),
+    env={'GNUNET_PREFIX': '/tmp/gnunet-buildbot/lib',
+         'PATH': ["/tmp/gnunet-buildbot/bin", "${PATH}"]},
+    commands=[
+        util.ShellArg(command=['mkdir', '-p', 
'$TMPDIR'],logname='tmpdir',haltOnFailure=True),
+        util.ShellArg(command=['meson', 'setup',
+                               "-Dprefix=/tmp/gnunet-buildbot",
+                               "-Dexperimental=true",
+                               "-Dlogging=verbose",
+                               "tarball_build"],
+                               logname='setup',
+                               haltOnFailure=True),
+        util.ShellArg(command=['meson', 'compile', '-C', 'tarball_build'],
+                      logname='compile',
+                      haltOnFailure=True),
+        util.ShellArg(command=['meson', 'install', '-C', 'tarball_build'],
+                      logname='install',
+                      haltOnFailure=True),
+        util.ShellArg(command=['ninja', 'uninstall', '-C', 'tarball_build'],
+                      logname='ninja uninstall',
+                      haltOnFailure=True)]
+    ))
+
+
+dist_factory.addStep(steps.ShellSequence(
+    name=util.Interpolate("Git rev. %(prop:got_revision)s build"),
+    haltOnFailure=True,
+    commands=[
+        util.ShellArg(command=['./bootstrap'],
+                      logname='bootstrap',
+                      haltOnFailure=True),
+        util.ShellArg(command=['./configure',
+                               "--prefix=/tmp/gnunet-buildbot",
+                               "--enable-experimental"],
+                      logname="configure",
+                      haltOnFailure=True),
+        util.ShellArg(command=['make', 'dist'],
+                      logname='make dist',
+                      haltOnFailure=True)
+    ]))
+
+# Get version number of tarball
+cmd = 'ls -1 gnunet-*.tar.gz | sed "s/gnunet-//" | sed "s/.tar.gz//" | tail 
-n1'
+#cmd = 'git describe --tags | sed "s/^v//"'
+dist_factory.addStep(steps.SetPropertyFromCommand(hideStepIf=False,
+                                                  command=cmd,
+                                                  property='gnunet_releasever',
+                                                  name="Getting release 
version"))
+dist_factory.addStep(steps.ShellCommand(command=["tar",
+                                                 "xvzpf",
+                                                 
util.Interpolate('gnunet-%(prop:gnunet_releasever)s.tar.gz')],
+                                  haltOnFailure=True,
+                                  name="Extracting tarball"))
+# Try to build dist package
+dist_factory.addStep(steps.ShellSequence(
+    workdir=util.Interpolate('build/gnunet-%(prop:gnunet_releasever)s'),
+    name=util.Interpolate("GNUnet %(prop:gnunet_releasever)s tarball build"),
+    env={'GNUNET_PREFIX': '/tmp/gnunet-buildbot/lib',
+         'PATH': ["/tmp/gnunet-buildbot/bin", "${PATH}"]},
+    commands=[
+        util.ShellArg(command=['mkdir', '-p', 
'$TMPDIR'],logname='tmpdir',haltOnFailure=True),
+        util.ShellArg(command=['./configure',
+                               "--prefix=/tmp/gnunet-buildbot",
+                               "--enable-experimental"],
+                               logname='configure',
+                               haltOnFailure=True),
+        util.ShellArg(command=['make', '-j16'],
+                      logname='make',
+                      haltOnFailure=True),
+        util.ShellArg(command=['make', 'install'],
+                      logname='make install',
+                      haltOnFailure=True),
+        #util.ShellArg(command=['make', 'check'],
+        #              logname='make check',
+        #              warnOnFailure=True, flunkOnFailure=False), # make check 
has issues.
+        util.ShellArg(command=['make', 'uninstall'],
+                      logname='make uninstall',
+                      haltOnFailure=True),
+    ]))
+
+
+
+# Upload artifact to https://buildbot.gnunet.org/artifacts
+dist_factory.addStep(steps.FileUpload(workersrc=util.Interpolate('gnunet-%(prop:gnunet_releasever)s.tar.gz'),
+                           mode=0o644,
+                           
masterdest=util.Interpolate("~/artifacts/gnunet-%(prop:gnunet_releasever)s.tar.gz"),
+                           
url=util.Interpolate("https://buildbot.gnunet.org/artifacts/gnunet-%(prop:gnunet_releasever)s.tar.gz")))
+dist_factory.addStep(steps.FileUpload(workersrc=util.Interpolate('build/meson-dist/gnunet-%(prop:gnunet_meson_releasever)s.tar.xz'),
+                           mode=0o644,
+                           
masterdest=util.Interpolate("~/artifacts/gnunet-%(prop:gnunet_releasever)s-meson.tar.xz"),
+                           
url=util.Interpolate("https://buildbot.gnunet.org/artifacts/gnunet-%(prop:gnunet_meson_releasever)s-meson.tar.xz")))
+
+
+
+
+###########################
+#      Fedora COPR build  #
+###########################
+copr_factory = util.BuildFactory()
+copr_factory.addStep(steps.ShellCommand(command=["curl",
+                                                 "-H", "Content-Type: 
application/json",
+                                                 "--data", "{}",
+                                                 "-X", "POST",
+                                                 
"https://copr.fedorainfracloud.org/webhooks/custom/36992/d316c169-1482-4508-a765-cfb5c0efeb67/gnunet/";],
+                                  haltOnFailure=True,
+                                  name="Triggering Copr build"))
+
+
+###########################
+#      stage.gnunet.org   #
+###########################
+www_factory = util.BuildFactory()
+www_factory.addStep(steps.Git(repourl='https://git.gnunet.org/git/www.git', 
mode='incremental'))
+add_default_pipeline(www_factory)
+
+###########################
+#      www.gnunet.org     #
+###########################
+www_stable_factory = util.BuildFactory()
+www_stable_factory.addStep(steps.Git(repourl='https://git.gnunet.org/git/www.git',
 mode='incremental', branch='stable'))
+add_default_pipeline(www_stable_factory)
+
+###########################
+#      bib.gnunet.org     #
+###########################
+bib_factory = util.BuildFactory()
+bib_factory.addStep(steps.Git(repourl='https://git.gnunet.org/git/gnunetbib.git',
 mode='incremental'))
+add_default_pipeline(bib_factory)
+
+
+###########################
+#      reclaim.gnunet.org #
+###########################
+reclaim_www_stable_factory = util.BuildFactory()
+reclaim_www_stable_factory.addStep(steps.Git(repourl='https://git.gnunet.org/git/www-reclaim.git',
 mode='incremental', branch='master'))
+add_default_pipeline(reclaim_www_stable_factory)
+
+
+###########################
+#    rest.gnunet.org      #
+###########################
+rest_factory = util.BuildFactory()
+rest_factory.addStep(steps.Git(repourl='https://git.gnunet.org/git/gnunet-rest-api.git',
 mode='incremental', branch='master'))
+add_default_pipeline(rest_factory)
+
+###########################
+#    lsd.gnunet.org       #
+###########################
+lsd_factory = util.BuildFactory()
+lsd_factory.addStep(steps.Git(repourl=util.Property('repository'), 
mode='full', method="fresh", branch='master'))
+add_default_pipeline(lsd_factory)
+
+###########################
+#    gana.gnunet.org       #
+###########################
+gana_factory = util.BuildFactory()
+gana_factory.addStep(steps.Git(repourl='https://git.gnunet.org/git/gana.git', 
mode='full', method="fresh", branch='master'))
+add_default_pipeline(gana_factory)
+
+##############################
+#    doc.gnunet.org (Doc-NG) #
+##############################
+doc_factory = util.BuildFactory()
+doc_factory.addStep(steps.Git(repourl='https://git.gnunet.org/git/gnunet-handbook.git',
 alwaysUseLatest=True, mode='full', method="clobber", branch='master'))
+add_default_pipeline(doc_factory)
+
+
+
+###########################
+#        Buildbot         #
+###########################
+bb_factory = util.BuildFactory()
+bb_factory.addStep(steps.Git(repourl='ssh://git@git.gnunet.org/buildbot-ci.git',
 mode='incremental'))
+bb_factory.addStep(steps.ShellCommand(command=["./reload_bb-master.sh"], 
name="Reload configuration"))
+
+
+
+BUILDERS.append(
+    util.BuilderConfig(name="gnunet_autotools",
+                       workernames=["firefly-x86_64-amdepyc"],
+                       factory=factory))
+BUILDERS.append(
+    util.BuilderConfig(name="gnunet_openbsd",
+                       workernames=["mp-amd64-openbsd"],
+                       factory=factory))
+BUILDERS.append(
+    util.BuilderConfig(name="gnunet_meson",
+                       workernames=["schanzen-aarch64-fedora-meson"],
+                       factory=factoryMeson))
+
+
+BUILDERS.append(
+    util.BuilderConfig(name="gnunet_release",
+                       workernames=["firefly-x86_64-amdepyc"],
+                       factory=dist_factory))
+BUILDERS.append(
+    util.BuilderConfig(name="gnunet_coverity",
+                       workernames=["firefly-x86_64-amdepyc"],
+                       factory=cov_factory))
+
+
+BUILDERS.append(
+    util.BuilderConfig(name="stage.gnunet.org",
+                       workernames=["firefly-x86_64-amdepyc"],
+                       factory=www_factory))
+BUILDERS.append(
+    util.BuilderConfig(name="www.gnunet.org",
+                       workernames=["firefly-x86_64-amdepyc"],
+                       factory=www_stable_factory))
+BUILDERS.append(
+    util.BuilderConfig(name="bib.gnunet.org",
+                       workernames=["firefly-x86_64-amdepyc"],
+                       factory=bib_factory))
+BUILDERS.append(
+    util.BuilderConfig(name="reclaim.gnunet.org",
+                       workernames=["firefly-x86_64-amdepyc"],
+                       factory=reclaim_www_stable_factory))
+BUILDERS.append(
+    util.BuilderConfig(name="rest.gnunet.org",
+                       workernames=["firefly-x86_64-amdepyc"],
+                       factory=rest_factory))
+BUILDERS.append(
+    util.BuilderConfig(name="lsd.gnunet.org",
+                       workernames=["firefly-x86_64-amdepyc"],
+                       factory=lsd_factory))
+BUILDERS.append(
+    util.BuilderConfig(name="gana.gnunet.org",
+                       workernames=["firefly-x86_64-amdepyc"],
+                       factory=gana_factory))
+BUILDERS.append(
+    util.BuilderConfig(name="doc.gnunet.org",
+                       workernames=["firefly-x86_64-amdepyc"],
+                       factory=doc_factory))
+BUILDERS.append(
+    util.BuilderConfig(name="buildbot",
+                       workernames=["firefly-x86_64-amdepyc"],
+                       factory=bb_factory))
+BUILDERS.append(
+    util.BuilderConfig(name="gnunet_rpm_copr",
+                       workernames=["firefly-x86_64-amdepyc"],
+                       factory=copr_factory))
+
+
+bsg = reporters.BuildStatusGenerator(mode=["exception", "failing", "problem"])
+
+mn = reporters.MailNotifier(fromaddr="buildbot@firefly.gnunet.org",
+                            sendToInterestedUsers=False,
+                            extraRecipients=["gnunet-ci@gnunet.org"],
+                            lookup="gnunet.org",
+                            generators=[bsg])
+SERVICES.append(mn)
+
+
+
 
 #############################################
 # 19: CONTAINER FACTORY #####################
@@ -700,6 +1324,24 @@ SCHEDULERS.append(schedulers.ForceScheduler(
     builderNames=list(BUILDER_LIST)
 ))
 
+SCHEDULERS.append(schedulers.ForceScheduler(
+    name="force_gnunet",
+    buttonName="Trigger build",
+    builderNames=["gnunet_openbsd",
+                  "gnunet_meson",
+                  "gnunet_autotools",
+                  "gnunet_release",
+                  "gnunet_coverity",
+                  "stage.gnunet.org",
+                  "www.gnunet.org",
+                  "bib.gnunet.org",
+                  "rest.gnunet.org",
+                  "lsd.gnunet.org",
+                  "gana.gnunet.org",
+                  "doc.gnunet.org",
+                  "reclaim.gnunet.org",
+                  "buildbot",
+                  "gnunet_rpm_copr"]))
 
 #########################################################
 ####### Actual configuation initialization ##############
@@ -708,6 +1350,10 @@ SCHEDULERS.append(schedulers.ForceScheduler(
 # This is the dictionary that the buildmaster pays attention to.  We also use
 # a shorter alias to save typing.
 c = BuildmasterConfig = {}
+
+# Secrets
+c['secretsProviders'] = [secrets.SecretInAFile(dirname="~/secrets")]
+
 c["workers"] = WORKERS
 c["builders"] = BUILDERS
 c["schedulers"] = SCHEDULERS
@@ -716,8 +1362,12 @@ c["services"] = SERVICES
 # Silence warning and allow very basic phoning home.
 c["buildbotNetUsageData"] = "basic"
 
-c["title"] = "GNU Taler"
-c["titleURL"] = "https://taler.net";
+c["title"] = "GNUnet and GNU Taler Builder"
+c["titleURL"] = "https://buildbot.gnunet.org";
+
+# the 'buildbotURL' string should point to the location where the buildbot's
+# internal web server is visible.
+c['buildbotURL'] = "https://buildbot.gnunet.org/";
 
 # This specifies what database buildbot uses to store its
 # state.  You can leave  this at its default for all but the
@@ -737,7 +1387,7 @@ pollGnunetSource = 
changes.GitPoller(repourl='https://git.gnunet.org/gnunet.git'
                                                     pollInterval=300,
                                                     pollAtLaunch=True,
                                                     project="gnunet")
-c["change_source"] = [pollGnunetSource, pbSource]
+c["change_source"] = [pollGnunetSource, pbSource, pbSource2]
 
 # 'protocols' contains information about protocols which master
 # will use for communicating with workers. You must define at
@@ -746,9 +1396,9 @@ c["change_source"] = [pollGnunetSource, pbSource]
 # the workers (with their --master option)
 c["protocols"] = {"pb": {"port": "tcp:19989:interface=127.0.0.1"}}
 
-# We use nginx to expose the BB under this URL.
-c["buildbotURL"] = "https://buildbot.taler.net/";
-
+# Load admin password
+with open("~/secrets/admin") as fh:
+    www_pass = fh.read().strip()
 
 # minimalistic config to activate new web UI
 # -- formerly commented out as not packaged properly in Debian and others, see
@@ -761,6 +1411,7 @@ c["www"] = {
         "console_view": True,
         "grid_view": True,
     },
+    "auth": util.UserPasswordAuth([('admin',www_pass)])
     "allowed_origins": ["https://*.taler.net";],
     "avatar_methods": [],
 }

-- 
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]