Граф коммитов

97 Коммитов

Автор SHA1 Сообщение Дата
Iman Narasamdya 6725095c11 Merged PR 644381: Integrate BuildXL with AnyBuild SDK
Integrate BuildXL with AnyBuild SDK.

The design is to isolate AnyBuild use so that the `#if FEATURE_ANYBUILD_PROCESS_REMOTING` doesn't need to appear everywhere.

This PR depends on AnyBuild.SDK package that should be published after this PR !644510 is pushed.

Related work items: #1907310
2022-01-13 23:51:44 +00:00
Pratik Lade e3f6f515d8 Merged PR 643297: Use Int resources for CloudTest task Cg of release pipeline
BuildXL Release pipeline currently contains two CloudTest tasks.
Task Cf runs on CloudTest Int, while task Cg runs on CloudTest Prod.
Due to limitations in CloudTest UI, this means the results of the Cg task are not populated in the `1ES Test` tab of Azure DevOps.

To fix this, there were two approaches: either move Cf to Prod or move Cg to Int.
Moving Cf to Prod is more complicated, since there are build pipeline certificates installed and used specifically by CloudTest Int environment, which are not available on Prod.

We are taking the approach of moving Cg task to CloudTest Int. To do this, the SKU and Image used to run the Cg task needed to change, as the currently configured ones are not available on Int environment.
Here's a successful run that uses this configuration on CloudTest Int environment: https://cloudtest.visualstudio.com/CloudTest/_build/results?buildId=57793&view=results

This is part 1 of two changes required for this to work. After this PR completes, the release pipeline task and the CloudTest Validation(Gvfs) pipelines need to be edited to use the correct CloudTest configuration, which involves the following changes.
- Use Int environment instead of Prod
- Use wus2-default stamp
- Use cloudtest tenant instead of BuildXL
2022-01-12 20:07:37 +00:00
Marcelo Lynch 🧉 8889e2ec89 Merged PR 643161: Remove SBOMUtilities.ComponentDetectionConverter in favor of the Microsoft.SBOM.Adapters library
- Remove ComponentDetectionConverter in favor of the Microsoft.SBOM.Adapters library
- Update SBOM packages to version 2.0.99

Related work items: #1902188
2022-01-04 21:30:09 +00:00
Michael Pysson e615dc34e5 Merged PR 642321: Remove Mimic and MimicGenerator
These haven't been used in years and won't likely be revived. Deleting to clean up codebase. They can be retrieved from version history if necessary.
2021-12-27 19:55:46 +00:00
Pasindu Gunasekara 🍣 988bb1954f Merged PR 639286: Add SBOM packages to SBOM generation step in DropDaemon
- Calls the new Microsoft.Sbom.Adapters library to get a list of SBOMPackage objects from the component detection output.

Related work items: #1882259
2021-12-01 22:11:29 +00:00
Pratik Lade a61132d192 Merged PR 638935: Update dotnet install command for Gvfs Int Testing
Updated Setup.cmd
2021-11-18 19:12:06 +00:00
Marcelo Lynch 🧉 fd879b0886 Merged PR 635704: Use the new common API to generate SBOMs from the DropDaemon 2021-11-11 19:33:21 +00:00
Marcelo Lynch 🧉 a37db4c037 Merged PR 637192: Reinstate change: add a helper library to extract SBOM Metadata from BuildSessionInfo to BuildXL
Revert the revert and remove problematic dependencies.
2021-11-08 18:59:59 +00:00
Oleksii Kononenko 9de4b4915a Merged PR 637024: Revert "Merged PR 636560: Add a helper library to extract SBOM Metadata from...
Revert "Merged PR 636560: Add a helper library to extract SBOM Metadata from BuildSessionInfo to BuildX...

Add a helper library to extract SBOM Metadata from BuildSessionInfo to BuildXL.Utilities

Related work items: #1882251"

Reverted commit `c7a683ce`.

Related work items: #1882251
2021-11-05 20:06:27 +00:00
Marcelo Lynch 🧉 c7a683ce3f Merged PR 636560: Add a helper library to extract SBOM Metadata from BuildSessionInfo to BuildX...
Add a helper library to extract SBOM Metadata from BuildSessionInfo to BuildXL.Utilities

