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

100 Коммитов

Автор SHA1 Сообщение Дата
Serge Mera 38bf05d6df Merged PR 802937: [Draft] Use Azure build cache for linux distributed tests
Use Azure build cache for linux distributed tests
2024-08-30 22:27:06 +00:00
Marcelo Lynch 🧉 1c036b601f Merged PR 785734: Use new cache miss analysis mode on ADO selfhost builds 2024-05-17 21:51:54 +00:00
Qi Wang c741888d2d Merged PR 783808: Fix ubuntu 22.04 yml format error
Fix ubuntu 22.04 yml format error
2024-05-08 18:12:46 +00:00
Serge Mera 6ef7c5a282 Merged PR 783526: Move selfhost builds to a common pool
Use a new common pool BuildXL-DevOpsAgents-Selfhost for both Windows and Linux runs. This is a pre-requisite step to be able to enable network isolation and use a common firewall for all runs.
2024-05-07 21:42:25 +00:00
Qi Wang cba37d61fc Merged PR 781947: Rename linux stages template yml
Rename linux stages template yml
2024-04-27 00:29:34 +00:00
Qi Wang 7983e2242e Merged PR 781449: Add Linux PR Validation run on Ubuntu 22.04
Add a yml for Linux PR Validation run on Ubuntu 22.04 image. I make the Pool a parameter and move the stages into a template.
2024-04-26 20:11:24 +00:00
Iman Narasamdya 8486f056ce Merged PR 781231: Only run compliance build in PR validation
This PR makes us enable compliance build only in Linux PR validation.

Ideally, we should only enable source analyses in the rolling pipeline. However, because our rolling pipeline contains CB builds, SDL source analyses are all disabled, in favor of the CB compliance build. Unfortunately, some analyses, like policheck, do not work in network isolation when building in CB.

SDL source analyses typically take 2.5-4 minutes, and should not be in the critical path of this Linux pipeline run.
2024-04-25 21:27:14 +00:00
Iman Narasamdya 18e99480c2 Merged PR 779944: Eradicate PAT uses in package consumption/publishing/promotion
Eradicate PAT uses in package consumption/publishing/promotion

Related work items: #2168961
2024-04-17 20:34:39 +00:00
Marcelo Lynch 🧉 4d41bb673c Merged PR 775363: Use release version of 1ESPT
Use release version of 1ESPT
2024-03-25 22:41:21 +00:00
Oleksii Kononenko da67e1d298 Merged PR 774575: Make Net8 default qualifier
Make Net8 default qualifier

