[pypy-commit] buildbot default: Reorganize ARM building

bivab noreply at buildbot.pypy.org
Mon Sep 10 13:47:56 CEST 2012


Author: David Schneider <david.schneider at picle.org>
Branch: 
Changeset: r697:34a23b0234ea
Date: 2012-09-09 12:36 +0200
http://bitbucket.org/pypy/buildbot/changeset/34a23b0234ea/

Log:	Reorganize ARM building

	- kill armhf builder and hhu-qemu-armel buildslaves
	- kill the own-linux-armhf, own-linux-armel and jitonly-own-linux-
	armel builders
	- separate building from running app level tests for ARM
	- there are builders using the new nightly build factory that
	translate and package pypy for ARM (with and without JIT) and upload
	the result to the buildmaster
	- the translation builders trigger schedulers for builders using
	another new factory that downloads the corresponding build and runs
	the app-level tests on it, these run directly on the ARM boards
	- the ARM jit backend tests are run either on hhu-arm (using xdist to
	send the tests to the boards) or on the boards directly

diff --git a/bot2/pypybuildbot/master.py b/bot2/pypybuildbot/master.py
--- a/bot2/pypybuildbot/master.py
+++ b/bot2/pypybuildbot/master.py
@@ -1,7 +1,7 @@
 
 import os
 import getpass
-from buildbot.scheduler import Nightly
+from buildbot.scheduler import Nightly, Triggerable
 from buildbot.buildslave import BuildSlave
 from buildbot.status.html import WebStatus
 from buildbot.process.builder import Builder
@@ -49,7 +49,9 @@
 pypybuilds = load('pypybuildbot.builds')
 TannitCPU = pypybuilds.TannitCPU
 WinLockCPU = pypybuilds.WinLockCPU
-ARMLockCPU = pypybuilds.ARMLockCPU
+ARMCrossLock = pypybuilds.ARMCrossLock
+ARMBoardLock = pypybuilds.ARMBoardLock
+ARMXdistLock = pypybuilds.ARMXdistLock
 
 pypyOwnTestFactory = pypybuilds.Own()
 pypyOwnTestFactoryWin = pypybuilds.Own(platform="win32")
@@ -174,33 +176,40 @@
         timeout=6 * 3600)
 pypyJitOnlyOwnTestFactoryARM = pypybuilds.Own(cherrypick="jit", timeout=2 * 3600)
 pypyOwnTestFactoryARM = pypybuilds.Own(timeout=2*3600)
-pypyCrossTranslatedAppLevelTestFactoryARM = pypybuilds.Translated(
+pypyCrossTranslationFactoryARM = pypybuilds.NightlyBuild(
+    translationArgs=crosstranslationargs+['-O2'],
+    platform='linux-armel',
+    interpreter='pypy',
+    trigger='APPLVLLINUXARM_scheduler')
+
+pypyJITCrossTranslationFactoryARM = pypybuilds.NightlyBuild(
+    translationArgs=(crosstranslationargs
+                        + jit_translation_args
+                        + crosstranslationjitargs),
+    platform='linux-armel',
+    interpreter='pypy',
+    trigger='JITLINUXARM_scheduler')
+
+pypyARMJITTranslatedTestFactory = pypybuilds.TranslatedTests(
+    translationArgs=(crosstranslationargs
+                        + jit_translation_args
+                        + crosstranslationjitargs),
+    lib_python=True,
+    pypyjit=True,
+    app_tests=True,
+    platform='linux-armel',
+    )
+pypyARMTranslatedAppLevelTestFactory = pypybuilds.TranslatedTests(
     translationArgs=crosstranslationargs+['-O2'],
     lib_python=True,
     app_tests=True,
     platform='linux-armel',
-    interpreter='pypy',
-    prefix='schroot -c precise_arm --')
-
-pypyJITCrossTranslatedTestFactoryARM = pypybuilds.Translated(
-    translationArgs=(crosstranslationargs
-                        +jit_translation_args
-                        +crosstranslationjitargs),
-    targetArgs=[],
-    lib_python=True,
-    pypyjit=True,
-    app_tests=True,
-    platform='linux-armel',
-    interpreter='pypy',
-    prefix='schroot -c precise_arm --'
-    )
+)
 #
 
 LINUX32 = "own-linux-x86-32"
 LINUX64 = "own-linux-x86-64"
 LINUXPPC64 = "own-linux-ppc-64"