Related work items: #1882251
2021-11-04 19:28:00 +00:00
Sergey Tepliakov ff8315980b Merged PR 635626: Upload mdm metrics when the launcher is used
Upload mdm metrics when the launcher is used

Related work items: #1881914
2021-11-01 22:14:46 +00:00
Marcelo Lynch 🧉 6e9f6b77b2 Merged PR 632505: Various fixes in new DropDaemon service plus an integration test for the new API
A couple of bug fixes in the SDK (the comments have more details), plus an integration test using the new API to ensure the arguments are working properly (because this gave us some trouble).
2021-10-06 20:40:18 +00:00
Pasindu Gunasekara 8d04598d33 Merged PR 616796: [Github Issue] Building bxl fails with missing VisualCppTools NuGet package
- Update MSVC package to 14.16.27034
- Update internal feed to use VisualCppTools.Internal.VS2017Layout from devdiv feed.
- Update external build instructions to get user to download visual studio build tools manually.
- Add Qspectre flag to msvc.
- Ignore some newer warnings being hit on windows sdk source files.

Related work items: #1846018
2021-07-14 21:21:37 +00:00
Marcelo Lynch d6910fb7a9 Merged PR 619562: Increase retry count in integration tests
Some integration tests in the Part B validation now can make two workers fail intentionally -- failed pips in both workers should be retried.
2021-06-24 02:09:01 +00:00
Marcelo Lynch b114ff7762 Merged PR 616549: Add an orchestrator-side pip timeout period for remotely scheduled pips
Implement a timeout for pip results to come back from workers. If after 5.25 hours we don't hear back from a pip, disconnect the worker. Also adds an integration test to exercise the behavior.

The 5.25 hour default is chosen because our longest pip timeouts are set to 5h for some queues, and this is meant to be a failover that kicks in when we lost the pip result for some reason.
2021-06-23 22:51:29 +00:00
Sergey Tepliakov 5e4ad300cf Merged PR 616907: Apply custom assembly binding redirect for System.Memory assemblies
Apply custom assembly binding redirect for System.Memory assemblies
2021-06-08 18:15:38 +00:00
Juan Carlos Guzman Islas cc370b460b Merged PR 611470: Apply binding redirect manually for OSGTools
Apply binding redirect manually for OSGTools
2021-05-04 00:21:02 +00:00
Juan Carlos Guzman Islas 1bf081ebd8 Merged PR 589917: Start using Span<T> for Vso0 hash
Started using Span<T> where possible. For the first iteration of improvements, integrated the usage of Span<T> to the VSO0 hasher.

Unfortunately, the APIs that make this possible only exist for netcore, so an `#if` was required.

Here are the results of the improvement (meassured using BenchmarkDotNet and included other hash types for reference):

TL;DR: Memory usage for VSO0 was greately decreased and is now O(1).

Benchmark code: https://gist.github.com/JuanCarlosGI/effa599c286a1b8fcfb3f8b05e5b4cae

Before:
| Method |  SizeBytes | HashType |            Mean |         Error |        StdDev | Gen 0 | Gen 1 | Gen 2 | Allocated |
|------- |----------- |--------- |----------------:|--------------:|--------------:|------:|------:|------:|----------:|
|   Hash |       1024 | Dedup64K |        12.82 us |      0.140 us |      0.117 us |     - |     - |     - |     632 B |
|   Hash |       1024 |   SHA256 |        10.68 us |      0.204 us |      0.181 us |     - |     - |     - |     192 B |
|   Hash |       1024 |     Vso0 |        15.59 us |      0.314 us |      0.385 us |     - |     - |     - |     832 B |
|   Hash |    1048576 | Dedup64K |     3,722.62 us |     73.686 us |    112.527 us |     - |     - |     - |    5088 B |
|   Hash |    1048576 |   SHA256 |     4,460.21 us |     87.853 us |     86.284 us |     - |     - |     - |     192 B |
|   Hash |    1048576 |     Vso0 |     4,595.16 us |     64.928 us |     57.557 us |     - |     - |     - |    2992 B |
|   Hash | 1073741824 | Dedup64K | 3,724,440.25 us | 11,676.096 us | 10,921.827 us |     - |     - |     - | 3166336 B |
|   Hash | 1073741824 |   SHA256 | 4,445,747.54 us |  8,232.586 us |  7,700.766 us |     - |     - |     - |     192 B |
|   Hash | 1073741824 |     Vso0 | 4,573,788.95 us | 10,057.379 us |  9,407.679 us |     - |     - |     - | 2548032 B |

