[zorg] r232006 - [zorg] add llgo builder, osuosl config

Andrew Wilkins axwalk at gmail.com
Wed Mar 11 19:26:00 PDT 2015


Author: axw
Date: Wed Mar 11 21:25:59 2015
New Revision: 232006

URL: http://llvm.org/viewvc/llvm-project?rev=232006&view=rev
Log:
[zorg] add llgo builder, osuosl config

Summary:
Add LLGoBuilder to zorg, and add base
changes to osuosl buildbot config. There are
no slaves set up yet.

Builds fail currently, pending fixes to llgo:
D7851, D7852.

Test Plan: Tested with github.com/axw/docker-zorg

Reviewers: gkistanova

Reviewed By: gkistanova

Subscribers: pcc, axw, llvm-commits

Differential Revision: http://reviews.llvm.org/D7989

Added:
    zorg/trunk/zorg/buildbot/builders/LLGoBuilder.py
Modified:
    zorg/trunk/buildbot/osuosl/master/config/builders.py
    zorg/trunk/buildbot/osuosl/master/master.cfg
    zorg/trunk/zorg/buildbot/changes/llvmpoller.py

Modified: zorg/trunk/buildbot/osuosl/master/config/builders.py
URL: http://llvm.org/viewvc/llvm-project/zorg/trunk/buildbot/osuosl/master/config/builders.py?rev=232006&r1=232005&r2=232006&view=diff
==============================================================================
--- zorg/trunk/buildbot/osuosl/master/config/builders.py (original)
+++ zorg/trunk/buildbot/osuosl/master/config/builders.py Wed Mar 11 21:25:59 2015
@@ -26,6 +26,10 @@ from zorg.buildbot.builders import LLDBu
 reload(LLDBuilder)
 from zorg.buildbot.builders import LLDBuilder
 
+from zorg.buildbot.builders import LLGoBuilder
+reload(LLGoBuilder)
+from zorg.buildbot.builders import LLGoBuilder
+
 from zorg.buildbot.builders import ClangAndLLDBuilder
 reload(ClangAndLLDBuilder)
 from zorg.buildbot.builders import ClangAndLLDBuilder
@@ -762,6 +766,13 @@ def _get_lld_builders():
 
          ]
 
+
+# llgo builders.
+def _get_llgo_builders():
+    # No build slaves set up for llgo yet.
+    return []
+
+
 # Sanitizer builders.
 def _get_sanitizer_builders():
       return [
@@ -1073,6 +1084,10 @@ def get_builders():
         b['category'] = 'lldb'
         yield b
 
+    for b in _get_llgo_builders():
+        b['category'] = 'llgo'
+        yield b
+
     for b in _get_sanitizer_builders():
         b['category'] = 'sanitizer'
         yield b

Modified: zorg/trunk/buildbot/osuosl/master/master.cfg
URL: http://llvm.org/viewvc/llvm-project/zorg/trunk/buildbot/osuosl/master/master.cfg?rev=232006&r1=232005&r2=232006&view=diff
==============================================================================
--- zorg/trunk/buildbot/osuosl/master/master.cfg (original)
+++ zorg/trunk/buildbot/osuosl/master/master.cfg Wed Mar 11 21:25:59 2015
@@ -47,6 +47,7 @@ c['change_source'].append(LLVMPoller(pro
     "libcxxabi",
     "lld",
     "lldb",
+    "llgo",
     "openmp"]))
 
 #  c['change_source'].append(LLVMPoller("test-suite", "trunk"))
@@ -169,6 +170,14 @@ c['schedulers'].append(SingleBranchSched
                                 "libcxx",
                                 "libcxxabi"])))
 
+c['schedulers'].append(SingleBranchScheduler(name="llgo_scheduler",
+                            treeStableTimer=2*60,
+                            builderNames=get_all_for("llgo"),
+                            change_filter=depends_on([
+                                "llvm",
+                                "cfe",
+                                "llgo"])))
+
 ####### PROJECT IDENTITY
 
 c['title'] = "LLVM"

