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

21 Коммитов

Автор SHA1 Сообщение Дата
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