After:
| Method |  SizeBytes | HashType |            Mean |         Error |        StdDev | Gen 0 | Gen 1 | Gen 2 | Allocated |
|------- |----------- |--------- |----------------:|--------------:|--------------:|------:|------:|------:|----------:|
|   Hash |       1024 | Dedup64K |        12.92 us |      0.255 us |      0.332 us |     - |     - |     - |     632 B |
|   Hash |       1024 |   SHA256 |        10.77 us |      0.192 us |      0.228 us |     - |     - |     - |     192 B |
|   Hash |       1024 |     Vso0 |        15.12 us |      0.300 us |      0.485 us |     - |     - |     - |     560 B |
|   Hash |    1048576 | Dedup64K |     3,703.92 us |     59.415 us |     49.615 us |     - |     - |     - |    5088 B |
|   Hash |    1048576 |   SHA256 |     4,413.44 us |     66.234 us |     61.955 us |     - |     - |     - |     192 B |
|   Hash |    1048576 |     Vso0 |     4,563.11 us |     88.906 us |     83.163 us |     - |     - |     - |     560 B |
|   Hash | 1073741824 | Dedup64K | 3,671,089.55 us | 22,499.938 us | 21,046.456 us |     - |     - |     - | 3164944 B |
|   Hash | 1073741824 |   SHA256 | 4,401,292.67 us | 32,...
2021-04-19 19:07:39 +00:00
Juan Carlos Guzman Islas 95ec4ae048 Merged PR 606254: Add microsoft-internal Microsoft.Caching.Redis NuGet package
Add microsoft-internal Microsoft.Caching.Redis NuGet package. This is a fork of the StackExchange.Redis repo. There should be no breaking changes, other than renaming the namespace `StackExchange.Redis` to `Microsoft.Caching.Redis`

Related work items: #1822916
2021-04-13 17:40:21 +00:00
Aleksandar Milicevic 112631c669 Merged PR 605607: Disable Gvfs/Clone configuration for GVFS tests in CloudTest
Disable Gvfs/Clone configuration for GVFS tests in CloudTest
2021-03-30 01:52:11 +00:00
Juan Carlos Guzman Islas d3ad32f9b2 Merged PR 593021: Manually add IcM dependencies that don't get automatically added with netcoreapp3.0
When testing, I had used net472 to be able to use VS to run tests manually. This time, when using BXL to test using netcoreapp3.0, I was able to debug deployment problems.
2021-01-14 01:11:50 +00:00
Juan Carlos Guzman Islas 889440d387 Merged PR 586105: Add IcM client to the monitor
Add Icm client to the monitor

Related work items: #1762976
2020-11-24 00:22:26 +00:00
Serge Mera deff90ed18 Merged PR 583165: Make sure file replication search happens under the test solution root
A findstr was being performed as part of PartB that was scanning the whole BuildXL root instead of the test cone. This eventually caused an OOM when the repo + outputs became large enough.
2020-11-04 01:08:40 +00:00
Iman Narasamdya 8936e2d308 Merged PR 580761: Support untracked scopes/paths in output directories
All changes in sandbox area are cosmetics. Please ignore.

Related work items: #1782665
2020-10-21 21:57:05 +00:00
David Wright 092c1f9ea7 Merged PR 574812: Copy System Prototype
Copy System Prototype
2020-09-17 07:48:20 +00:00
Oleksii Kononenko e67c0e4f33 Merged PR 573380: Update NodeJs and consume it from a public feed
Change NodeJs version to appease Component Governance.

Internally, we rely on private repackaged NodeJS, but it has not been updated in a while. So this PR makes everyone consume the public version (from nodejs.org).

Related work items: #1766547, #1766548
2020-09-10 05:33:48 +00:00
Iman Narasamdya 705f6934ec Merged PR 571695: Refine supersession tracking in file change tracker
Let P be a pip that has output directory D. After execution, P will have some nested directory created underneath D, say D\E.

1. Execute P, expect cache miss.
2. Modify P's input, and execute P again, expect cache miss.
3. Execute P, expect not scheduled, but it is scheduled.