Related work items: #2156466
2024-03-21 22:06:06 +00:00
Marcelo Lynch 🧉 72ac0e3e30 Merged PR 772709: Use 1ESPT with BuildXL workflow throughout our Linux validations
Add a `bxl_ado.sh` script that can interpret the command line given by 1ESPT (notably, AdoBuildRunner arguments are separated by `--`, and we use `--runner-arg` in our bash scripts to process these), and migrate all our selfhost builds to use 1ESPT with automatic cache config generation.
2024-03-21 18:25:16 +00:00
Marcelo Lynch 🧉 9351713417 Merged PR 772560: Change 1ESPT BuildXL parameters after schema changes
Change 1ESPT BuildXL parameter after schema changes
2024-03-12 19:19:35 +00:00
Oleksii Kononenko 33c5358e02 Merged PR 771190: Use net8 bits for linux PR validation
Use net8 bits for linux PR validation
2024-03-07 23:16:05 +00:00
Serge Mera 51dc4b154c Merged PR 763946: Enable sending cache logs to kusto for the bxl selfhost
Enable sending cache logs to kusto for the bxl selfhost
2024-01-27 02:03:54 +00:00
Marcelo Lynch 🧉 eaa9324373 Merged PR 762088: Set continueOnError: true for distributed workers on Linux Internal PR validation
Don't fail the pipeline if only the worker job fails
2024-01-19 17:34:04 +00:00
Marcelo Lynch 🧉 fc7aeecf84 Merged PR 755066: Update distributed validation to not upload logs manually
My last PR was updating a file that is no longer in use
2023-12-04 22:08:39 +00:00
Marcelo Lynch 🧉 21f723aae7 Merged PR 755045: Update distributed validation to not upload logs manually
The task that uploads logs is automatically added by 1ESPT
2023-12-04 20:28:36 +00:00
Marcelo Lynch 🧉 84a8ae1dea Merged PR 753269: [Linux PR validation] Make public validation fully public and use 1ESPT for distributed build
- Make the public validation public end-to-end, by building a public engine and then using that to run tests (also without passing `--internal`)
- Use the 1ESPT build job for the distributed build test. We're still keeping the old YML for backup, but it becomes unused.
- Note that using 1ESPT for our own selfhost is not possible due to how we invoke `bxl.sh`, that's why that one still adds the worker stage manually.
2023-11-28 23:20:17 +00:00
Marcelo Lynch 🧉 574ca063a4 Merged PR 753249: Make Linux PR validations write to the L3 cache
Make Linux PR validations write to the L3 cache
2023-11-22 21:27:27 +00:00
Serge Mera 8f0a0dabdb Merged PR 751033: Use the ado runner cache config generation for our selfhost Linux validations
Use the ado runner cache config generation for our selfhost Linux validations:
* Remove the explicit generation of a cache config for the ado build runner (distributed) case
* Use the new ado build runner functionality and let it generate one (ephemeral, datacenter wide, as we are currently dogfooding)
* Make internal build distributed (main reason is to keep dogfooding the ephemeral cache with a more real-life build). The explicit distributed clean build with a 2-pip build remains as is.
2023-11-22 17:47:24 +00:00
Marcelo Lynch 🧉 11f94ac9a3 Merged PR 751537: Restructure the Linux PR validation
- Only build the engine that will be under test once, and then consume from the different validations via pipeline artifacts, instead of doing it once per validation
- Modularize the YAMLs by moving shared tasks to a common file
- Add some dependencies between the stages to short-circuit failures: namely, run the PTrace validation only after the public and
- The internal validation is now single machine, in favor of validating distribution with a small two-pip build at the end
- Add a validation that runs a small distributed build consisting of two pips, one of which is forced to run on a remote worker. This runs at the end of the validation
2023-11-15 22:30:09 +00:00
Serge Mera 913b251c47 Merged PR 748532: Enable data center wide ephemeral cache for bxl linux validation
Let's dogfood the data center wide flavor of the ephemeral cache. Use the ephemeral cache as well for the ptrace validation (with a different universe, just to keep those two validations from interacting with each other)
2023-10-27 23:46:53 +00:00
Iman Narasamdya ac8d185735 Merged PR 748328: Upgrade XUnit
The purposes of upgrading XUnit are twofolds:
1. To use the latest greatest XUnit packages.
2. As an attempt to relieve hanging XUnit pips.

For (2), we also do other changes:
- Split Ninja UTs to multiple "smaller" pips, where each pip should run faster than the big one.
- Limit the number of xunit pips that can run in parallel by using semaphore. We suspect that the hanging XUnit pips are caused by too many XUnit pips running in parallel.

Example of successful validation: https://dev.azure.com/mseng/Domino/_build/results?buildId=23035493&view=results

