Microsoft Build Accelerator
Перейти к файлу
Iman Narasamdya 941deb9d7e Merged PR 687534: Use MSBuild locator to locate/load MSBuild assemblies when using MSBuild frontend
The custom loader is brittle that it hardcodes the assemblies to load. Moreover, the existing approach does not work with dotnetcore runtime due to some complicated way of MsBuild SDK resolution etc.

MsBuild team recommends that we should use Microsoft.Build.Locator for this purpose.

Because the locator can pin the MsBuild location if explicitly specified, all dotnetcore/full-framework unit tests work without any modification..

Related work items: #2006579
2022-11-08 01:39:45 +00:00
.azdo Merged PR 687591: Produce an ubuntu-based sandbox 2022-11-08 00:48:54 +00:00
.config Merged PR 684717: Avoid using sealSourceDirectory in Guardian run 2022-10-21 23:17:10 +00:00
.gdn Merged PR 671684: Add roslynanalyzers recommend and required ruleset 2022-08-04 22:40:45 +00:00
.vscode Merged PR 636149: Update recommended extension for VS Code 2021-11-08 11:41:47 +00:00
Documentation Merged PR 685373: Update documentation for building on Ubuntu 22.04 2022-10-26 16:16:33 +00:00
Examples Merged PR 684623: Update references to BuildXL master branch to use main 2022-10-20 17:30:20 +00:00
Private Merged PR 684458: Add missing SBOM dependencies to DropDaemon 2022-10-19 22:48:40 +00:00
Public Merged PR 687534: Use MSBuild locator to locate/load MSBuild assemblies when using MSBuild frontend 2022-11-08 01:39:45 +00:00
Shared Merged PR 687518: Resolve the BuildXL executable location in AdoBuildRunner instead of taking it as an argument 2022-11-08 00:27:49 +00:00
cg Merged PR 687534: Use MSBuild locator to locate/load MSBuild assemblies when using MSBuild frontend 2022-11-08 01:39:45 +00:00
secrets/CodeSign Merged PR 667573: Sign assemblies and .exe files 2022-06-30 23:03:58 +00:00
third_party Merged PR 529759: Update XNU security headers 2020-01-20 14:24:46 +00:00
.editorconfig Merged PR 643886: Remove the naming convention for 'async' methods in favour of the analyzers 2022-01-12 01:14:02 +00:00
.gitattributes Initial commit for the sandbox client and server 2018-11-06 15:01:51 -08:00
.gitignore Merged PR 684203: Add NinjaHelloWorld example 2022-10-18 22:08:02 +00:00
.sscignore Merged PR 672428: Add CFS exemptions for nuget.config issues 2022-07-29 17:54:26 +00:00
AnyBuild.json Merged PR 657239: [BuildXL-Remoting][AnyBuild] Sideband data for process remoting 2022-04-23 03:57:47 +00:00
AnyBuildTest.json Merged PR 661153: [AnyBuild][Bxl-Remoting] Move AnyBuild test cluster to WestUS3 2022-05-09 21:16:17 +00:00
BuildCache.cmd Initial sync 2019-03-28 15:35:49 -07:00
BuildCacheDefault.json Initial sync 2019-03-28 15:35:49 -07:00
BuildCacheDefaultNetCore.json Initial sync 2019-03-28 15:35:49 -07:00
BuildCacheOverride.json Initial sync 2019-03-28 15:35:49 -07:00
CODEOWNERS Adding Code owners (#133) 2019-04-11 19:23:06 -07:00
CODE_OF_CONDUCT.md Add CODE_OF_CONDUCT.md document (#765) 2019-08-19 16:56:06 -07:00
CONTRIBUTING.md Merged PR 635447: Update open source contribution model 2021-10-27 22:42:43 +00:00
CreatePr.cmd Merged PR 684623: Update references to BuildXL master branch to use main 2022-10-20 17:30:20 +00:00
LICENSE Restoring licence file 2019-04-09 16:12:01 -07:00
README.md Merged PR 684623: Update references to BuildXL master branch to use main 2022-10-20 17:30:20 +00:00
RunBxlWithPAT.ps1 Merged PR 681077: Add a pipeline definition for validating distribution and remoting on ADO 2022-09-27 19:14:21 +00:00
RunCheckInTests-Test.cmd Initial sync 2019-03-28 15:35:49 -07:00
RunCheckInTests.cmd Merged PR 633580: Add .net6.0 support 2021-11-18 21:47:42 +00:00
RunCheckInTestsWithPAT.ps1 Merged PR 672509: Migrate 'Linux PR Validation' pipeline to 1es templates 2022-08-02 19:49:04 +00:00
SECURITY.md Add Security.md document (#763) 2019-08-19 15:47:52 -07:00
SlimBuildForMacTests.cmd Initial sync 2019-03-28 15:35:49 -07:00
buddy.cmd Merged PR 538749: Add a preliminary Rush frontend to BuildXL 2020-03-12 06:24:11 +00:00
bxl.cmd Initial sync 2019-03-28 15:35:49 -07:00
bxl.sh Merged PR 680445: Retry XUnit tests on Linux public builds 2022-09-20 23:50:32 +00:00
bxlanalyzer.cmd Merged PR 534479: Add helper to run analyzers quickly 2020-02-11 18:21:50 +00:00
clean.bat Initial sync 2019-03-28 15:35:49 -07:00
config.dsc Merged PR 687534: Use MSBuild locator to locate/load MSBuild assemblies when using MSBuild frontend 2022-11-08 01:39:45 +00:00
config.microsoftInternal.dsc Merged PR 666068: Update SBOM packages 2022-10-18 23:46:38 +00:00
config.nuget.aspNetCore.dsc Merged PR 685284: Remove unused versions of aspnetcore 2022-10-26 03:58:29 +00:00
config.nuget.dotnetcore.dsc Merged PR 685985: Revert netcore 6 to 6.0.2 2022-10-28 17:39:34 +00:00
config.nuget.grpc.dsc Merged PR 682112: Update Google.Protobuf to 3.19.5 2022-10-03 20:54:21 +00:00
config.nuget.vssdk.dsc Implement IBuildProvider so that the BuildXL Integration VS extension can intercept SDK-style csproj builds 2022-04-29 18:43:39 +00:00
domino.cmd Initial sync 2019-03-28 15:35:49 -07:00
drop.cmd Merged PR 565168: Update drop.cmd bootstrap script 2020-07-21 21:16:01 +00:00
dropout.cmd Merged PR 643790: Send ThreadCount to mdm 2022-01-07 21:59:31 +00:00
killbxl.cmd Merged PR 629827: Add helper script to repo root for killing existing BuildXL instances 2021-09-17 01:32:10 +00:00
unix.mounts.dsc Merged PR 685368: Remove libc functions obsolete after glibc 2.33 2022-10-27 17:56:34 +00:00
yarn.lock Merged PR 583139: Add npm package that wraps bxl and bxlanalayzer from nuget 2020-11-04 17:09:16 +00:00

README.md

BuildXL (Microsoft Build Accelerator)

BuildXL Icon

Introduction

BuildXL (Microsoft Build Accelerator) is a build engine originally developed for large internal teams at Microsoft. Internally at Microsoft, BuildXL runs 150,000+ builds per day on monorepo codebases up to a half-terabyte in size with a half-million process executions per build. It leverages 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.

BuildXL accelerates multiple build languages, including:

  • JavaScript
  • MSBuild (experimental: using new features under development in MSBuild 16 which will ship in future versions of Visual Studio 2019 and the .NET Core SDK)
  • CMake / Ninja (beta)
  • 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.

OS compatibility:

  • Windows 10+
  • Linux

Examples

See the Examples/ folder for basic project examples.

Documentation

The BuildXL documentation landing page is here and look at the developer guide in order to understand how to build and use BuildXL.

Build Status - Azure DevOps Pipelines

Build status