The reason why P gets dirty in the 3rd build is because the deletion of D\E before P is executed in the 2nd build. D\E is a directory and is not superseded.

This change introduces a mode that can be used to supersede all subpaths, instead of file paths. To be on the safe side, the superseding of container path is only used if the change is directory deletion. If the change is rename, then superseding is not used in order to avoid orphaning tracked children.

To be effective, we try to avoid doing renaming as much as possible. This is done by forcing posix delete.

Users can go back to the legacy behavior (if problematic) using `/fileChangeTrackerSupersedeMode:FileOnly`. Or if posix delete is causing problem, then `/posixDeleteMode:RunLast`.

Related work items: #1764535
2020-08-31 23:46:11 +00:00
Aleksandar Milicevic 3fe847d9de Merged PR 564435: Update .NET Core runtime to 3.1.6
This version contains some important security patches
2020-07-16 20:03:05 +00:00
Kristijan Simic 44e83f6d27 Merged PR 562374: Detours ReparsePoint target resolver caching
Introduced ReparsePoint target resolver caching per process for junctions and symbolic links in detours.
2020-07-15 15:08:17 +00:00
Serge Mera 8b76936efe Merged PR 562541: Add Yarn integration tests
Add Yarn integration tests and factor out some common logic between Rush and Yarn tests

Related work items: #1742851
2020-07-08 18:04:27 +00:00
Semih Okur d9af78fa9f Merged PR 562375: Chromium tracer for BuildXL
We emit BuildXL.trace file in the logs directory, which can be loaded by Chromium tracing (chrome://tracing, edge://tracing).

![tracer.PNG](https://dev.azure.com/mseng/9ed2c125-1cd5-4a17-886b-9d267f3a5fab/_apis/git/repositories/50d331c7-ea65-45eb-833f-0303c6c2387e/pullRequests/562375/attachments/tracer.PNG)

Related work items: #1736098
2020-07-07 06:27:12 +00:00
Michael Pysson 2fc99d47c7 Merged PR 560298: Additional Allowlist renames 2020-06-25 20:42:06 +00:00
Rijul Luman a4417feea4 Merged PR 555819: Retry for PipProcessStartFailed and PipTempDirectoryCleanupError
Related work items: #1720194, #1720204
2020-06-20 00:23:55 +00:00
Serge Mera 69e6aca98b Merged PR 558490: Remove implicit project reference semantics field on module configuration files
It's been the default for a long time
2020-06-15 18:46:10 +00:00
Semih Okur d4f907f622 Merged PR 554510: Introduce options to decouple materialize slots from process slots
- Releasing resources before PostProcess step and just after Execute step.
- We do not choose a worker if there are available slots, but the materialize queue is full.
- PostProcess running in the CacheLookup queue instead of Materialize.
- An option to disable load-balancing among workers.

Related work items: #1707218, #1720422
2020-05-31 21:21:16 +00:00
Aleksandar Milicevic aaf9c9c639 Merged PR 555087: Update GVFS tests to use GVFS 0.3.20147.1 2020-05-28 15:42:54 +00:00
Aleksandar Milicevic ee9e0d03bc Merged PR 552766: GVFS directory membership tests
GVFS directory membership tests
2020-05-15 14:38:35 +00:00
Juan Carlos Guzman Islas 45c5b695f9 Merged PR 551636: Unrevert "Dedup drop" and upgrade ADO packages
Re-enable dedup drop and upgrade AzDevOps packages to versions that work on CloudBuild
2020-05-08 16:46:14 +00:00
Juan Carlos Guzman Islas e852b81fcf Merged PR 550946: Revert "Merged PR 545943: Dedup drop"
Revert "Merged PR 545943: Dedup drop"

This reverts commit b1ba48cd45.

New drop is causing issues in CB. Reverting until we get a new version of drop with the fix.
2020-05-05 20:43:29 +00:00
Aleksandar Milicevic b969e1501f Merged PR 550256: Fix GVFS tests
- all tests in `BasicGvfsOperationTests` run against both a git and a gvfs repo
  - when running against a gvfs repo, run both against an existing repo and a freshly cloned one
  - when running against a gvfs repo, assert that the `.gvfs/GVFS_projection` file changed when actual source files have pending unmaterialized changes

Related work items: #1694134
2020-05-02 01:59:15 +00:00
Juan Carlos Guzman Islas b1ba48cd45 Merged PR 545943: Dedup drop
Related work items: #1374816
2020-04-29 17:32:53 +00:00
Danny van Velzen 776597080e Merged PR 548016: Initial set of CloudTest Tests for Gvfs
Initial set of CloudTest Tests for Gvfs

To prep your machine to run locally:
1) Install git 4 windows
2) Install Gvfs

