Microsoft Build Accelerator
Перейти к файлу
Juan Carlos Guzman Islas 051b0111ea Merged PR 576170: Move bandwidth checker to GrpcCopyClient and add bandwidth check capability to pushed copies
The main purpose of the PR is to add bandwidth checker capabilities to push copies. However, since there is also a desire to move the checker into the gRPC copier, much more changes were required.

Moved the `BandwidthChecker` into the gRPC copier instead of having a `BandwidthCheckedCopier`. This is desirable because now the checker won't be checking connection time and it'll measure just while streaming content. As with normal copies, different attempts can have different bandwidth requirements. This is achieved by `DistributedContentCopier`. I felt it was important for this logic to live entirely in one place, since this is all an effort to consolidate the behavior pushed and pulled copies.

As an additional quality of life improvement, we will now log the time spent connecting to the server when the copy is successfully attempted, so that we can differentiate between time spent copying and time spent connecting.
2020-10-13 18:24:54 +00:00
.config
.vscode
Documentation Merged PR 578478: Release notes 2020-10-07 21:59:52 +00:00
Examples
Private Merged PR 574812: Copy System Prototype 2020-09-17 07:48:20 +00:00
Public Merged PR 576170: Move bandwidth checker to GrpcCopyClient and add bandwidth check capability to pushed copies 2020-10-13 18:24:54 +00:00
Shared New LKG 0.1.0-20201010.0.1 2020-10-13 18:13:07 +00:00
cg Merged PR 578538: Revert 'Upgrading QTest package version to 20.9.24.160608' 2020-10-08 02:45:43 +00:00
third_party
.editorconfig
.gitattributes
.gitignore
BuildCache.cmd
BuildCacheDefault.json
BuildCacheDefaultNetCore.json
BuildCacheOverride.json
CODEOWNERS
CODE_OF_CONDUCT.md
CONTRIBUTING.md
CreatePr.cmd
LICENSE
README.md
RunCheckInTests-Test.cmd
RunCheckInTests.cmd
RunCheckInTestsWithPAT.ps1
SECURITY.md
SlimBuildForMacTests.cmd
buddy.cmd
bxl.cmd
bxl.sh
bxlanalyzer.cmd
clean.bat
config.dsc Merged PR 578304: [LinuxSandbox] Compile utils.c with gcc instead of g++ 2020-10-07 03:12:00 +00:00
config.microsoftInternal.dsc Merged PR 578538: Revert 'Upgrading QTest package version to 20.9.24.160608' 2020-10-08 02:45:43 +00:00
config.nuget.aspNetCore.dsc
config.nuget.dotnetcore.dsc
config.nuget.grpc.dsc
config.nuget.vssdk.dsc
domino.cmd
drop.cmd
dropout.cmd
macos.mounts.dsc

README.md

Microsoft Build Accelerator

BuildXL Icon

Introduction

Build Accelerator, BuildXL for short, is a build engine originally developed for large internal teams at Microsoft, and owned by the Tools for Software Engineers team, part of the Microsoft One Engineering System internal engineering group. Internally at Microsoft, BuildXL runs 30,000+ builds per day on monorepo codebases up to a half-terabyte in size with a half-million process executions per build, using distribution to thousands of data center machines and petabytes of source code, package, and build output caching. Thousands of developers use BuildXL on their desktops for faster builds even on mega-sized codebases.

BuildXL accelerates multiple build languages, including:

  • MSBuild (using new features under development in MSBuild 16 which will ship in future versions of Visual Studio 2019 and the .NET Core SDK)
  • CMake (under development)
  • Its own internal scripting language, DScript, an experimental TypeScript based format used as an intermediate language by a small number of teams inside Microsoft

BuildXL has a command-line interface. There are currently no plans to integrate it into Visual Studio. The project is open source in the spirit of transparency of our engineering system. You may find our technology useful if you face similar issues of scale. Note that BuildXL is not intended as a replacement for MSBuild or to indicate any future direction of build languages from Microsoft.

Documentation

The BuildXL documentation main page is here.

Examples and Demos

See the Examples/ folder for basic project examples. See the Demos page for information about various technical demos like using the process sandboxing code.

Building the Code

Build Status - Azure DevOps Pipelines

Build status

Command Line Build and Test

See the Developer Guide for instructions on compiling BuildXL.

Contributing

See CONTRIBUTING.