[zorg] r224726 - Added new Windows builder/slave for LLDB, with the following properties:

Rick Foos rfoos at codeaurora.org
Mon Dec 22 15:32:51 PST 2014


On 12/22/2014 04:01 PM, Galina Kistanova wrote:
> Hi Rick,
>
> Sorry for forcing you to merge.
>
no problem.
> Agree, using raw strings for Windows paths everywhere we have to have 
> them is more clean and easier to read.
>
> As of the Windows envs, I'm not even sure we need to merge them for 
> the builder. So far it seems more clean to require the VS envs and 
> paths to be set correctly for the buildslave account locally on a slave.
>
2 cases I've needed:

1) Selecting which msvc version/architecture to use. the vcvarsall.bat 
%arch%.
While the msvc version atm is 2013, the arch changes a number of env 
variables on 32 or 64 bit builds.

2) Python 32 or 64 bit for LLDB. I have both 32 and 64 bit installed on 
windows buildslaves.
Buildbot needs 32 bit python still, and 64 bit builds should have/need 
64 bit.

Once you set one part of the env, in buildbot you end up setting 
everything. So having the slave env available on the master helps in 
this area as well.

> Thanks
>
> Galina
>
Thanks,
Rick
>
>
>
>
> On Mon, Dec 22, 2014 at 1:44 PM, Rick Foos <rfoos at codeaurora.org 
> <mailto:rfoos at codeaurora.org>> wrote:
>
>     Hi Galina,
>
>     ack, and I fixed all the merge conflicts with mine :)
>
>     I have an alternate way to the long windows env string. Doing a
>     set on the host and using slave2env creates a dictionary off all
>     the host variables. That way it works on any windows slave you
>     have set up correctly.
>
>     If you must do windows environment variables, you will live a lot
>     easier if you use raw strings:
>
>     {
>     'PATH': r'C:\Program Files (x86)\MSBuild\12.0\bin;'
>     r'C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\IDE;'
>     r'C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\BIN;'
>     r'C:\Program Files (x86)\Microsoft Visual Studio 12.0\Common7\Tools;'
>     r'C:\Windows\Microsoft.NET\Framework\v4.0.30319;'
>     r'C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\VCPackages;'
>     r'C:\Program Files (x86)\Windows Kits\8.1\bin\x86;',
>     }
>
>     -rick
>
>     On 12/22/2014 03:33 PM, Galina Kistanova wrote:
>>     Hi Rick,
>>
>>     I reverted this revision. Need more attention.
>>
>>     Thanks
>>
>>     Galina
>>
>>     On Mon, Dec 22, 2014 at 1:24 PM, Rick Foos <rfoos at codeaurora.org
>>     <mailto:rfoos at codeaurora.org>> wrote:
>>
>>         Hi Galina, Zachary,
>>         I'm getting a checkconfig error. Should Debug be a string in
>>         builders.py?
>>
>>         - config=Debug environment to be identical to what would
>>         happen if you ran vcvarsall.bat
>>         + config='Debug' environment to be identical to what would
>>         happen if you ran vcvarsall.bat
>>
>>
>>           File "buildbot/osuosl/master/config/builders.py", line 654,
>>         in _get_lldb_builders
>>             config=Debug,
>>         exceptions.NameError: global name 'Debug' is not defined
>>         Configuration Errors:
>>           error while parsing config file: global name 'Debug' is not
>>         defined (traceback in logfile)
>>
>>
>>         On 12/22/2014 02:17 PM, Galina Kistanova wrote:
>>
>>             Author: gkistanova
>>             Date: Mon Dec 22 14:17:51 2014
>>             New Revision: 224726
>>
>>             URL: http://llvm.org/viewvc/llvm-project?rev=224726&view=rev
>>             Log:
>>             Added new Windows builder/slave for LLDB, with the
>>             following properties:
>>             1) Only builds x86.
>>             2) Only compiles, does not run tests.
>>             3) Uses MSVC 2013 as the compiler, with the CMake / ninja
>>             generator.
>>
>>             Patch by Zachary Turner!
>>
>>             Modified:
>>              zorg/trunk/buildbot/osuosl/master/config/builders.py
>>              zorg/trunk/buildbot/osuosl/master/config/slaves.py
>>              zorg/trunk/zorg/buildbot/builders/LLDBBuilder.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=224726&r1=224725&r2=224726&view=diff
>>             ==============================================================================
>>             --- zorg/trunk/buildbot/osuosl/master/config/builders.py
>>             (original)
>>             +++ zorg/trunk/buildbot/osuosl/master/config/builders.py
>>             Mon Dec 22 14:17:51 2014
>>             @@ -609,6 +609,40 @@ def _get_lldb_builders():
>>                        'factory':
>>             LLDBBuilder.getLLDBBuildFactory(triple=None, # use default
>>                           make='gmake',
>>             extra_configure_args=['--enable-cxx11',
>>             '--enable-optimized', '--enable-assertions'])},
>>             +        {'name': "lldb-x86-windows-msvc",
>>             +         'slavenames': ["zturner-win2008"],
>>             +         'builddir': "lldb-windows-x86",
>>             +         'factory':
>>             LLDBBuilder.getLLDBWindowsCMakeBuildFactory(triple=None,
>>             # use default
>>             +                         config=Debug,
>>             +                         # This sets up the environment
>>             to be identical to what would happen if you ran vcvarsall.bat
>>             +                         # which is a required step
>>             before invoking the compiler, linker, or for CMake to even be
>>             +                         # able to generate the relevant
>>             ninja.
>>             +                         env={
>>             +                             'PATH': 'C:\\Program Files
>>             (x86)\\MSBuild\\12.0\\bin;' +
>>             + 'C:\\Program Files (x86)\\Microsoft Visual Studio
>>             12.0\\Common7\\IDE\\;' +
>>             + 'C:\\Program Files (x86)\\Microsoft Visual Studio
>>             12.0\\VC\\BIN;' +
>>             + 'C:\\Program Files (x86)\\Microsoft Visual Studio
>>             12.0\\Common7\\Tools;' +
>>             + 'C:\\Windows\\Microsoft.NET\\Framework\\v4.0.30319;' +
>>             + 'C:\\Program Files (x86)\\Microsoft Visual Studio
>>             12.0\\VC\\VCPackages;' +
>>             + 'C:\\Program Files (x86)\\Windows Kits\\8.1\\bin\\x86;',
>>             +                             'DevEnvDir': 'C:\\Program
>>             Files (x86)\\Microsoft Visual Studio 12.0\\Common7\\IDE\\',
>>             + 'ExtensionSdkDir': 'C:\\Program Files (x86)\\Microsoft
>>             SDKs\\Windows\\v8.1\\ExtensionSDKs\\',
>>             + 'Framework40Version': 'v4.0',
>>             + 'FrameworkDir': 'C:\\Windows\\Microsoft.NET\\Framework\\',
>>             + 'FrameworkDIR32':
>>             'C:\\Windows\\Microsoft.NET\\Framework\\',
>>             + 'FrameworkVersion': 'v4.0.30319',
>>             + 'FrameworkVersion32': 'v4.0.30319',
>>             +                             'INCLUDE': 'C:\\Program
>>             Files (x86)\\Microsoft Visual Studio
>>             12.0\\VC\\INCLUDE;C:\\Program Files (x86)\\Microsoft
>>             Visual Studio 12.0\\VC\\ATLMFC\\INCLUDE;C:\\Program Files
>>             (x86)\\Windows Kits\\8.1\\include\\shared;C:\\Program
>>             Files (x86)\\Windows Kits\\8.1\\include\\um;C:\\Program
>>             Files (x86)\\Windows Kits\\8.1\\include\\winrt;',
>>             +                             'LIB': 'C:\\Program Files
>>             (x86)\\Microsoft Visual Studio 12.0\\VC\\LIB;C:\\Program
>>             Files (x86)\\Microsoft Visual Studio
>>             12.0\\VC\\ATLMFC\\LIB;C:\\Program Files (x86)\\Windows
>>             Kits\\8.1\\lib\\winv6.3\\um\\x86;',
>>             +                             'LIBPATH':
>>             'C:\\Windows\\Microsoft.NET\\Framework\\v4.0.30319;C:\\Program
>>             Files (x86)\\Microsoft Visual Studio
>>             12.0\\VC\\LIB;C:\\Program Files (x86)\\Microsoft Visual
>>             Studio 12.0\\VC\\ATLMFC\\LIB;',
>>             + 'VCINSTALLDIR': 'C:\\Program Files (x86)\\Microsoft
>>             Visual Studio 12.0\\VC\\',
>>             + 'VisualStudioVersion': '12.0',
>>             + 'VSINSTALLDIR': 'C:\\Program Files (x86)\\Microsoft
>>             Visual Studio 12.0\\',
>>             + 'WindowsSdkDir': 'C:\\Program Files (x86)\\Windows
>>             Kits\\8.1\\',
>>             + 'WindowsSDK_ExecutablePath_x64': 'C:\\Program Files
>>             (x86)\\Microsoft SDKs\\Windows\\v8.1A\\bin\\NETFX 4.5.1
>>             Tools\\x64\\',
>>             + 'WindowsSDK_ExecutablePath_x86': 'C:\\Program Files
>>             (x86)\\Microsoft SDKs\\Windows\\v8.1A\\bin\\NETFX 4.5.1
>>             Tools\\',
>>             +                         }
>>             +                         )},
>>                      ]
>>                 # Offline.
>>
>>             Modified: zorg/trunk/buildbot/osuosl/master/config/slaves.py
>>             URL:
>>             http://llvm.org/viewvc/llvm-project/zorg/trunk/buildbot/osuosl/master/config/slaves.py?rev=224726&r1=224725&r2=224726&view=diff
>>             ==============================================================================
>>             --- zorg/trunk/buildbot/osuosl/master/config/slaves.py
>>             (original)
>>             +++ zorg/trunk/buildbot/osuosl/master/config/slaves.py
>>             Mon Dec 22 14:17:51 2014
>>             @@ -169,6 +169,9 @@ def get_build_slaves():
>>             create_slave('ericwf-buildslave2', properties={'jobs':
>>             4}, max_builds=2),
>>                       # OS X 10.10 x86_64, Intel Core 2 Duo @ 2.40GHz
>>             create_slave("ericwf-osx-slave", properties={'jobs': 2},
>>             max_builds=1),
>>             +
>>             +        # Windows Server 2008 R2, Quad 2.6GHz Intel
>>             Xeon(R) 4GB RAM
>>             +        create_slave("zturner-win2008",
>>             properties={'jobs': 4}, max_builds=1),
>>                       # Defunct.
>>                 #        # GCC Compile Farm Slaves, see
>>             http://gcc.gnu.org/wiki/CompileFarm
>>
>>             Modified: zorg/trunk/zorg/buildbot/builders/LLDBBuilder.py
>>             URL:
>>             http://llvm.org/viewvc/llvm-project/zorg/trunk/zorg/buildbot/builders/LLDBBuilder.py?rev=224726&r1=224725&r2=224726&view=diff
>>             ==============================================================================
>>             --- zorg/trunk/zorg/buildbot/builders/LLDBBuilder.py
>>             (original)
>>             +++ zorg/trunk/zorg/buildbot/builders/LLDBBuilder.py Mon
>>             Dec 22 14:17:51 2014
>>             @@ -8,6 +8,84 @@ from buildbot.steps.shell import ShellCo
>>               from buildbot.process.properties import WithProperties
>>               from zorg.buildbot.commands.LitTestCommand import
>>             LitTestCommand
>>               +# CMake Windows builds
>>             +def getLLDBWindowsCMakeBuildFactory(
>>             +            clean=True,
>>             +            cmake='cmake',
>>             +            jobs=None,
>>             +
>>             +            config='Release',
>>             +
>>             +            # Environmental variables for all steps.
>>             +            env={},
>>             +            extra_cmake_args=[]):
>>             +
>>             +    ############# PREPARING
>>             +    f = buildbot.process.factory.BuildFactory()
>>             +
>>             +    # We *must* checkout at least Clang, LLVM, and
>>             LLDB.  Once we add a step to run
>>             +    # tests (e.g. ninja check-lldb), we will also need
>>             to add a step for LLD, since
>>             +    # MSVC LD.EXE cannot link executables with DWARF
>>             debug info.
>>             +    f.addStep(SVN(name='svn-llvm',
>>             +                  mode='update',
>>             baseURL='http://llvm.org/svn/llvm-project/llvm/',
>>             + defaultBranch='trunk',
>>             +                  workdir='llvm'))
>>             +    f.addStep(SVN(name='svn-clang',
>>             +                  mode='update',
>>             baseURL='http://llvm.org/svn/llvm-project/cfe/',
>>             + defaultBranch='trunk',
>>             + workdir='llvm/tools/clang'))
>>             +    f.addStep(SVN(name='svn-lldb',
>>             +                  mode='update',
>>             baseURL='http://llvm.org/svn/llvm-project/lldb/',
>>             + defaultBranch='trunk',
>>             + workdir='llvm/tools/lldb'))
>>             +
>>             +    # If jobs not defined, Ninja will choose a suitable
>>             value
>>             +    jobs_cmd=[]
>>             +    if jobs is not None:
>>             +        jobs_cmd=["-j"+str(jobs)]
>>             +    ninja_cmd=['ninja'] + jobs_cmd
>>             +
>>             +    # Global configurations
>>             +    build_dir='build'
>>             +
>>             +    ############# CLEANING
>>             +    if clean:
>>             + f.addStep(ShellCommand(name='clean',
>>             +  command=['rmdir', '/S/Q', build_dir],
>>             +  warnOnFailure=True,
>>             +  description='Cleaning',
>>             +  descriptionDone='clean',
>>             +  workdir='.',
>>             +  env=env))
>>             +
>>             +    # Use batch files instead of ShellCommand directly,
>>             Windows quoting is
>>             +    # borked. FIXME: See buildbot ticket #595 and
>>             buildbot ticket #377.
>>             +
>>             f.addStep(batch_file_download.BatchFileDownload(name='cmakegen',
>>             + command=[cmake, "-G", "Ninja", "../llvm",
>>             +  "-DCMAKE_BUILD_TYPE="+config,
>>             +  # Need to use our custom built version of python
>>             +
>>              "-DPYTHON_LIBRARY=C:\\src\\python\\PCbuild\\python27_d.lib",
>>             +  "-DPYTHON_INCLUDE_DIR=C:\\src\\python\\Include",
>>             +
>>              "-DPYTHON_EXECUTABLE=C:\\src\\python\\PCbuild\\python_d.exe"]
>>             +  + extra_cmake_args,
>>             + workdir=build_dir))
>>             +
>>             + f.addStep(ShellCommand(name='cmake',
>>             +  command=['cmakegen.bat'],
>>             +  haltOnFailure=True,
>>             +  description='cmake gen',
>>             +  workdir=build_dir,
>>             +                           env=env))
>>             +
>>             + f.addStep(WarningCountingShellCommand(name='build',
>>             +   command=ninja_cmd,
>>             +   haltOnFailure=True,
>>             +   description='ninja build',
>>             +   workdir=build_dir,
>>             +   env=env))
>>             +
>>             +    return f
>>             +
>>               def getLLDBBuildFactory(
>>                           triple,
>>                           outOfDir=False,
>>
>>
>>             _______________________________________________
>>             llvm-commits mailing list
>>             llvm-commits at cs.uiuc.edu <mailto:llvm-commits at cs.uiuc.edu>
>>             http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
>>
>>
>>         -- 
>>         Rick Foos
>>         Qualcomm Innovation Center, Inc.
>>         Qualcomm Innovation Center, Inc. is a member of Code Aurora
>>         Forum, a Linux Foundation Collaborative Project
>>
>>
>>         _______________________________________________
>>         llvm-commits mailing list
>>         llvm-commits at cs.uiuc.edu <mailto:llvm-commits at cs.uiuc.edu>
>>         http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits
>>
>>
>
>     -- 
>     Rick Foos
>     Qualcomm Innovation Center, Inc.
>     Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, a Linux Foundation Collaborative Project
>
>

-- 
Rick Foos
Qualcomm Innovation Center, Inc.
Qualcomm Innovation Center, Inc. is a member of Code Aurora Forum, a Linux Foundation Collaborative Project

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20141222/7e94d469/attachment.html>


More information about the llvm-commits mailing list