Related work items: #2111327
2023-10-27 20:41:18 +00:00
Marcelo Lynch 🧉 d5dab3da24 Merged PR 747656: Use a worker-stage in the Linux PR distributed validation
Finally abandon the parallel workers approach for the Linux PR validation, instead, use a stage for the workers. This is  more representative of both "worker pipelines" used in production and the future of 1ESPT distributed builds.
2023-10-25 16:29:11 +00:00
Marcelo Lynch 🧉 7256583200 Merged PR 747091: Use full hostname for agents in ADO distributed builds
Hostname resolution stopped working when removing the private subnet we were using to run distributed builds. It turns out that DNS resolution in the "default network" needs the hostnames to be qualified with a domain (https://learn.microsoft.com/en-us/azure/virtual-network/virtual-networks-name-resolution-for-vms-and-role-instances).

This PR adds an option (to be set by the AdoBuildRunner) so we can inject the correct hostnames in the build, without changing how this works for CloudBuild (where Dns.GetHostName works)

Related work items: #2116072
2023-10-24 23:22:43 +00:00
Sahiti Chandramouli b969bbf3c3 Merged PR 746839: UnSet forceAddExecutionPermission flag
remove flag
2023-10-19 23:56:38 +00:00
Marcelo Lynch 🧉 7cb3c73fbe Merged PR 746692: Temporarily disable distribution in Linux PR validations
It's broken after we switched pools. Investigating, but it's wasteful to keep spinning up idle workers
2023-10-19 18:16:04 +00:00
Serge Mera 587286c614 Merged PR 746678: Run BuildXL with a 60m timeout for the Linux validation
Wrap the bxl call for the Linux public & internal selfhost PR validation with a 60m timeout. This should allow us to get logs uploaded if BuildXL hangs for any reason.
2023-10-19 17:43:46 +00:00
Marcelo Lynch 🧉 224e6fedf8 Merged PR 746347: Remove 1ESPT breakglass bypass on Linux validation
We needed this because we were using a stateful pool, but we have moved to a stateless one now. The "justification" doesn't actually describe anything related to what this breakglass was accomplishing.
2023-10-18 22:30:03 +00:00
Sahiti Chandramouli b14a458854 Merged PR 746110: Set the forceAddExecutePermissions flag until the new LKG is updated
Set this flag till we run our new LKG
2023-10-17 18:13:06 +00:00
Sahiti Chandramouli 0c35ece51c Merged PR 744599: Ensure execute permissions bit is set for destination file for copy file pip scenarions
This PR covers two use cases.
Case 1 : The content source is already in the cache, so the execution of the copy file is simply materializing the content from the cache to the specified target.

Case2 : When the source of the copyfile pip is a source file.

Case3: When the source of the copy file pip is a symlink.

Previous draft PR
https://dev.azure.com/mseng/Domino/_git/BuildXL.Internal/pullrequest/744302?path=/Public/Src/Utilities/Storage/FileMaterializationInfo.cs
2023-10-16 23:50:17 +00:00
Marcelo Lynch 🧉 0914b01f39 Merged PR 744993: Consolidate BuildManagers in AdoBuildRunner
As of today we have two distinct ways of running distributed builds on ADO: the original model, where all build agents run the same job and are multiplied with the parallel strategy, and the worker pipeline model, where a second pipeline is triggered where all agents run as workers, and a single agent runs a build in the original pipeline (as an orchestrator).

The two approaches were using different ways to coordinate the distributed build (namely, communicating the relevant build information such as build id and orchestrator location), so we had two "BuildManager" classes which were instantiated for the different scenarios. But the fact is that we can use the same pre-build coordination in both scenarios: this PR consolidates this into a single `BuildManager` class which corresponds to the up-until-now called `WorkerPipelineBuildManager`. This communicates the information via the build properties of the orchestrator build (which for the "parallel agents" scenario is the exact same build as the workers, but for the "worker pipeline" scenario).

Note that the "parallel agents" scenario is only used internally for our selfhost validations. The PR includes the only change needed in the Linux validation YAML to accommodate this consolidation (passing an invocation key is now required).
2023-10-14 02:53:55 +00:00
Serge Mera de4888cd4d Merged PR 744326: Use linux stateless pool
Use linux stateless pool to mitigate DFA issue (theory: cancellations leave some shared opaque outputs unmarked, then next build finds those, and rsync has an incremental behavior where copies are avoided)
2023-10-09 19:09:17 +00:00
Sahiti Chandramouli 49a0cf25c0 Merged PR 743048: Revert - Pass forceAddExecutionPermission flag for selfhost builds
Revert "Pass forceAddExecutionPermission flag for selfhost builds"

This reverts commit 6a046796e4deed03362d9e94744bf6f9d7f56b41.
2023-10-03 22:33:19 +00:00
Serge Mera 6d1ecff2e3 Merged PR 743011: Extend L3 used for the selfhost PR validation to 6 days
Extend L3 used for the selfhost PR validation to 6 days
2023-10-03 22:02:39 +00:00
Sahiti Chandramouli 449e02cb45 Merged PR 742942: Pass forceAddExecutionPermission flag in the linux pipeline
Passing this flag to enable changes from this PR
https://dev.azure.com/mseng/Domino/_git/BuildXL.Internal/pullrequest/741487
This will give us more debugging information.
2023-10-03 19:36:30 +00:00
Sahiti Chandramouli e855dfe58a Merged PR 741487: Make execute permission configurable and disable it for BXL internal repo
Introduced a flag to  enable/disable explicit setting of the execute permissions bit for the root process in linux builds.
Added a condition to explicitly set this bit for node and dotnet in the extractor.
This is done to obtain more information about the linux permissions bug.

Related work items: #2104538
2023-10-03 02:09:45 +00:00
Julian Bayardo 5b3deec8d6 Merged PR 741521: Revert 'Disable remote cache on Linux PR validation'
Our PRs are blocked due to cache issues presumably caused by using the ephemeral cache.

Reverts !740806
2023-09-26 20:33:32 +00:00
Marcelo Lynch 🧉 005f3962b2 Merged PR 740806: Turn off ephemeral cache for Linux PR validation
Our PRs are blocked due to cache issues presumably caused by using the ephemeral cache.
2023-09-22 20:35:17 +00:00
Serge Mera 873aeed44f Merged PR 735650: Add salt to both Windows and Linux PR to address a cache poisoning issue
Add salt to both Windows and Linux PR to address a cache poisoning issue

----
## AI-Generated Description
This change adds a new condition to the **bxl.ps1** and **bxl.sh** scripts that checks if the user-provided arguments contain the `/p:BUILDXL_FINGERPRINT_SALT` parameter. If not, it adds this parameter with the value `casingPR` to the arguments passed to the BuildXL executable. This is done to force a salt for the cache fingerprinting, because a previous PR introduced some casing issues that polluted the cache. This change can be removed once the poisoned content is evicted from the cache.
2023-08-28 20:46:44 +00:00
Michael Pysson 55db838131 Merged PR 735393: Rev fingerprint salt of Linux PR pipeline to deal with bad rsync entry
Rev fingerprint salt of Linux PR pipeline to deal with bad rsync entry

----
## AI-Generated Description
This change modifies the **job-selfhost.yml** file by updating the fingerprint salt for the distributed build. The fingerprint salt is a value that affects the content hash of the build inputs and outputs, and changing it can help invalidate the cache and force a rebuild. The change also removes the `/historicMetadataCache-` flag from the bxl command line, which disables the use of the historic metadata cache that can speed up the build by reusing previous results.
2023-08-25 23:23:29 +00:00
Marcelo Lynch 🧉 3e5b8b5973 Merged PR 734466: [Linux PR validation] Use managed identity authentication to the blob cache 2023-08-22 19:50:20 +00:00
Oleksii Kononenko 29e8bba8b3 Merged PR 731164: Bump fingerprint salt in linux pr pipeline
Updated job-selfhost.yml

Related work items: #2073919
2023-08-02 22:30:08 +00:00
Julian Bayardo c2b4f881ea Merged PR 729613: Run PR validation with Ephemeral cache 2023-07-25 23:42:38 +00:00
Serge Mera 3de7f8576d Merged PR 723530: Use blob L3 cache for linux selfhost builds
Use a blob backed L3 cache for linux selfhost builds. The retention period is now configured to be 1 day as a way to stress test the eviction mechanism. Something like 3 or 4 days will probably be more reasonable after we are done testing this feature.

Related work items: #2074180
2023-06-15 22:29:34 +00:00
Marcelo Lynch 🧉 d88e82796f Merged PR 722709: Separate Linux PR validation in stages
This makes "Retry failed jobs" better when a distributed build fails
2023-06-12 22:36:59 +00:00
Michael Pysson d8765f7e3b Merged PR 722746: Rev fingerprint of linux PR yaml to mitigate execute bit but
Rev fingerprint of linux PR yaml to mitigate execute bit but
2023-06-12 22:14:49 +00:00
Pasindu Gunasekara 🍣 56c3c2e59c Merged PR 715831: Add ptrace validation step to Linux PR pipline
Related work items: #2036614, #2045315
2023-06-07 17:04:49 +00:00
Serge Mera cfe393e12d Merged PR 715214: Remove default arguments for sending logs to kusto
Remove default arguments for sending logs to kusto
2023-04-26 22:35:02 +00:00
Serge Mera d0df227450 Merged PR 713776: Add an option to send logs to Kusto
This change adds a /logToKusto option to send all log lines to a kusto database (in the same way today this happens for DominoMessage on CB). The primary scenario for enabling this option is ADO builds.

In order to authenticate, the pipeline running the build needs to provide a managed identity that we need to authorize. 1eshp allows for associating a managed identitie to a pipeline, so that's pretty straightforward.

Docs (on EngHub, since the flow today is mostly tied to 1eshp) to follow.

*Note*: this PR needs a fix in the nuget generation logic that is already in, but it needs to become part of the LKG, so we'll get failures till that happens

Related work items: #2047667
2023-04-26 20:25:51 +00:00