To build:
```
bxl /f:output='out\bin\cloudtest\*'
```
To run, execute the following in an **elevated** shell:
```
Out\Bin\CloudTest\debug\Gvfs\RunTests.cmd
```
2020-04-28 16:51:39 +00:00
Sergey Tepliakov 6b2628b5b4 Merged PR 547262: Enable C# compiler's strict mode
The C# compiler supports a strict mode, the mode that was design to emit extra diagnostics for existing code and not break existing customers. The classical example is definitely assignment checks when all the public members are removed because the type is used via reference assemblies (we hit this case actually with `RelativePath`), or when a value type can be used for doing locks (we hit it as well).

Related work items: #1710763
2020-04-23 16:49:17 +00:00
Danny van Velzen 2fe8a35f1a Merged PR 545075: Setup script for git and gvfs
Setup script for git and gvfs
2020-04-22 22:54:00 +00:00
Aleksandar Milicevic a2875ae5ad [linux] changes needed for selfhost build
Various small changes that allow building selfhost with BuildXL on Linux.

What's missing:
  - downloading nugets
  - remote telemetry
  - bond.csharp tool (`gbc`) for Linux (needs to be built from sources and published as a new nuget)
  - rush stuff

If (1) nugets are first downloaded manually, and (2) `gbc` is manually replaced with a Linux binary, building minimal selfhost on Linux works.
2020-04-21 18:21:00 +00:00
Danny van Velzen 5b375307f1 Merged PR 543783: Enable first basic filetest using Journal
Enable first basic filetest using Journal
2020-04-06 21:51:17 +00:00
Kristijan Simic ba51325c8f Merged PR 543621: [macOS] Interposing / Hybrid sandbox implementation
This PR introduces two new sandboxing modes for macOS based systems: `macOSDetours` and `macOSHybrid`. The former does process sandboxing exclusively through DYLD (dynamic library loading) injection the former uses DYLD and EndpointSecurity in combination to battle the currently lossy EndpointSecurity implementation. Having a detours like DYLD sandbox helps when testing and iterating new approaches quickly. The sandboxing layer has been reworked to support generic sandboxing events (read non kext-based sandbox reports) and hand them over to BuildXL.

Related work items: #1532977, #1669177, #1679422
2020-03-30 23:14:27 +00:00
Danny van Velzen 02bbc35e10 Merged PR 543058: Setup infrastructure to run CloudTests tests that run during our CI as well as can run in our PR validation.
This PR will finish the instrastruture needed to run tests in cloudtest from our repo.
* There is an optional CloudTest validation step in the PR. Currently called `CloudTest validation (Gvfs)`.
  - If we do anything to the change detection logic we should manually run this.
* If you change anything under the CloudTest folder a sibbling validation will be automatically kicked off and is marked required called `CloudTest validation (Gvfs) - Required`
* There is a validation step in our CI between the Dogfood and Canary stages called `Cg: CloudTest validation (gvfs)`
  - This one is currently marked as optional until we have enough confidence in the signal and can make it required.

The infrastructure has been set up in that it is not just for Gvfs validation. Future CloudTest tests can simply be added as a sibbling under the `private\CloudTest` folder following the gvfs tests pattern and following the user guide on `http://aka.ms/CloudTest` on how to edit the xml files.
If we add more  I would recommend naming the queue and the jobs in the pr validation and CI to reflect this.
2020-03-27 03:21:00 +00:00
Danny van Velzen 008e7dbfc9 Merged PR 542306: Add a simple cloudtest entry point
This PR adds a cloudtest definition so while writing the tests I can try to setup the infrastructure to execute the cloudtest runs in CI and from PR.
2020-03-20 20:57:13 +00:00
Danny van Velzen c8732e990b Merged PR 539767: Make it clear there are no false positivies in the test output
Make it clear there are no false positivies in the test output
2020-03-06 18:42:52 +00:00