Skip to end of banner
Go to start of banner

How to setup WoA machine for python buildbot

Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 7 Next »

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, 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:

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:

  • No labels