-LINUXARMHF = "own-linux-armhf"
-LINUXARMEL = "own-linux-armel"
 
 MACOSX32 =  "own-macosx-x86-32"
 WIN32 = "own-win-x86-32"
@@ -223,14 +232,17 @@
 JITFREEBSD64 = 'pypy-c-jit-freebsd-7-x86-64'
 
 JITONLYLINUX32 = "jitonly-own-linux-x86-32"
-JITONLYLINUXARMEL = "jitonly-own-linux-armel"
 JITBACKENDONLYLINUXARMEL = "jitbackendonly-own-linux-armel"
+JITBACKENDONLYLINUXARMELXDIST = "jitbackendonly-own-linux-armel-xdist"
 JITONLYLINUXPPC64 = "jitonly-own-linux-ppc-64"
 JITBENCH = "jit-benchmark-linux-x86-32"
 JITBENCH64 = "jit-benchmark-linux-x86-64"
 JITBENCH64_2 = 'jit-benchmark-linux-x86-64-2'
 CPYTHON_64 = "cpython-2-benchmark-x86-64"
 
+# build only
+BUILDLINUXARM = "build-pypy-c-linux-armel"
+BUILDJITLINUXARM = "build-pypy-c-jit-linux-armel"
 
 BuildmasterConfig = {
     'slavePortnum': slavePortnum,
@@ -300,16 +312,24 @@
         Nightly("nighly-4-00-py3k", [
             LINUX32,                   # on tannit32, uses 4 cores
             ], branch='py3k', hour=4, minute=0),
-        Nightly("nighly-arm-0-00", [
-            JITBACKENDONLYLINUXARMEL,  # on hhu-arm, uses beagleboard and imx.53
-            APPLVLLINUXARM,            # on hhu-cross-arm, uses 1 core ~ 5 hours
-            JITLINUXARM,               # on hhu-cross-arm, uses 1 core ~ 5 hours
-            JITONLYLINUXARMEL,         # on hhu-qemu-armel
-            ], branch=None, hour=0, minute=0),
+        #
         Nightly("nighly-ppc", [
             JITONLYLINUXPPC64,         # on gcc1
             ], branch='ppc-jit-backend', hour=1, minute=0),
-
+        # 
+        Nightly("nighly-arm-0-00", [
+            BUILDLINUXARM,                 # on hhu-cross-arm, uses 1 core
+            BUILDJITLINUXARM,              # on hhu-cross-arm, uses 1 core
+            JITBACKENDONLYLINUXARMEL,      # on hhu-beagleboard or hhu-imx.53
+            JITBACKENDONLYLINUXARMELXDIST, # on hhu-arm, uses hhu-beagleboard or hhu-imx.53
+            ], branch=None, hour=0, minute=0),
+        #
+        Triggerable("APPLVLLINUXARM_scheduler", [
+            APPLVLLINUXARM,            # triggered by BUILDLINUXARM, on hhu-beagleboard or hhu-imx.53
+	]),
+        Triggerable("JITLINUXARM_scheduler", [
+            JITLINUXARM,               # triggered by BUILDJITLINUXARM, on hhu-beagleboard or hhu-imx.53
+        ]),
     ],
 
     'status': [status, ircbot],
@@ -489,48 +509,49 @@
                   },
                   # ARM
                   # armel
