This page describes how to setup WoA machine to run python buildbot.
Access WoA machine in Linaro Farm
Please check out the following page for instructions on how to remotely access woa machine
/wiki/spaces/TCWG/pages/22395192116
If setting up a new machine please remember to mark the machine as taken for python buildbot
Install Visual Studio Build Tools
This is the command line portion of visual studio, download it from https://visualstudio.microsoft.com/downloads/ . (“Tools for Visual Studio 2019” → “Build Tools for Visual Studio 2019”)
The following components need to be selected from “Individual Components” during the installation
MSVC v142 - VS 2019 C++ x64/x86 build tools (latest)
MSVC v142 - VS 2019 C++ ARM64 build tools (latest)
C++ ATL for latest v142 build tools (ARM64)
Windows 10 SDK
Versions 18362 and 19041 are known to work
See How to setup LLVM buildbots for Windows on Arm also if you run into any issues
Install Python
Install python 3.9.x ( 32-bit or x64, but not ARM64) from the python release page. Earlier or later versions of python might also work without issues.
Note: If Python is not added by default to environment variable PATH, please go to “System Properties” -> “Environment Variables” and add the path
Deactivate Windows Firewall
To run python tests, the compiled python must be able to access network. Either you can run it once manually (and add exception when asked), or simply deactivate windows firewall.
Install and setup Buildbot
Buildbot can be installed in any location but it is preferable to install in C:\
to avoid hitting the maximum path limit on windows. Please run following commands to install buildbot-worker
:: Create Directory for buildbot installation mkdir C:\Workspace cd C:\Workspace :: Create virtual venv python -m venv venv :: Activate venv .\venv\Scripts\activate :: Install buildbot-worker in virtual env python -m pip install pypiwin32 buildbot-worker
Now create a worker using the following command
buildbot-worker create-worker buildarea buildbot.python.org:9020 linaro-win-arm64 <PASSWORD>
Password is allocated by python buildbot administrators. Instructions on how to access them will be added later.
You can contact the three maintainers (together) for python buildbot server:
Zachary Ware zach@python.org
Pablo Galindo Salgado pablogsal@gmail.com
Victor Stinner vstinner@python.org
Edit following files to add admin email address and host information
C:\Workspace\buildarea\info\admin
Linaro Windows on Arm Support <woa-support@op-lists.linaro.org> |
C:\Workspace\buildarea\info\host
Microsoft Surface X Pro; RAM 16GB OS: Windows 10 Pro (ARM64) |
Now create a batch file to run as a service
C:\Workspace\buildbot.bat
:: Initialise ARM64 environment call "C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Auxiliary\Build\vcvarsx86_arm64.bat" :: Add debug runtime DLL to path set PATH=C:\Program Files (x86)\Windows Kits\10\bin\10.0.18362.0\arm64\ucrt\;%PATH% set PATH=C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC\Redist\MSVC\14.29.30133\onecore\debug_nonredist\arm64\Microsoft.VC142.DebugCRT\;%PATH% :: Activate virtual environment call "C:\Workspace\buildarea\venv\Scripts\activate" cd C:\Workspace :: Start buildbot-worker echo Starting buildbot-workder buildbot-worker start buildarea :: Repeat buildbot-worker restart in a loop in case if it ever terminates due to an error :start buildbot-worker restart buildarea goto :start |
Now the script can be run as a service using RunAsRob tool. If RunAsRob is not installed please contact Maxim Kuvyrkov for the installer with license. Then setting up the tool is straightforward. You just have to install the tool and add created buildbot.bat
as one of the applications to RunAsRob.
You can automate service by using https://nssm.cc, which is free and open source. It gracefully restarts your program (or batch) when it stops. nssm.exe install
to configure a new service.
Register worker
To be able to connect worker, even with a password allocated, you need to add configuration on this project: https://github.com/python/buildmaster-config
Examples:
0 Comments