Added: zorg/trunk/zorg/buildbot/builders/LLGoBuilder.py
URL: http://llvm.org/viewvc/llvm-project/zorg/trunk/zorg/buildbot/builders/LLGoBuilder.py?rev=232006&view=auto
==============================================================================
--- zorg/trunk/zorg/buildbot/builders/LLGoBuilder.py (added)
+++ zorg/trunk/zorg/buildbot/builders/LLGoBuilder.py Wed Mar 11 21:25:59 2015
@@ -0,0 +1,92 @@
+import os
+
+import buildbot
+import buildbot.process.factory
+from buildbot.steps.source import SVN
+from buildbot.steps.shell import ShellCommand, SetProperty
+
+from zorg.buildbot.commands.NinjaCommand import NinjaCommand
+
+# NOTE: The llgo builder does not currently support Windows,
+# on account of the shell commands. That's okay for now, as
+# llgo is only tested and known to work on Linux x86-64.
+
+def getLLGoBuildFactory(
+            clean=True,
+            build_type='Release+Asserts',
+            test_libgo=True,             # run 'check-libgo' target if True
+    ):
+    llvm_srcdir = "llvm.src"
+    llvm_objdir = "llvm.obj"
+    llgo_srcdir = '%s/tools/llgo' % llvm_srcdir
+    clang_srcdir = '%s/tools/clang' % llvm_srcdir
+
+    f = buildbot.process.factory.BuildFactory()
+    # Determine the build directory.
+    f.addStep(SetProperty(name="get_builddir",
+                          command=["pwd"],
+                          property="builddir",
+                          description="set build dir",
+                          workdir="."))
+    # Get LLVM, clang and llgo
+    f.addStep(SVN(name='svn-llvm',
+                  mode='update',
+                  baseURL='http://llvm.org/svn/llvm-project/llvm/',
+                  defaultBranch='trunk',
+                  workdir=llvm_srcdir))
+    f.addStep(SVN(name='svn-clang',
+                  mode='update',
+                  baseURL='http://llvm.org/svn/llvm-project/cfe/',
+                  defaultBranch='trunk',
+                  workdir=clang_srcdir))
+    f.addStep(SVN(name='svn-llgo',
+                  mode='update',
+                  baseURL='http://llvm.org/svn/llvm-project/llgo/',
+                  defaultBranch='trunk',
+                  workdir=llgo_srcdir))
+
+    # Clean build directory, if requested.
+    f.addStep(ShellCommand(name="rm-llvm_objdir",
+                           command=["rm", "-rf", llvm_objdir],
+                           haltOnFailure=True,
+                           description=["rm build dir", "llvm"],
+                           workdir=".",
+                           doStepIf=clean))
+
+    # Create configuration files with cmake
+    f.addStep(ShellCommand(name="create-build-dir",
+                           command=["mkdir", "-p", llvm_objdir],
+                           haltOnFailure=False,
+                           description=["create build dir"],
+                           workdir="."))
+    cmakeCommand = [
+        "cmake", "-G", "Ninja",
+        "../%s" %llvm_srcdir,
+        "-DCMAKE_BUILD_TYPE=" + build_type,
+    ]
+    f.addStep(ShellCommand(name="cmake-configure",
+                           command=cmakeCommand,
+                           haltOnFailure=False,
+                           description=["cmake configure"],
+                           workdir=llvm_objdir))
+
+    # Build llgo
+    f.addStep(NinjaCommand(name="build_llgo",
+                           targets=["llgo"],
+                           haltOnFailure=True,
+                           description=["build llgo"],
+                           workdir=llvm_objdir))
+    # Test llgo
+    f.addStep(NinjaCommand(name="test_llgo",
+                           targets=["check-llgo"],
+                           haltOnFailure=True,
+                           description=["test llgo"],
+                           workdir=llvm_objdir))
+    # Test libgo
+    f.addStep(NinjaCommand(name="test_libgo",
+                           targets=["check-libgo"],
+                           haltOnFailure=True,
+                           description=["test libgo"],
+                           workdir=llvm_objdir))
+    return f
+

Modified: zorg/trunk/zorg/buildbot/changes/llvmpoller.py
URL: http://llvm.org/viewvc/llvm-project/zorg/trunk/zorg/buildbot/changes/llvmpoller.py?rev=232006&r1=232005&r2=232006&view=diff
==============================================================================
--- zorg/trunk/zorg/buildbot/changes/llvmpoller.py (original)
+++ zorg/trunk/zorg/buildbot/changes/llvmpoller.py Wed Mar 11 21:25:59 2015
@@ -238,6 +238,7 @@ class LLVMPoller(base.PollingChangeSourc
             'libcxxabi'    : 'libcxxabi',
             'lld'          : 'lld',
             'lldb'         : 'lldb',
+            'llgo'         : 'llgo',
             'openmp'       : 'openmp',
             }
 





More information about the llvm-commits mailing list