[152554] contrib/buildbot-test/master.cfg

raimue at macports.org raimue at macports.org
Mon Sep 12 07:48:39 PDT 2016


Revision: 152554
          https://trac.macports.org/changeset/152554
Author:   raimue at macports.org
Date:     2016-09-12 07:48:39 -0700 (Mon, 12 Sep 2016)
Log Message:
-----------
buildbot: add buildbot metadata to build env

In order to construct references current build, add buildername, buildnumber
and a URL to this build to the build environment.

Modified Paths:
--------------
    contrib/buildbot-test/master.cfg

Modified: contrib/buildbot-test/master.cfg
===================================================================
--- contrib/buildbot-test/master.cfg	2016-09-12 14:24:19 UTC (rev 152553)
+++ contrib/buildbot-test/master.cfg	2016-09-12 14:48:39 UTC (rev 152554)
@@ -9,6 +9,12 @@
 def _path(name):
     return os.path.join(os.path.dirname(__file__), name)
 
+def merge_dicts(*dicts):
+    res = {}
+    for d in dicts:
+        res.update(d)
+    return res
+
 # This is a buildmaster config file. It must be installed as
 # 'master.cfg' in your buildmaster's base directory.
 
@@ -296,7 +302,7 @@
 from buildbot.process.properties import renderer
 
 @renderer
-def make_triggeredby_url(props):
+def make_build_url(props):
     buildername = props.getProperty('buildername')
     buildnumber = props.getProperty('buildnumber')
     url = c['buildbotURL']
@@ -379,7 +385,7 @@
 
     portwatcher_factory.addStep(TriggerWithPortlist(
         schedulerNames=[triggerable],
-        set_properties={"triggered_by": make_triggeredby_url},
+        set_properties={"triggered_by": make_build_url},
         waitForFinish=True,
         updateSourceStamp=True))
 
@@ -483,6 +489,12 @@
     baseslaves[plat]  = filter(lambda x: x.endswith(plat+"-base"),  slavenames)
     portsslaves[plat] = filter(lambda x: x.endswith(plat+"-ports"), slavenames)
 
+env_buildinfo = {
+    "BUILDBOT_BUILDERNAME": WithProperties("%(buildername)s"),
+    "BUILDBOT_BUILDNUMBER": WithProperties("%(buildnumber)s"),
+    "BUILDBOT_BUILDURL": make_build_url
+}
+
 c['builders']=[]
 extract_os = re.compile("10\.\d+")
 for plat in build_platforms:
@@ -495,7 +507,7 @@
                 slavenames=["base-" + plat],
                 factory=base_factory,
                 tags=["base", os_version],
-                env={"PATH": path_base})]
+                env=merge_dicts(env_buildinfo, {"PATH": path_base}))]
     if 'linux' not in plat and '10.5_ppc' != plat:
         c['builders'] += [
             BuilderConfig(
@@ -503,13 +515,13 @@
                 slavenames=["ports-" + plat],
                 factory=make_portwatcher_factory("ports-" + plat + "-trigger"),
                 tags=["portwatcher", os_version],
-                env={"PATH": path_ports}),
+                env=merge_dicts(env_buildinfo, {"PATH": path_ports})),
             BuilderConfig(
                 name="ports-" + plat + "-builder",
                 slavenames=["ports-" + plat],
                 factory=portbuilder_factory,
                 tags=["portbuilder", os_version],
-                env={"PATH": path_ports})]
+                env=merge_dicts(env_buildinfo, {"PATH": path_ports}))]
 
 if "docs" in slavedata['slaves'].keys():
     c['builders'] += [
@@ -518,13 +530,13 @@
             slavenames=["docs"],
             factory=docs_www_factory,
             tags=["docs", "www"],
-            env={"PATH": path_docs}),
+            env=merge_dicts(env_buildinfo, {"PATH": path_ports})),
         BuilderConfig(
             name="docs-guide",
             slavenames=["docs"],
             factory=docs_guide_factory,
             tags=["docs", "guide"],
-            env={"PATH": path_docs})]
+            env=merge_dicts(env_buildinfo, {"PATH": path_ports}))]
 
 ####### STATUS TARGETS
 
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.macosforge.org/pipermail/macports-changes/attachments/20160912/d19cc3e3/attachment-0001.html>


More information about the macports-changes mailing list