[PATCH] D69467: Added support for git/github to SanitizerBuilder

Andrei Lebedev via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Sat Oct 26 14:16:13 PDT 2019


andreil99 created this revision.
andreil99 added reviewers: gkistanova, eugenis, vvereschaka, aorlov.
andreil99 added projects: LLVM, Zorg.
Herald added a subscriber: llvm-commits.

Now SanitizerBuilder supports both a "legacy mode" with SVN checkout and a git/github checkout

is_legacy_mode is False by default since we have migrated the build bot to github.


Repository:
  rL LLVM

https://reviews.llvm.org/D69467

Files:
  zorg/buildbot/builders/SanitizerBuilder.py


Index: zorg/buildbot/builders/SanitizerBuilder.py
===================================================================
--- zorg/buildbot/builders/SanitizerBuilder.py
+++ zorg/buildbot/builders/SanitizerBuilder.py
@@ -1,13 +1,11 @@
-import os
-
-import buildbot
-import buildbot.process.factory
-from buildbot.steps.source import SVN, Git
+from buildbot.steps.shell import SetProperty
 from buildbot.process.properties import WithProperties
 from zorg.buildbot.commands.AnnotatedCommand import AnnotatedCommand
+from zorg.buildbot.process.factory import LLVMBuildFactory
 
 def getSanitizerBuildFactory(
     clean=False,
+    depends_on_projects=None,
     env=None,
     timeout=1200):
 
@@ -22,27 +20,40 @@
     if env is not None:
         merged_env.update(env)
 
-    f = buildbot.process.factory.BuildFactory()
+    if depends_on_projects is None:
+        depends_on_projects = [
+            "llvm",
+            "clang",
+            "compiler-rt",
+            "libcxx",
+            "libcxxabi",
+            "libunwind",
+            "lld"]
+
+    # Explicitly use '/' as separator, because it works on *nix and Windows.
+    sanitizer_script_dir = "sanitizer_buildbot/sanitizers"
+    sanitizer_script = "../%s/zorg/buildbot/builders/sanitizers/%s" % (sanitizer_script_dir, "buildbot_selector.py")
+
+    f = LLVMBuildFactory(
+        is_legacy_mode=False,
+        clean=clean,
+        depends_on_projects=depends_on_projects,
+        llvm_srcdir=sanitizer_script_dir)
 
     # Determine the build directory.
-    f.addStep(buildbot.steps.shell.SetProperty(name="get_builddir",
-                                               command=["pwd"],
-                                               property="builddir",
-                                               description="set build dir",
-                                               workdir=".",
-                                               env=merged_env))
-
-    sanitizer_buildbot = "sanitizer_buildbot"
-    sanitizer_script_dir = os.path.join(sanitizer_buildbot, "sanitizers")
+    f.addStep(SetProperty(name="get_builddir",
+                          command=["pwd"],
+                          property="builddir",
+                          description="set build dir",
+                          workdir=".",
+                          env=merged_env))
+
     # Get sanitizer buildbot scripts.
-    f.addStep(SVN(name='svn-sanitizer-buildbot',
-                  mode='update',
-                  svnurl='http://llvm.org/svn/llvm-project/zorg/trunk/'
-                         'zorg/buildbot/builders/sanitizers',
-                  workdir=sanitizer_script_dir,
-                  alwaysUseLatest=True))
-
-    sanitizer_script = os.path.join("..", sanitizer_script_dir, "buildbot_selector.py")
+    f.addGetSourcecodeForProject(
+        name='update-annotate-scripts',
+        project='zorg',
+        src_dir=sanitizer_script_dir,
+        alwaysUseLatest=True)
 
     # Run annotated command for sanitizer.
     f.addStep(AnnotatedCommand(name="annotate",


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D69467.226553.patch
Type: text/x-patch
Size: 3044 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20191026/728fa8e5/attachment.bin>


More information about the llvm-commits mailing list