-                  {"name": LINUXARMEL,
-                   "slavenames": ["hhu-qemu-armel"],
-                   "builddir": LINUXARMEL,
-                   "factory": pypyOwnTestFactoryARM,
+                  {"name": JITBACKENDONLYLINUXARMELXDIST,
+                   "slavenames": ['hhu-arm'],
+                   "builddir": JITBACKENDONLYLINUXARMELXDIST ,
+                   "factory": pypyJitBackendOnlyOwnTestFactoryARM,
                    "category": 'linux-armel',
-                   # this build needs 2 CPUs
-                   "locks": [ARMLockCPU.access('exclusive')],
-                  },
-                  {"name": JITONLYLINUXARMEL,
-                   "slavenames": ['hhu-qemu-armel'],
-                   "builddir": JITONLYLINUXARMEL,
-                   "factory": pypyJitOnlyOwnTestFactoryARM,
-                   "category": 'linux-armel',
-                   # this build needs 2 CPUs
-                   "locks": [ARMLockCPU.access('exclusive')],
-                  },
-                  {"name": APPLVLLINUXARM,
-                   "slavenames": ["hhu-cross-armel"],
-                   "builddir": APPLVLLINUXARM,
-                   "factory": pypyCrossTranslatedAppLevelTestFactoryARM,
-                   "category": "linux-armel",
-                   "locks": [ARMLockCPU.access('counting')],
-                  },
-                  {"name" : JITLINUXARM,
-                   "slavenames": ["hhu-cross-armel"],
-                   'builddir' : JITLINUXARM,
-                   'factory' : pypyJITCrossTranslatedTestFactoryARM,
-                   'category' : 'linux-armel',
-                   "locks": [ARMLockCPU.access('counting')],
-                  },
+                   "locks": [ARMXdistLock.access('exclusive'), ARMBoardLock.access('counting')],
+                   },
                   {"name": JITBACKENDONLYLINUXARMEL,
-                   "slavenames": ['hhu-arm'],
+                   "slavenames": ['hhu-beagleboard', 'hhu-i.mx53'],
                    "builddir": JITBACKENDONLYLINUXARMEL,
                    "factory": pypyJitBackendOnlyOwnTestFactoryARM,
                    "category": 'linux-armel',
-                  },
-                  # armhf
-                  {"name": LINUXARMHF,
-                   "slavenames": ["trystack-armhf"],
-                   "builddir": LINUXARMHF,
-                   "factory": pypyOwnTestFactory,
-                   "category": 'linux-armhf',
+                   "locks": [ARMXdistLock.access('counting'), ARMBoardLock.access('counting')],
+                   },
+                  # app level builders
+                  {"name": APPLVLLINUXARM,
+                   "slavenames": ["hhu-beagleboard", "hhu-i.mx53"],
+                   "builddir": APPLVLLINUXARM,
+                   "factory": pypyARMTranslatedAppLevelTestFactory,
+                   "category": "linux-armel",
+                   "locks": [ARMXdistLock.access('counting'), ARMBoardLock.access('counting')],
+                   },
+                  {"name": JITLINUXARM,
+                   "slavenames": ["hhu-beagleboard", "hhu-i.mx53"],
+                   'builddir': JITLINUXARM,
+                   'factory': pypyARMJITTranslatedTestFactory ,
+                   'category': 'linux-armel',
+                   "locks": [ARMXdistLock.access('counting'), ARMBoardLock.access('counting')],
+                   },
+                  # Translation Builders for ARM
+                  {"name": BUILDLINUXARM,
+                   "slavenames": ['hhu-cross-arm'],
+                   "builddir": BUILDLINUXARM,
+                   "factory": pypyCrossTranslationFactoryARM,
+                   "category": 'linux-armel',
+                   "locks": [ARMCrossLock.access('counting')],
+                   },
+                  {"name": BUILDJITLINUXARM,
+                   "slavenames": ['hhu-cross-arm'],
+                   "builddir": BUILDJITLINUXARM,
+                   "factory": pypyJITCrossTranslationFactoryARM,
+                   "category": 'linux-armel',
+                   "locks": [ARMCrossLock.access('counting')],
                   },
                 ],
 


More information about the pypy-commit mailing list