Index: zorg/buildbot/builders/LLVMEmbeddedToolchainForArmBuilder.py =================================================================== --- /dev/null +++ zorg/buildbot/builders/LLVMEmbeddedToolchainForArmBuilder.py @@ -0,0 +1,70 @@ +from buildbot.steps.shell import ShellCommand +from buildbot.plugins import steps +from zorg.buildbot.process.factory import LLVMBuildFactory + + +def getLLVMEmbeddedToolchainForArmBuildFactory(): + f = LLVMBuildFactory(llvm_srcdir="repos/llvm.git") + + f.addStep(steps.MakeDirectory(dir="repos")) + + toolchain_src = "LLVM-embedded-toolchain-for-Arm" + + f.addStep( + steps.Git( + name="Check out LLVM-embedded-toolchain-for-Arm", + repourl="https://github.com/ARM-software/LLVM-embedded-toolchain-for-Arm.git", + progress=True, + workdir=toolchain_src, + retryFetch=True, + clobberOnFailure=True, + ) + ) + + f.addStep( + steps.Git( + name="Check out piclibc", + repourl="https://github.com/mirror/picolibc.git", + progress=True, + workdir="repos/picolibc.git", + retryFetch=True, + clobberOnFailure=True, + ) + ) + + f.addGetSourcecodeSteps() + + f.addStep(steps.RemoveDirectory(dir="build")) + + f.addStep( + ShellCommand( + name="setup", + command=["./setup.sh"], + haltOnFailure=True, + workdir=toolchain_src, + ) + ) + + f.addStep( + ShellCommand( + name="build", + command=[ + "./venv/bin/build.py", + "--verbose", + "--use-ccache", + "--use-ninja", + "--checkout-mode", + "patch", # perform a hard reset and apply patches + "--revision", + "HEAD", + "--repositories-dir", + "../repos", + "--build-dir", + "../build", + ], + haltOnFailure=True, + workdir=toolchain_src, + ) + ) + + return f