diff --git a/buildbot/osuosl/master/config/builders.py b/buildbot/osuosl/master/config/builders.py --- a/buildbot/osuosl/master/config/builders.py +++ b/buildbot/osuosl/master/config/builders.py @@ -22,6 +22,7 @@ from zorg.buildbot.builders import XToolchainBuilder from zorg.buildbot.builders import TestSuiteBuilder from zorg.buildbot.builders import BOLTBuilder +from zorg.buildbot.builders import MLIRBuilder from zorg.buildbot.builders import HtmlDocsBuilder from zorg.buildbot.builders import DoxygenDocsBuilder @@ -1369,13 +1370,14 @@ 'tags' : ["mlir"], 'workernames' : ["mlir-nvidia"], 'builddir': "mlir-nvidia", - 'factory' : UnifiedTreeBuilder.getCmakeWithNinjaBuildFactory( + 'factory' : MLIRBuilder.getMLIRCmakeBuildFactory( llvm_srcdir="llvm.src", obj_dir="llvm.obj", clean=True, targets = ['check-mlir-build-only'], checks = ['check-mlir'], depends_on_projects=['llvm','mlir'], + install_pip_requirements=True, extra_configure_args=[ '-DLLVM_BUILD_EXAMPLES=ON', '-DLLVM_TARGETS_TO_BUILD=host;NVPTX', diff --git a/zorg/buildbot/builders/MLIRBuilder.py b/zorg/buildbot/builders/MLIRBuilder.py new file mode 100644 --- /dev/null +++ b/zorg/buildbot/builders/MLIRBuilder.py @@ -0,0 +1,32 @@ +from buildbot.plugins import steps +from zorg.buildbot.builders.UnifiedTreeBuilder import getLLVMBuildFactoryAndSourcecodeSteps, addCmakeSteps, addNinjaSteps +from os import path + +def addInstallPipRequirementsStep(f): + f.addStep( + steps.ShellCommand( + name="Install Python requirements", + haltOnFailure=True, + command=["pip", "install", "-r", + path.join("mlir", "python", "requirements.txt")], + workdir=f.llvm_srcdir)) + +def getMLIRCmakeBuildFactory( + clean = False, + install_pip_requirements = False, + **kwars): + f = getCmakeWithNinjaBuildFactory(**kwargs) + + if install_pip_requirements: + addInstallPipRequirementsStep(f) + + cleanBuildRequested = lambda step: step.build.getProperty("clean", default=step.build.getProperty("clean_obj")) or clean + addCmakeSteps(f, + cleanBuildRequested=cleanBuildRequested, + obj_dir=f.obj_dir, + **kwargs) + addNinjaSteps(f, **kwargs) + + return f + +