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

47 Коммитов

Автор SHA1 Сообщение Дата
Pasindu Gunasekara 🍣 9b21a7f8bc Merged PR 772888: Only generate a new CG manifest for internal builds on Linux
- This CG manifest file is for internal builds, this arg unnecessarily changes the cg manifest for public builds.
2024-03-13 22:48:43 +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
Pasindu Gunasekara 🍣 b13dd0c5db Merged PR 763090: Fix VS solution generation for Linux
- "old" solution generator has some out of date checks for csc pips
2024-01-23 23:16:41 +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
Pasindu Gunasekara 🍣 05908225df Merged PR 751679: Fixes for npm install on local Linux builds 2023-11-14 18:33:24 +00:00
Pasindu Gunasekara 🍣 698fc7d721 Merged PR 749185: Add npmrc for internal buildxl package feed
- Adds two new npmrc files:
  - .internal-npmrc can be used with cloudbuild or vsts-npm-auth to generate a token locally
  - .ci-npmrc is  used for ADO builds using an environment variable to store the token
- vsts-npm-auth does not support non-Windows platforms, so we need to manually do what it does on bxl.sh
- TODO: once merged, enable npm authentication on CloudBuild for bxl PR and rolling queues.

Related work items: #2115724
2023-10-31 22:34:44 +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
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
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
Pasindu Gunasekara 🍣 364512e057 Merged PR 720520: Set PATs only for internal Linux builds on ADO 2023-05-30 23:31:39 +00:00
Michael Pysson 3993dfdecc Merged PR 712948: Remove detached cgmanifest flag from bxl.sh
CG manifest generation is on by default. Remove the flag that isn't wired up to anything anymore
2023-04-14 17:15:20 +00:00
Serge Mera 4c281a1e41 Merged PR 706466: Add --release option to bxl.sh
Add a --release option to bxl.sh. This works as an orthogonal configuration option for all the existing build options (e.g. ' --minimal --release' , or '--deploy-dev --release'. Default is still debug.
2023-03-10 01:44:21 +00:00
Michael Pysson 2edf854e9f Merged PR 690151: Enable CG manifest generation for nuget packages on Linux
Enable CG manifest generation for nuget packages on Linux

Related work items: #2010782
2023-02-17 23:53:42 +00:00
Michael Pysson 4caf5c29d1 Merged PR 702937: Disable experimental shared opaque deletion in linux build
This mode is problematic. Disable it for now.

Also enable cache miss analysis for local dev builds
2023-02-17 23:24:32 +00:00
Oleksii Kononenko e433555c09 Merged PR 691112: Place user-specified args at the end of a command line when running on Linux
Place user-specified args at the end of a command line when running on Linux

Related work items: #2007266
2022-12-03 01:22:16 +00:00
Michael Pysson 85fcf85376 Merged PR 689849: Preserve log history in linux
Preserve log history in linux
2022-11-21 19:28:18 +00:00
Pasindu Gunasekara 🍣 2c1dde3a47 Merged PR 680445: Retry XUnit tests on Linux public builds 2022-09-20 23:50:32 +00:00
Serge Mera 2a10500a65 Merged PR 680484: Always download the cred provider on ADO
Always download the cred provider on ADO
2022-09-20 23:21:31 +00:00
Marcelo Lynch 🧉 2177c23049 Merged PR 679968: Add --use-adobuildrunner option to bxl.sh 2022-09-16 19:04:33 +00:00
Pasindu Gunasekara 🍣 ad4f2a91b6 Merged PR 679437: Retry xunit tests under Linux on ADO 2022-09-14 17:42:32 +00:00
Aleksandar Milicevic 19d4c23faf Merged PR 672509: Migrate 'Linux PR Validation' pipeline to 1es templates
Migrate 'Linux PR Validation' pipeline to 1es templates
2022-08-02 19:49:04 +00:00
Serge Mera 5578856a34 Merged PR 671891: Track source rewrites on Linux
Make sure we produce the same special sandbox event on both Windows and Linux when a source rewrite is detected. Enable related unit tests for Linux as well.
2022-07-26 22:35:48 +00:00
Aleksandar Milicevic 82a0d5a450 Merged PR 667615: Build Linux runtime binaries with bxl
Build Linux runtime binaries with bxl.

Enable public validation (i.e., without `--internal`)
2022-06-23 18:09:52 +00:00
Aleksandar Milicevic df2b043079 Merged PR 666326: Disable a bunch of tests to make Linux validation pass
Disable a bunch of tests to make Linux validation pass
2022-06-15 00:02:24 +00:00
Serge Mera 78a2589ef3 Merged PR 665754: Configure credential provider for linux ADO builds
Configure credential provider for linux ADO builds
2022-06-09 22:42:51 +00:00
Serge Mera 9986922675 Merged PR 664427: Deal with the case of interactive cred provider auth for linux/mac builds
Deal with the case of interactive cred provider auth for linux/mac builds
2022-06-03 17:23:46 +00:00
Aleksandar Milicevic f0a82776e6 Merged PR 656467: Use cross-plat Aria logger on Linux/Mac
Changes:
- add a new NuGet dependency on `Microsoft.Applications.Events.Server` (which is the cross-plat Aria SDK)
- use that on Linux and Mac
- delete the native SDK previously used on Mac
2022-04-06 19:51:25 +00:00
Aleksandar Milicevic 1fe619f579 Merged PR 656279: Initial steps toward selfhosting on Linux
Changes:
- fix various file name capitalization errors
- fix various nuget package name capitalization errors
- create and publish `Bond.CSharp.linux-x64` nuget package
- add `/etc` to default untracked scopes
- untrack `$HOME/.dotnet` when running the `Downloader` tool
- consistently spell `App.config`

With these changes, all of the following succeed for me in Ubuntu 20.04 WSL running in Windows 11:
- `./bxl.sh --minimal`
- `./bxl.sh --minimal --internal`
- `./bxl.sh --minimal --internal --shared-comp`

Once the changes make it to LKG, the next step will be to set up a Linux pipeline to build minimal selfhost.  Later, that pipeline can be expanded to run unit tests etc.
2022-04-05 19:44:47 +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
Aleksandar Milicevic 456ba1a472 Merged PR 529582: Don't hardcode /sandboxKind:macOsKext for internal builds
Don't hardcode /sandboxKind:macOsKext for internal builds
2020-01-17 15:45:05 +00:00
Aleksandar Milicevic 93e38fbb0e Merged PR 529320: Make VS IDE generation cross-platform compatible
Make VS IDE generation cross-platform
2020-01-16 17:52:48 +00:00
Aleksandar Milicevic 8a57b3c4ac [macOS selfhost] Add switch for shared compilation; don't use native compilation
Merged PR 528634
2020-01-13 22:57:16 +00:00
Aleksandar Milicevic cb04ed7e6b Merged PR 528433: Allow bxl.sh to be sourced without executing it 2020-01-12 20:05:04 +00:00
Aleksandar Milicevic 8d3eded0b6 [Mac Selfhost] run tests together with the main build
As of now, to run tests on Mac one must sequentially do the following:
  1. run a BuildXL build that only compiles all test assemblies and creates a *standalone* test deployment
  1. run another BuildXL build from the previously created standalone test deployment that actually executes the tests

Some drawbacks of this approach:
  1. have to run 2 steps in sequence
  1. tests that are executed on Mac must be explicitly opted-in (see [tests.osx.dsc](https://dev.azure.com/mseng/Domino/_git/BuildXL.Internal?path=%2FPublic%2FSrc%2FDeployment%2FTests.Osx%2Ftests.osx.dsc&version=GBmaster&line=15&lineEnd=15&lineStartColumn=14&lineEndColumn=27&lineStyle=plain))
      - this makes it easy to forget to opt in any newly added test assemblies
  1. impossible to execute just a single test class or test method at once
  1. some SDKs (e.g., `xunit.dsc`) are duplicated between the main build and the build used for executing standalone test deployments.

The main reason for this setup was the fact that the main build and the unit tests themselves might require different versions of the MacSandbox kext to be loaded.

This PR makes it possible to compile and execute tests in a single build, matching the experience on Windows.  For example, running
```bash
./bxl.sh --internal
```
on a Mac will execute the full selfhost build, including executing all the tests.  Individual tests can still opt out of Mac (by using the existing mechanisms like `[(Class|Theory|Fact)IfSupported[requiresWindowsBasedOperatingSystem: true]`).

We already have different IDs for the release and debug configurations of the MacSandbox kext, which means we can already have different versions of the kext loaded as long as one is a 'release' and the other is 'debug'.  That makes it sufficient for the most common scenario of using a 'release' version of BuildXL to run a build in which tests are executed in 'debug' configuration.  It is also possible to execute both 'release' and 'debug' tests in a single build, but for that, a dev version of BuildXL must be built first and then used for subsequent test execution.

**Important Note**: the user is still responsible for ensuring that the necessary kexts are loaded (this needs to be done only when the kext changes; once loaded, the kexts don't need to be touched/reloaded between builds/test executions).  To load the debug version of the kext:
```bash
./bxl.sh --minimal # produces out/bin/debug/osx-x64/*
out/bin/debug/osx-x64/bxl.sh --load-kext
```

Main changes:
  - annotate Windows-only tests as such (so that they are skipped over when running on Mac)
  - fix various small platform-dependent issues (like using an appropriate directory separator char)
  - fix DScript SDK tests
  - add `--test-method` and `--test-class` switches to `bxl.sh` to correspond to `-TestMethod` and `-TestClass` in `bxl.ps1`

Once this change is merged, I'll update the PR validation pipelines and remove the code for producing the standalone test deployment.

Merged PR 526181
2019-12-27 15:52:12 +00:00
Kristijan Simic 5d05aefc79 Merged PR 525925: Avoid VisualCppTools.Community.VS2017Layout dependency download on non-windows hosts
Avoid getting VisualCppTools.Community.VS2017Layout on non-windows hosts.
2019-12-24 02:12:31 +00:00
Aleksandar Milicevic 479c7121d9 Make shared opaque directories in selfhost amenable to lazy scrubbing
Related work items: #1608015
Merged PR 524521
2019-12-16 19:01:14 +00:00
Aleksandar Milicevic 683881171e
Release FileAccessMemory after starting the process (#1182) 2019-11-09 15:44:29 -08:00
Michael Pysson 4b623c3a85
Update macOS Developer Guide for XCode version (#1107) 2019-10-28 10:20:31 -07:00
Aleksandar Milicevic fc32417369
Atomic update of the LKG and the generated nuget/cgmanifest.json (#980)
The new LKG contains changes to how nuget/cgmanifest.json is generated. To avoid breaking our validation, the LKG and the generated nuget/cgmanifest.json must be updated together (this is a one-off manual update).
2019-10-02 10:13:24 -07:00
Aleksandar Milicevic d07abcb223
Make CG manifest generation uniform across platforms (#958) 2019-09-30 12:55:25 -07:00
Kristijan Šimić 4fc72d9f2e
Allow macOS sandbox implementation to be configurable (#785)
* Make macOS sandbox type configurable
2019-08-22 20:17:10 +02:00
Aleksandar Milicevic 42a34b503d
Change BuildXLLkgVersion.cmd to use win-x64 instead of net472 (#344) 2019-05-21 08:06:51 -07:00
James Swineson bbabae3f5d Fix path issue under macOS (#169) 2019-04-19 11:06:55 -07:00
dannyvv 18e9913696
Remove diagnostic flag from bxl.sh for mac (#79) 2019-04-02 18:15:42 -07:00
Kristijan Šimić 7fecf8a5ca
Public LKG builds on macOS (#59)
* Adjust tooling to work out of the box with the latest public LKG on macOS

* Update the distributed test commit hash for the CI pipeline Part B

* Only add the deployment root on non-windows runs
2019-03-30 01:34:03 +01:00
Kristijan Šimić 7842d94bd2
[macOS] General updates to documentation and build scripts (#50)
* Restore all script exec permissions, update Readme.md with better macOS instructions
* Always run sandboxed when building internal
* Exec permission adjustment for all scripts
2019-03-29 13:20:48 +01:00
Microsoft Open Source b5c9f43106 Initial sync
Sync from internal 'Domino' repo at 7ef83bdcd855bd3a837464e44d6de25f19775b5c
2019-03-28 15:35:49 -07:00