Microsoft Build Accelerator
Перейти к файлу
Marcelo Lynch 9f084dbcb4 Merged PR 813103: [BuildXL installer] "Worker mode" for distributed builds, and pipeline with integration tests
Add an 'orchestrator' and 'worker' mode to the BuildXLNugetInstaller so that the version is decided only on a single agent in a distributed build: this avoids race conditions between the agents when resolving a version.

In the future this strategy might be adopted to the configuration download itself, but for that a prerequisite is that the configuration is distributed in a versioned manner (like Nuget), so for now it is good enough to keep this logic as specific to the BuildXL installer.

This PR also adds an integration pipeline to test the installer before releasing. This pipeline exercises a straightforward flow and also the worker-orchestrator consistency when using the distributed mode.
2024-11-06 22:55:05 +00:00
.azdo Merged PR 813103: [BuildXL installer] "Worker mode" for distributed builds, and pipeline with integration tests 2024-11-06 22:55:05 +00:00
.config This pull request includes baselines **with an expiration date of 180 days from now** automatically generated for your 1ES PT-based pipelines. Complete this pull request as soon as possible to make sure that your pipeline becomes compliant. Longer delays in completing this PR can trigger additional emails or S360 alerts in the future. 2024-10-25 23:01:02 +00:00
.gdn Merged PR 671684: Add roslynanalyzers recommend and required ruleset 2022-08-04 22:40:45 +00:00
.vscode Merged PR 772872: Update FileAccessManifest parsing for Linux and implement missing functionality 2024-03-21 22:44:29 +00:00
Documentation Merged PR 813662: Updated Release-Notes.md 2024-11-05 20:53:21 +00:00
Examples Merged PR 799153: Remove net7 qualifier 2024-08-09 00:15:26 +00:00
Private Merged PR 813103: [BuildXL installer] "Worker mode" for distributed builds, and pipeline with integration tests 2024-11-06 22:55:05 +00:00
Public Merged PR 813694: Produce an error file for Yarn and Lage resolvers 2024-11-05 21:45:05 +00:00
Shared Merged PR 812373: Update BuildXL LKG Version to 0.1.0-20241025.4 2024-10-28 17:40:20 +00:00
cg Merged PR 813750: Changes to APH version 2024-11-06 20:20:55 +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
.ci-npmrc Merged PR 749450: Switch to internal NPM feed 2023-11-07 21:16:34 +00:00
.editorconfig Merged PR 710931: Remove suggestions to `var`-ify types when specified 2023-04-14 16:49:02 +00:00
.gitattributes Initial commit for the sandbox client and server 2018-11-06 15:01:51 -08:00
.gitignore Merged PR 781483: Add support for clone3 to PTraceSandbox 2024-04-25 22:12:19 +00:00
.npmrc Merged PR 749450: Switch to internal NPM feed 2023-11-07 21:16:34 +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 805603: Fix typo in security group in contributing documentation 2024-09-18 17:30:46 +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
NOTICE.txt Merged PR 813392: Update NOTICE.txt 2024-11-05 19:35:44 +00:00
README.md Merged PR 771833: Update project documentation 2024-03-08 22:14:38 +00:00
RunBxlWithPAT.ps1 Merged PR 777594: Replace RunBxlWithPAT for reusable script in .azdo that uses task.setvariable instead of modifying the environment 2024-04-04 19:57:46 +00:00
RunCheckInTests-Test.cmd Initial sync 2019-03-28 15:35:49 -07:00
RunCheckInTests.cmd Merged PR 763373: Make codex analysis run again by tracking user build in RunCheckinTest 2024-01-25 03:13:15 +00:00
RunCheckInTestsWithPAT.ps1 Merged PR 771508: Fix wrong quotes in JSON that tripped CredentialProvider and unpin it 2024-03-07 00:45:20 +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 808205: Fix formatting of an npm auth token 2024-10-02 20:32:44 +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 813750: Changes to APH version 2024-11-06 20:20:55 +00:00
config.microsoftInternal.dsc Merged PR 813394: Update Packages 2024-11-05 19:34:50 +00:00
config.nuget.aspNetCore.dsc Merged PR 809236: Update DotNet Core to 8.0.10 and 6.0.35 2024-10-09 22:57:08 +00:00
config.nuget.dotnetcore.dsc Merged PR 812680: Add interactive device auth support for Linux 2024-10-31 17:22:36 +00:00
config.nuget.grpc.dsc Merged PR 765884: DScript spec cleanup 2024-02-07 22:11:01 +00:00
config.nuget.vssdk.dsc Merged PR 811648: Update MessagePack package dependency 2024-10-23 22:18:50 +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
dropout.ps1 Merged PR 799491: Allow deduplicating content from ephemeral local CAS with CASaaS 2024-08-16 22:12:20 +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
  • Ninja (CMake)
  • 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+
  • Ubuntu 20.04

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