Merge branch 'feature/installer-merge-update-main' into feature/installer-merge-update
# Conflicts: # eng/Version.Details.xml # eng/Versions.props # global.json # src/redist/targets/Crossgen.targets # src/redist/targets/GenerateBundledVersions.targets # src/redist/targets/GenerateLayout.targets # src/redist/targets/GenerateMSIs.targets
This commit is contained in:
commit
69787b8b88
193 changed files with 3492 additions and 3317 deletions
|
@ -3,7 +3,7 @@
|
|||
"isRoot": true,
|
||||
"tools": {
|
||||
"microsoft.dotnet.darc": {
|
||||
"version": "1.1.0-beta.23551.2",
|
||||
"version": "1.1.0-beta.24074.1",
|
||||
"commands": [
|
||||
"darc"
|
||||
]
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
// The container supports source-building the SDK
|
||||
{
|
||||
"name": "VMR with PR changes",
|
||||
"image": "mcr.microsoft.com/dotnet-buildtools/prereqs:fedora-36",
|
||||
"image": "mcr.microsoft.com/dotnet-buildtools/prereqs:fedora-39",
|
||||
"hostRequirements": {
|
||||
// A completely source built .NET is >64 GB with all the repos/artifacts
|
||||
"storage": "128gb"
|
||||
|
@ -22,4 +22,4 @@
|
|||
},
|
||||
"onCreateCommand": "${containerWorkspaceFolder}/installer/.devcontainer/vmr-source-build/init.sh",
|
||||
"workspaceFolder": "/workspaces"
|
||||
}
|
||||
}
|
||||
|
|
1
.gitignore
vendored
1
.gitignore
vendored
|
@ -110,7 +110,6 @@ bin/
|
|||
*.pdb
|
||||
*.pgc
|
||||
*.pgd
|
||||
*.rsp
|
||||
*.sbr
|
||||
*.tlb
|
||||
*.tli
|
||||
|
|
10
.vsts-ci.yml
10
.vsts-ci.yml
|
@ -82,8 +82,8 @@ stages:
|
|||
- template: eng/build.yml
|
||||
parameters:
|
||||
agentOs: Linux
|
||||
jobName: Build_Fedora_36_Debug_x64
|
||||
container: 'mcr.microsoft.com/dotnet-buildtools/prereqs:fedora-36'
|
||||
jobName: Build_Fedora_39_Debug_x64
|
||||
container: 'mcr.microsoft.com/dotnet-buildtools/prereqs:fedora-39'
|
||||
buildConfiguration: Debug
|
||||
buildArchitecture: x64
|
||||
linuxPortable: true
|
||||
|
@ -100,8 +100,8 @@ stages:
|
|||
- template: eng/build.yml
|
||||
parameters:
|
||||
agentOs: Linux
|
||||
jobName: Build_Debian_Stretch_Debug_x64
|
||||
container: 'mcr.microsoft.com/dotnet-buildtools/prereqs:debian-stretch'
|
||||
jobName: Build_Debian_11_Debug_x64
|
||||
container: 'mcr.microsoft.com/dotnet-buildtools/prereqs:debian-11-amd64'
|
||||
buildConfiguration: Debug
|
||||
buildArchitecture: x64
|
||||
additionalBuildParameters: '/p:BuildSdkDeb=true'
|
||||
|
@ -201,7 +201,7 @@ stages:
|
|||
parameters:
|
||||
agentOs: Linux
|
||||
jobName: Build_Linux_musl_Release_arm
|
||||
container: 'mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-18.04-cross'
|
||||
container: 'mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-22.04-cross-arm-alpine'
|
||||
buildConfiguration: Release
|
||||
buildArchitecture: arm
|
||||
runtimeIdentifier: 'linux-musl-arm'
|
||||
|
|
156
README.md
156
README.md
|
@ -173,20 +173,20 @@ Do not directly edit the table below. Use https://github.com/dotnet/installer/tr
|
|||
|
||||
Use 'dotnet --help' to see available commands or visit: https://aka.ms/dotnet-cli
|
||||
--------------------------------------------------------------------------------------
|
||||
| Platform | main<br>(9.0.x Runtime) | 8.0.2xx<br>(8.0 Runtime) | Release/7.0.4xx<br>(7.0.x Runtime) |
|
||||
| Platform | main<br>(9.0.x Runtime) | 8.0.3xx<br>(8.0 Runtime) | Release/7.0.4xx<br>(7.0.x Runtime) |
|
||||
| :--------- | :----------: | :----------: | :----------: |
|
||||
| **Windows x64** | [![][win-x64-badge-main]][win-x64-version-main]<br>[Installer][win-x64-installer-main] - [Checksum][win-x64-installer-checksum-main]<br>[zip][win-x64-zip-main] - [Checksum][win-x64-zip-checksum-main] | [![][win-x64-badge-8.0.2XX]][win-x64-version-8.0.2XX]<br>[Installer][win-x64-installer-8.0.2XX] - [Checksum][win-x64-installer-checksum-8.0.2XX]<br>[zip][win-x64-zip-8.0.2XX] - [Checksum][win-x64-zip-checksum-8.0.2XX] | [![][win-x64-badge-7.0.4XX]][win-x64-version-7.0.4XX]<br>[Installer][win-x64-installer-7.0.4XX] - [Checksum][win-x64-installer-checksum-7.0.4XX]<br>[zip][win-x64-zip-7.0.4XX] - [Checksum][win-x64-zip-checksum-7.0.4XX] |
|
||||
| **Windows x86** | [![][win-x86-badge-main]][win-x86-version-main]<br>[Installer][win-x86-installer-main] - [Checksum][win-x86-installer-checksum-main]<br>[zip][win-x86-zip-main] - [Checksum][win-x86-zip-checksum-main] | [![][win-x86-badge-8.0.2XX]][win-x86-version-8.0.2XX]<br>[Installer][win-x86-installer-8.0.2XX] - [Checksum][win-x86-installer-checksum-8.0.2XX]<br>[zip][win-x86-zip-8.0.2XX] - [Checksum][win-x86-zip-checksum-8.0.2XX] | [![][win-x86-badge-7.0.4XX]][win-x86-version-7.0.4XX]<br>[Installer][win-x86-installer-7.0.4XX] - [Checksum][win-x86-installer-checksum-7.0.4XX]<br>[zip][win-x86-zip-7.0.4XX] - [Checksum][win-x86-zip-checksum-7.0.4XX] |
|
||||
| **Windows x64** | [![][win-x64-badge-main]][win-x64-version-main]<br>[Installer][win-x64-installer-main] - [Checksum][win-x64-installer-checksum-main]<br>[zip][win-x64-zip-main] - [Checksum][win-x64-zip-checksum-main] | [![][win-x64-badge-8.0.3XX]][win-x64-version-8.0.3XX]<br>[Installer][win-x64-installer-8.0.3XX] - [Checksum][win-x64-installer-checksum-8.0.3XX]<br>[zip][win-x64-zip-8.0.3XX] - [Checksum][win-x64-zip-checksum-8.0.3XX] | [![][win-x64-badge-7.0.4XX]][win-x64-version-7.0.4XX]<br>[Installer][win-x64-installer-7.0.4XX] - [Checksum][win-x64-installer-checksum-7.0.4XX]<br>[zip][win-x64-zip-7.0.4XX] - [Checksum][win-x64-zip-checksum-7.0.4XX] |
|
||||
| **Windows x86** | [![][win-x86-badge-main]][win-x86-version-main]<br>[Installer][win-x86-installer-main] - [Checksum][win-x86-installer-checksum-main]<br>[zip][win-x86-zip-main] - [Checksum][win-x86-zip-checksum-main] | [![][win-x86-badge-8.0.3XX]][win-x86-version-8.0.3XX]<br>[Installer][win-x86-installer-8.0.3XX] - [Checksum][win-x86-installer-checksum-8.0.3XX]<br>[zip][win-x86-zip-8.0.3XX] - [Checksum][win-x86-zip-checksum-8.0.3XX] | [![][win-x86-badge-7.0.4XX]][win-x86-version-7.0.4XX]<br>[Installer][win-x86-installer-7.0.4XX] - [Checksum][win-x86-installer-checksum-7.0.4XX]<br>[zip][win-x86-zip-7.0.4XX] - [Checksum][win-x86-zip-checksum-7.0.4XX] |
|
||||
| **Windows arm** | **N/A** | **N/A** | **N/A** |
|
||||
| **Windows arm64** | [![][win-arm64-badge-main]][win-arm64-version-main]<br>[Installer][win-arm64-installer-main] - [Checksum][win-arm64-installer-checksum-main]<br>[zip][win-arm64-zip-main] | [![][win-arm64-badge-8.0.2XX]][win-arm64-version-8.0.2XX]<br>[Installer][win-arm64-installer-8.0.2XX] - [Checksum][win-arm64-installer-checksum-8.0.2XX]<br>[zip][win-arm64-zip-8.0.2XX] | [![][win-arm64-badge-7.0.4XX]][win-arm64-version-7.0.4XX]<br>[Installer][win-arm64-installer-7.0.4XX] - [Checksum][win-arm64-installer-checksum-7.0.4XX]<br>[zip][win-arm64-zip-7.0.4XX] |
|
||||
| **macOS x64** | [![][osx-x64-badge-main]][osx-x64-version-main]<br>[Installer][osx-x64-installer-main] - [Checksum][osx-x64-installer-checksum-main]<br>[tar.gz][osx-x64-targz-main] - [Checksum][osx-x64-targz-checksum-main] | [![][osx-x64-badge-8.0.2XX]][osx-x64-version-8.0.2XX]<br>[Installer][osx-x64-installer-8.0.2XX] - [Checksum][osx-x64-installer-checksum-8.0.2XX]<br>[tar.gz][osx-x64-targz-8.0.2XX] - [Checksum][osx-x64-targz-checksum-8.0.2XX] | [![][osx-x64-badge-7.0.4XX]][osx-x64-version-7.0.4XX]<br>[Installer][osx-x64-installer-7.0.4XX] - [Checksum][osx-x64-installer-checksum-7.0.4XX]<br>[tar.gz][osx-x64-targz-7.0.4XX] - [Checksum][osx-x64-targz-checksum-7.0.4XX] |
|
||||
| **macOS arm64** | [![][osx-arm64-badge-main]][osx-arm64-version-main]<br>[Installer][osx-arm64-installer-main] - [Checksum][osx-arm64-installer-checksum-main]<br>[tar.gz][osx-arm64-targz-main] - [Checksum][osx-arm64-targz-checksum-main] | [![][osx-arm64-badge-8.0.2XX]][osx-arm64-version-8.0.2XX]<br>[Installer][osx-arm64-installer-8.0.2XX] - [Checksum][osx-arm64-installer-checksum-8.0.2XX]<br>[tar.gz][osx-arm64-targz-8.0.2XX] - [Checksum][osx-arm64-targz-checksum-8.0.2XX] | [![][osx-arm64-badge-7.0.4XX]][osx-arm64-version-7.0.4XX]<br>[Installer][osx-arm64-installer-7.0.4XX] - [Checksum][osx-arm64-installer-checksum-7.0.4XX]<br>[tar.gz][osx-arm64-targz-7.0.4XX] - [Checksum][osx-arm64-targz-checksum-7.0.4XX] |
|
||||
| **Linux x64** | [![][linux-badge-main]][linux-version-main]<br>[DEB Installer][linux-DEB-installer-main] - [Checksum][linux-DEB-installer-checksum-main]<br>[RPM Installer][linux-RPM-installer-main] - [Checksum][linux-RPM-installer-checksum-main]<br>_see installer note below_<sup>1</sup><br>[tar.gz][linux-targz-main] - [Checksum][linux-targz-checksum-main] | [![][linux-badge-8.0.2XX]][linux-version-8.0.2XX]<br>[DEB Installer][linux-DEB-installer-8.0.2XX] - [Checksum][linux-DEB-installer-checksum-8.0.2XX]<br>[RPM Installer][linux-RPM-installer-8.0.2XX] - [Checksum][linux-RPM-installer-checksum-8.0.2XX]<br>_see installer note below_<sup>1</sup><br>[tar.gz][linux-targz-8.0.2XX] - [Checksum][linux-targz-checksum-8.0.2XX] | [![][linux-badge-7.0.4XX]][linux-version-7.0.4XX]<br>[DEB Installer][linux-DEB-installer-7.0.4XX] - [Checksum][linux-DEB-installer-checksum-7.0.4XX]<br>[RPM Installer][linux-RPM-installer-7.0.4XX] - [Checksum][linux-RPM-installer-checksum-7.0.4XX]<br>_see installer note below_<sup>1</sup><br>[tar.gz][linux-targz-7.0.4XX] - [Checksum][linux-targz-checksum-7.0.4XX] |
|
||||
| **Linux arm** | [![][linux-arm-badge-main]][linux-arm-version-main]<br>[tar.gz][linux-arm-targz-main] - [Checksum][linux-arm-targz-checksum-main] | [![][linux-arm-badge-8.0.2XX]][linux-arm-version-8.0.2XX]<br>[tar.gz][linux-arm-targz-8.0.2XX] - [Checksum][linux-arm-targz-checksum-8.0.2XX] | [![][linux-arm-badge-7.0.4XX]][linux-arm-version-7.0.4XX]<br>[tar.gz][linux-arm-targz-7.0.4XX] - [Checksum][linux-arm-targz-checksum-7.0.4XX] |
|
||||
| **Linux arm64** | [![][linux-arm64-badge-main]][linux-arm64-version-main]<br>[tar.gz][linux-arm64-targz-main] - [Checksum][linux-arm64-targz-checksum-main] | [![][linux-arm64-badge-8.0.2XX]][linux-arm64-version-8.0.2XX]<br>[tar.gz][linux-arm64-targz-8.0.2XX] - [Checksum][linux-arm64-targz-checksum-8.0.2XX] | [![][linux-arm64-badge-7.0.4XX]][linux-arm64-version-7.0.4XX]<br>[tar.gz][linux-arm64-targz-7.0.4XX] - [Checksum][linux-arm64-targz-checksum-7.0.4XX] |
|
||||
| **Linux-musl-x64** | [![][linux-musl-x64-badge-main]][linux-musl-x64-version-main]<br>[tar.gz][linux-musl-x64-targz-main] - [Checksum][linux-musl-x64-targz-checksum-main] | [![][linux-musl-x64-badge-8.0.2XX]][linux-musl-x64-version-8.0.2XX]<br>[tar.gz][linux-musl-x64-targz-8.0.2XX] - [Checksum][linux-musl-x64-targz-checksum-8.0.2XX] | [![][linux-musl-x64-badge-7.0.4XX]][linux-musl-x64-version-7.0.4XX]<br>[tar.gz][linux-musl-x64-targz-7.0.4XX] - [Checksum][linux-musl-x64-targz-checksum-7.0.4XX] |
|
||||
| **Linux-musl-arm** | [![][linux-musl-arm-badge-main]][linux-musl-arm-version-main]<br>[tar.gz][linux-musl-arm-targz-main] - [Checksum][linux-musl-arm-targz-checksum-main] | [![][linux-musl-arm-badge-8.0.2XX]][linux-musl-arm-version-8.0.2XX]<br>[tar.gz][linux-musl-arm-targz-8.0.2XX] - [Checksum][linux-musl-arm-targz-checksum-8.0.2XX] | [![][linux-musl-arm-badge-7.0.4XX]][linux-musl-arm-version-7.0.4XX]<br>[tar.gz][linux-musl-arm-targz-7.0.4XX] - [Checksum][linux-musl-arm-targz-checksum-7.0.4XX] |
|
||||
| **Linux-musl-arm64** | [![][linux-musl-arm64-badge-main]][linux-musl-arm64-version-main]<br>[tar.gz][linux-musl-arm64-targz-main] - [Checksum][linux-musl-arm64-targz-checksum-main] | [![][linux-musl-arm64-badge-8.0.2XX]][linux-musl-arm64-version-8.0.2XX]<br>[tar.gz][linux-musl-arm64-targz-8.0.2XX] - [Checksum][linux-musl-arm64-targz-checksum-8.0.2XX] | [![][linux-musl-arm64-badge-7.0.4XX]][linux-musl-arm64-version-7.0.4XX]<br>[tar.gz][linux-musl-arm64-targz-7.0.4XX] - [Checksum][linux-musl-arm64-targz-checksum-7.0.4XX] |
|
||||
| **Windows arm64** | [![][win-arm64-badge-main]][win-arm64-version-main]<br>[Installer][win-arm64-installer-main] - [Checksum][win-arm64-installer-checksum-main]<br>[zip][win-arm64-zip-main] | [![][win-arm64-badge-8.0.3XX]][win-arm64-version-8.0.3XX]<br>[Installer][win-arm64-installer-8.0.3XX] - [Checksum][win-arm64-installer-checksum-8.0.3XX]<br>[zip][win-arm64-zip-8.0.3XX] | [![][win-arm64-badge-7.0.4XX]][win-arm64-version-7.0.4XX]<br>[Installer][win-arm64-installer-7.0.4XX] - [Checksum][win-arm64-installer-checksum-7.0.4XX]<br>[zip][win-arm64-zip-7.0.4XX] |
|
||||
| **macOS x64** | [![][osx-x64-badge-main]][osx-x64-version-main]<br>[Installer][osx-x64-installer-main] - [Checksum][osx-x64-installer-checksum-main]<br>[tar.gz][osx-x64-targz-main] - [Checksum][osx-x64-targz-checksum-main] | [![][osx-x64-badge-8.0.3XX]][osx-x64-version-8.0.3XX]<br>[Installer][osx-x64-installer-8.0.3XX] - [Checksum][osx-x64-installer-checksum-8.0.3XX]<br>[tar.gz][osx-x64-targz-8.0.3XX] - [Checksum][osx-x64-targz-checksum-8.0.3XX] | [![][osx-x64-badge-7.0.4XX]][osx-x64-version-7.0.4XX]<br>[Installer][osx-x64-installer-7.0.4XX] - [Checksum][osx-x64-installer-checksum-7.0.4XX]<br>[tar.gz][osx-x64-targz-7.0.4XX] - [Checksum][osx-x64-targz-checksum-7.0.4XX] |
|
||||
| **macOS arm64** | [![][osx-arm64-badge-main]][osx-arm64-version-main]<br>[Installer][osx-arm64-installer-main] - [Checksum][osx-arm64-installer-checksum-main]<br>[tar.gz][osx-arm64-targz-main] - [Checksum][osx-arm64-targz-checksum-main] | [![][osx-arm64-badge-8.0.3XX]][osx-arm64-version-8.0.3XX]<br>[Installer][osx-arm64-installer-8.0.3XX] - [Checksum][osx-arm64-installer-checksum-8.0.3XX]<br>[tar.gz][osx-arm64-targz-8.0.3XX] - [Checksum][osx-arm64-targz-checksum-8.0.3XX] | [![][osx-arm64-badge-7.0.4XX]][osx-arm64-version-7.0.4XX]<br>[Installer][osx-arm64-installer-7.0.4XX] - [Checksum][osx-arm64-installer-checksum-7.0.4XX]<br>[tar.gz][osx-arm64-targz-7.0.4XX] - [Checksum][osx-arm64-targz-checksum-7.0.4XX] |
|
||||
| **Linux x64** | [![][linux-badge-main]][linux-version-main]<br>[DEB Installer][linux-DEB-installer-main] - [Checksum][linux-DEB-installer-checksum-main]<br>[RPM Installer][linux-RPM-installer-main] - [Checksum][linux-RPM-installer-checksum-main]<br>_see installer note below_<sup>1</sup><br>[tar.gz][linux-targz-main] - [Checksum][linux-targz-checksum-main] | [![][linux-badge-8.0.3XX]][linux-version-8.0.3XX]<br>[DEB Installer][linux-DEB-installer-8.0.3XX] - [Checksum][linux-DEB-installer-checksum-8.0.3XX]<br>[RPM Installer][linux-RPM-installer-8.0.3XX] - [Checksum][linux-RPM-installer-checksum-8.0.3XX]<br>_see installer note below_<sup>1</sup><br>[tar.gz][linux-targz-8.0.3XX] - [Checksum][linux-targz-checksum-8.0.3XX] | [![][linux-badge-7.0.4XX]][linux-version-7.0.4XX]<br>[DEB Installer][linux-DEB-installer-7.0.4XX] - [Checksum][linux-DEB-installer-checksum-7.0.4XX]<br>[RPM Installer][linux-RPM-installer-7.0.4XX] - [Checksum][linux-RPM-installer-checksum-7.0.4XX]<br>_see installer note below_<sup>1</sup><br>[tar.gz][linux-targz-7.0.4XX] - [Checksum][linux-targz-checksum-7.0.4XX] |
|
||||
| **Linux arm** | [![][linux-arm-badge-main]][linux-arm-version-main]<br>[tar.gz][linux-arm-targz-main] - [Checksum][linux-arm-targz-checksum-main] | [![][linux-arm-badge-8.0.3XX]][linux-arm-version-8.0.3XX]<br>[tar.gz][linux-arm-targz-8.0.3XX] - [Checksum][linux-arm-targz-checksum-8.0.3XX] | [![][linux-arm-badge-7.0.4XX]][linux-arm-version-7.0.4XX]<br>[tar.gz][linux-arm-targz-7.0.4XX] - [Checksum][linux-arm-targz-checksum-7.0.4XX] |
|
||||
| **Linux arm64** | [![][linux-arm64-badge-main]][linux-arm64-version-main]<br>[tar.gz][linux-arm64-targz-main] - [Checksum][linux-arm64-targz-checksum-main] | [![][linux-arm64-badge-8.0.3XX]][linux-arm64-version-8.0.3XX]<br>[tar.gz][linux-arm64-targz-8.0.3XX] - [Checksum][linux-arm64-targz-checksum-8.0.3XX] | [![][linux-arm64-badge-7.0.4XX]][linux-arm64-version-7.0.4XX]<br>[tar.gz][linux-arm64-targz-7.0.4XX] - [Checksum][linux-arm64-targz-checksum-7.0.4XX] |
|
||||
| **Linux-musl-x64** | [![][linux-musl-x64-badge-main]][linux-musl-x64-version-main]<br>[tar.gz][linux-musl-x64-targz-main] - [Checksum][linux-musl-x64-targz-checksum-main] | [![][linux-musl-x64-badge-8.0.3XX]][linux-musl-x64-version-8.0.3XX]<br>[tar.gz][linux-musl-x64-targz-8.0.3XX] - [Checksum][linux-musl-x64-targz-checksum-8.0.3XX] | [![][linux-musl-x64-badge-7.0.4XX]][linux-musl-x64-version-7.0.4XX]<br>[tar.gz][linux-musl-x64-targz-7.0.4XX] - [Checksum][linux-musl-x64-targz-checksum-7.0.4XX] |
|
||||
| **Linux-musl-arm** | [![][linux-musl-arm-badge-main]][linux-musl-arm-version-main]<br>[tar.gz][linux-musl-arm-targz-main] - [Checksum][linux-musl-arm-targz-checksum-main] | [![][linux-musl-arm-badge-8.0.3XX]][linux-musl-arm-version-8.0.3XX]<br>[tar.gz][linux-musl-arm-targz-8.0.3XX] - [Checksum][linux-musl-arm-targz-checksum-8.0.3XX] | [![][linux-musl-arm-badge-7.0.4XX]][linux-musl-arm-version-7.0.4XX]<br>[tar.gz][linux-musl-arm-targz-7.0.4XX] - [Checksum][linux-musl-arm-targz-checksum-7.0.4XX] |
|
||||
| **Linux-musl-arm64** | [![][linux-musl-arm64-badge-main]][linux-musl-arm64-version-main]<br>[tar.gz][linux-musl-arm64-targz-main] - [Checksum][linux-musl-arm64-targz-checksum-main] | [![][linux-musl-arm64-badge-8.0.3XX]][linux-musl-arm64-version-8.0.3XX]<br>[tar.gz][linux-musl-arm64-targz-8.0.3XX] - [Checksum][linux-musl-arm64-targz-checksum-8.0.3XX] | [![][linux-musl-arm64-badge-7.0.4XX]][linux-musl-arm64-version-7.0.4XX]<br>[tar.gz][linux-musl-arm64-targz-7.0.4XX] - [Checksum][linux-musl-arm64-targz-checksum-7.0.4XX] |
|
||||
| **RHEL 6** | **N/A** | **N/A** | **N/A** |
|
||||
|
||||
Reference notes:
|
||||
|
@ -203,12 +203,12 @@ Reference notes:
|
|||
[win-x64-zip-main]: https://aka.ms/dotnet/9.0.1xx/daily/dotnet-sdk-win-x64.zip
|
||||
[win-x64-zip-checksum-main]: https://aka.ms/dotnet/9.0.1xx/daily/dotnet-sdk-win-x64.zip.sha
|
||||
|
||||
[win-x64-badge-8.0.2XX]: https://aka.ms/dotnet/8.0.2xx/daily/win_x64_Release_version_badge.svg?no-cache
|
||||
[win-x64-version-8.0.2XX]: https://aka.ms/dotnet/8.0.2xx/daily/productCommit-win-x64.txt
|
||||
[win-x64-installer-8.0.2XX]: https://aka.ms/dotnet/8.0.2xx/daily/dotnet-sdk-win-x64.exe
|
||||
[win-x64-installer-checksum-8.0.2XX]: https://aka.ms/dotnet/8.0.2xx/daily/dotnet-sdk-win-x64.exe.sha
|
||||
[win-x64-zip-8.0.2XX]: https://aka.ms/dotnet/8.0.2xx/daily/dotnet-sdk-win-x64.zip
|
||||
[win-x64-zip-checksum-8.0.2XX]: https://aka.ms/dotnet/8.0.2xx/daily/dotnet-sdk-win-x64.zip.sha
|
||||
[win-x64-badge-8.0.3XX]: https://aka.ms/dotnet/8.0.3xx/daily/win_x64_Release_version_badge.svg?no-cache
|
||||
[win-x64-version-8.0.3XX]: https://aka.ms/dotnet/8.0.3xx/daily/productCommit-win-x64.txt
|
||||
[win-x64-installer-8.0.3XX]: https://aka.ms/dotnet/8.0.3xx/daily/dotnet-sdk-win-x64.exe
|
||||
[win-x64-installer-checksum-8.0.3XX]: https://aka.ms/dotnet/8.0.3xx/daily/dotnet-sdk-win-x64.exe.sha
|
||||
[win-x64-zip-8.0.3XX]: https://aka.ms/dotnet/8.0.3xx/daily/dotnet-sdk-win-x64.zip
|
||||
[win-x64-zip-checksum-8.0.3XX]: https://aka.ms/dotnet/8.0.3xx/daily/dotnet-sdk-win-x64.zip.sha
|
||||
|
||||
[win-x64-badge-7.0.4XX]: https://aka.ms/dotnet/7.0.4xx/daily/win_x64_Release_version_badge.svg?no-cache
|
||||
[win-x64-version-7.0.4XX]: https://aka.ms/dotnet/7.0.4xx/daily/productCommit-win-x64.txt
|
||||
|
@ -224,12 +224,12 @@ Reference notes:
|
|||
[win-x86-zip-main]: https://aka.ms/dotnet/9.0.1xx/daily/dotnet-sdk-win-x86.zip
|
||||
[win-x86-zip-checksum-main]: https://aka.ms/dotnet/9.0.1xx/daily/dotnet-sdk-win-x86.zip.sha
|
||||
|
||||
[win-x86-badge-8.0.2XX]: https://aka.ms/dotnet/8.0.2xx/daily/win_x86_Release_version_badge.svg?no-cache
|
||||
[win-x86-version-8.0.2XX]: https://aka.ms/dotnet/8.0.2xx/daily/productCommit-win-x86.txt
|
||||
[win-x86-installer-8.0.2XX]: https://aka.ms/dotnet/8.0.2xx/daily/dotnet-sdk-win-x86.exe
|
||||
[win-x86-installer-checksum-8.0.2XX]: https://aka.ms/dotnet/8.0.2xx/daily/dotnet-sdk-win-x86.exe.sha
|
||||
[win-x86-zip-8.0.2XX]: https://aka.ms/dotnet/8.0.2xx/daily/dotnet-sdk-win-x86.zip
|
||||
[win-x86-zip-checksum-8.0.2XX]: https://aka.ms/dotnet/8.0.2xx/daily/dotnet-sdk-win-x86.zip.sha
|
||||
[win-x86-badge-8.0.3XX]: https://aka.ms/dotnet/8.0.3xx/daily/win_x86_Release_version_badge.svg?no-cache
|
||||
[win-x86-version-8.0.3XX]: https://aka.ms/dotnet/8.0.3xx/daily/productCommit-win-x86.txt
|
||||
[win-x86-installer-8.0.3XX]: https://aka.ms/dotnet/8.0.3xx/daily/dotnet-sdk-win-x86.exe
|
||||
[win-x86-installer-checksum-8.0.3XX]: https://aka.ms/dotnet/8.0.3xx/daily/dotnet-sdk-win-x86.exe.sha
|
||||
[win-x86-zip-8.0.3XX]: https://aka.ms/dotnet/8.0.3xx/daily/dotnet-sdk-win-x86.zip
|
||||
[win-x86-zip-checksum-8.0.3XX]: https://aka.ms/dotnet/8.0.3xx/daily/dotnet-sdk-win-x86.zip.sha
|
||||
|
||||
[win-x86-badge-7.0.4XX]: https://aka.ms/dotnet/7.0.4xx/daily/win_x86_Release_version_badge.svg?no-cache
|
||||
[win-x86-version-7.0.4XX]: https://aka.ms/dotnet/7.0.4xx/daily/productCommit-win-x86.txt
|
||||
|
@ -245,12 +245,12 @@ Reference notes:
|
|||
[osx-x64-targz-main]: https://aka.ms/dotnet/9.0.1xx/daily/dotnet-sdk-osx-x64.tar.gz
|
||||
[osx-x64-targz-checksum-main]: https://aka.ms/dotnet/9.0.1xx/daily/dotnet-sdk-osx-x64.pkg.tar.gz.sha
|
||||
|
||||
[osx-x64-badge-8.0.2XX]: https://aka.ms/dotnet/8.0.2xx/daily/osx_x64_Release_version_badge.svg?no-cache
|
||||
[osx-x64-version-8.0.2XX]: https://aka.ms/dotnet/8.0.2xx/daily/productCommit-osx-x64.txt
|
||||
[osx-x64-installer-8.0.2XX]: https://aka.ms/dotnet/8.0.2xx/daily/dotnet-sdk-osx-x64.pkg
|
||||
[osx-x64-installer-checksum-8.0.2XX]: https://aka.ms/dotnet/8.0.2xx/daily/dotnet-sdk-osx-x64.pkg.sha
|
||||
[osx-x64-targz-8.0.2XX]: https://aka.ms/dotnet/8.0.2xx/daily/dotnet-sdk-osx-x64.tar.gz
|
||||
[osx-x64-targz-checksum-8.0.2XX]: https://aka.ms/dotnet/8.0.2xx/daily/dotnet-sdk-osx-x64.pkg.tar.gz.sha
|
||||
[osx-x64-badge-8.0.3XX]: https://aka.ms/dotnet/8.0.3xx/daily/osx_x64_Release_version_badge.svg?no-cache
|
||||
[osx-x64-version-8.0.3XX]: https://aka.ms/dotnet/8.0.3xx/daily/productCommit-osx-x64.txt
|
||||
[osx-x64-installer-8.0.3XX]: https://aka.ms/dotnet/8.0.3xx/daily/dotnet-sdk-osx-x64.pkg
|
||||
[osx-x64-installer-checksum-8.0.3XX]: https://aka.ms/dotnet/8.0.3xx/daily/dotnet-sdk-osx-x64.pkg.sha
|
||||
[osx-x64-targz-8.0.3XX]: https://aka.ms/dotnet/8.0.3xx/daily/dotnet-sdk-osx-x64.tar.gz
|
||||
[osx-x64-targz-checksum-8.0.3XX]: https://aka.ms/dotnet/8.0.3xx/daily/dotnet-sdk-osx-x64.pkg.tar.gz.sha
|
||||
|
||||
[osx-x64-badge-7.0.4XX]: https://aka.ms/dotnet/7.0.4xx/daily/osx_x64_Release_version_badge.svg?no-cache
|
||||
[osx-x64-version-7.0.4XX]: https://aka.ms/dotnet/7.0.4xx/daily/productCommit-osx-x64.txt
|
||||
|
@ -266,12 +266,12 @@ Reference notes:
|
|||
[osx-arm64-targz-main]: https://aka.ms/dotnet/9.0.1xx/daily/dotnet-sdk-osx-arm64.tar.gz
|
||||
[osx-arm64-targz-checksum-main]: https://aka.ms/dotnet/9.0.1xx/daily/dotnet-sdk-osx-arm64.pkg.tar.gz.sha
|
||||
|
||||
[osx-arm64-badge-8.0.2XX]: https://aka.ms/dotnet/8.0.2xx/daily/osx_arm64_Release_version_badge.svg?no-cache
|
||||
[osx-arm64-version-8.0.2XX]: https://aka.ms/dotnet/8.0.2xx/daily/productCommit-osx-arm64.txt
|
||||
[osx-arm64-installer-8.0.2XX]: https://aka.ms/dotnet/8.0.2xx/daily/dotnet-sdk-osx-arm64.pkg
|
||||
[osx-arm64-installer-checksum-8.0.2XX]: https://aka.ms/dotnet/8.0.2xx/daily/dotnet-sdk-osx-arm64.pkg.sha
|
||||
[osx-arm64-targz-8.0.2XX]: https://aka.ms/dotnet/8.0.2xx/daily/dotnet-sdk-osx-arm64.tar.gz
|
||||
[osx-arm64-targz-checksum-8.0.2XX]: https://aka.ms/dotnet/8.0.2xx/daily/dotnet-sdk-osx-arm64.pkg.tar.gz.sha
|
||||
[osx-arm64-badge-8.0.3XX]: https://aka.ms/dotnet/8.0.3xx/daily/osx_arm64_Release_version_badge.svg?no-cache
|
||||
[osx-arm64-version-8.0.3XX]: https://aka.ms/dotnet/8.0.3xx/daily/productCommit-osx-arm64.txt
|
||||
[osx-arm64-installer-8.0.3XX]: https://aka.ms/dotnet/8.0.3xx/daily/dotnet-sdk-osx-arm64.pkg
|
||||
[osx-arm64-installer-checksum-8.0.3XX]: https://aka.ms/dotnet/8.0.3xx/daily/dotnet-sdk-osx-arm64.pkg.sha
|
||||
[osx-arm64-targz-8.0.3XX]: https://aka.ms/dotnet/8.0.3xx/daily/dotnet-sdk-osx-arm64.tar.gz
|
||||
[osx-arm64-targz-checksum-8.0.3XX]: https://aka.ms/dotnet/8.0.3xx/daily/dotnet-sdk-osx-arm64.pkg.tar.gz.sha
|
||||
|
||||
[osx-arm64-badge-7.0.4XX]: https://aka.ms/dotnet/7.0.4xx/daily/osx_arm64_Release_version_badge.svg?no-cache
|
||||
[osx-arm64-version-7.0.4XX]: https://aka.ms/dotnet/7.0.4xx/daily/productCommit-osx-arm64.txt
|
||||
|
@ -289,14 +289,14 @@ Reference notes:
|
|||
[linux-targz-main]: https://aka.ms/dotnet/9.0.1xx/daily/dotnet-sdk-linux-x64.tar.gz
|
||||
[linux-targz-checksum-main]: https://aka.ms/dotnet/9.0.1xx/daily/dotnet-sdk-linux-x64.tar.gz.sha
|
||||
|
||||
[linux-badge-8.0.2XX]: https://aka.ms/dotnet/8.0.2xx/daily/linux_x64_Release_version_badge.svg?no-cache
|
||||
[linux-version-8.0.2XX]: https://aka.ms/dotnet/8.0.2xx/daily/productCommit-linux-x64.txt
|
||||
[linux-DEB-installer-8.0.2XX]: https://aka.ms/dotnet/8.0.2xx/daily/dotnet-sdk-x64.deb
|
||||
[linux-DEB-installer-checksum-8.0.2XX]: https://aka.ms/dotnet/8.0.2xx/daily/dotnet-sdk-x64.deb.sha
|
||||
[linux-RPM-installer-8.0.2XX]: https://aka.ms/dotnet/8.0.2xx/daily/dotnet-sdk-x64.rpm
|
||||
[linux-RPM-installer-checksum-8.0.2XX]: https://aka.ms/dotnet/8.0.2xx/daily/dotnet-sdk-x64.rpm.sha
|
||||
[linux-targz-8.0.2XX]: https://aka.ms/dotnet/8.0.2xx/daily/dotnet-sdk-linux-x64.tar.gz
|
||||
[linux-targz-checksum-8.0.2XX]: https://aka.ms/dotnet/8.0.2xx/daily/dotnet-sdk-linux-x64.tar.gz.sha
|
||||
[linux-badge-8.0.3XX]: https://aka.ms/dotnet/8.0.3xx/daily/linux_x64_Release_version_badge.svg?no-cache
|
||||
[linux-version-8.0.3XX]: https://aka.ms/dotnet/8.0.3xx/daily/productCommit-linux-x64.txt
|
||||
[linux-DEB-installer-8.0.3XX]: https://aka.ms/dotnet/8.0.3xx/daily/dotnet-sdk-x64.deb
|
||||
[linux-DEB-installer-checksum-8.0.3XX]: https://aka.ms/dotnet/8.0.3xx/daily/dotnet-sdk-x64.deb.sha
|
||||
[linux-RPM-installer-8.0.3XX]: https://aka.ms/dotnet/8.0.3xx/daily/dotnet-sdk-x64.rpm
|
||||
[linux-RPM-installer-checksum-8.0.3XX]: https://aka.ms/dotnet/8.0.3xx/daily/dotnet-sdk-x64.rpm.sha
|
||||
[linux-targz-8.0.3XX]: https://aka.ms/dotnet/8.0.3xx/daily/dotnet-sdk-linux-x64.tar.gz
|
||||
[linux-targz-checksum-8.0.3XX]: https://aka.ms/dotnet/8.0.3xx/daily/dotnet-sdk-linux-x64.tar.gz.sha
|
||||
|
||||
[linux-badge-7.0.4XX]: https://aka.ms/dotnet/7.0.4xx/daily/linux_x64_Release_version_badge.svg?no-cache
|
||||
[linux-version-7.0.4XX]: https://aka.ms/dotnet/7.0.4xx/daily/productCommit-linux-x64.txt
|
||||
|
@ -312,10 +312,10 @@ Reference notes:
|
|||
[linux-arm-targz-main]: https://aka.ms/dotnet/9.0.1xx/daily/dotnet-sdk-linux-arm.tar.gz
|
||||
[linux-arm-targz-checksum-main]: https://aka.ms/dotnet/9.0.1xx/daily/dotnet-sdk-linux-arm.tar.gz.sha
|
||||
|
||||
[linux-arm-badge-8.0.2XX]: https://aka.ms/dotnet/8.0.2xx/daily/linux_arm_Release_version_badge.svg?no-cache
|
||||
[linux-arm-version-8.0.2XX]: https://aka.ms/dotnet/8.0.2xx/daily/productCommit-linux-arm.txt
|
||||
[linux-arm-targz-8.0.2XX]: https://aka.ms/dotnet/8.0.2xx/daily/dotnet-sdk-linux-arm.tar.gz
|
||||
[linux-arm-targz-checksum-8.0.2XX]: https://aka.ms/dotnet/8.0.2xx/daily/dotnet-sdk-linux-arm.tar.gz.sha
|
||||
[linux-arm-badge-8.0.3XX]: https://aka.ms/dotnet/8.0.3xx/daily/linux_arm_Release_version_badge.svg?no-cache
|
||||
[linux-arm-version-8.0.3XX]: https://aka.ms/dotnet/8.0.3xx/daily/productCommit-linux-arm.txt
|
||||
[linux-arm-targz-8.0.3XX]: https://aka.ms/dotnet/8.0.3xx/daily/dotnet-sdk-linux-arm.tar.gz
|
||||
[linux-arm-targz-checksum-8.0.3XX]: https://aka.ms/dotnet/8.0.3xx/daily/dotnet-sdk-linux-arm.tar.gz.sha
|
||||
|
||||
[linux-arm-badge-7.0.4XX]: https://aka.ms/dotnet/7.0.4xx/daily/linux_arm_Release_version_badge.svg?no-cache
|
||||
[linux-arm-version-7.0.4XX]: https://aka.ms/dotnet/7.0.4xx/daily/productCommit-linux-arm.txt
|
||||
|
@ -327,10 +327,10 @@ Reference notes:
|
|||
[linux-arm64-targz-main]: https://aka.ms/dotnet/9.0.1xx/daily/dotnet-sdk-linux-arm64.tar.gz
|
||||
[linux-arm64-targz-checksum-main]: https://aka.ms/dotnet/9.0.1xx/daily/dotnet-sdk-linux-arm64.tar.gz.sha
|
||||
|
||||
[linux-arm64-badge-8.0.2XX]: https://aka.ms/dotnet/8.0.2xx/daily/linux_arm64_Release_version_badge.svg?no-cache
|
||||
[linux-arm64-version-8.0.2XX]: https://aka.ms/dotnet/8.0.2xx/daily/productCommit-linux-arm64.txt
|
||||
[linux-arm64-targz-8.0.2XX]: https://aka.ms/dotnet/8.0.2xx/daily/dotnet-sdk-linux-arm64.tar.gz
|
||||
[linux-arm64-targz-checksum-8.0.2XX]: https://aka.ms/dotnet/8.0.2xx/daily/dotnet-sdk-linux-arm64.tar.gz.sha
|
||||
[linux-arm64-badge-8.0.3XX]: https://aka.ms/dotnet/8.0.3xx/daily/linux_arm64_Release_version_badge.svg?no-cache
|
||||
[linux-arm64-version-8.0.3XX]: https://aka.ms/dotnet/8.0.3xx/daily/productCommit-linux-arm64.txt
|
||||
[linux-arm64-targz-8.0.3XX]: https://aka.ms/dotnet/8.0.3xx/daily/dotnet-sdk-linux-arm64.tar.gz
|
||||
[linux-arm64-targz-checksum-8.0.3XX]: https://aka.ms/dotnet/8.0.3xx/daily/dotnet-sdk-linux-arm64.tar.gz.sha
|
||||
|
||||
[linux-arm64-badge-7.0.4XX]: https://aka.ms/dotnet/7.0.4xx/daily/linux_arm64_Release_version_badge.svg?no-cache
|
||||
[linux-arm64-version-7.0.4XX]: https://aka.ms/dotnet/7.0.4xx/daily/productCommit-linux-arm64.txt
|
||||
|
@ -342,10 +342,10 @@ Reference notes:
|
|||
[rhel-6-targz-main]: https://aka.ms/dotnet/9.0.1xx/daily/dotnet-sdk-rhel.6-x64.tar.gz
|
||||
[rhel-6-targz-checksum-main]: https://aka.ms/dotnet/9.0.1xx/daily/dotnet-sdk-rhel.6-x64.tar.gz.sha
|
||||
|
||||
[rhel-6-badge-8.0.2XX]: https://aka.ms/dotnet/8.0.2xx/daily/rhel.6_x64_Release_version_badge.svg?no-cache
|
||||
[rhel-6-version-8.0.2XX]: https://aka.ms/dotnet/8.0.2xx/daily/productCommit-rhel.6-x64.txt
|
||||
[rhel-6-targz-8.0.2XX]: https://aka.ms/dotnet/8.0.2xx/daily/dotnet-sdk-rhel.6-x64.tar.gz
|
||||
[rhel-6-targz-checksum-8.0.2XX]: https://aka.ms/dotnet/8.0.2xx/daily/dotnet-sdk-rhel.6-x64.tar.gz.sha
|
||||
[rhel-6-badge-8.0.3XX]: https://aka.ms/dotnet/8.0.3xx/daily/rhel.6_x64_Release_version_badge.svg?no-cache
|
||||
[rhel-6-version-8.0.3XX]: https://aka.ms/dotnet/8.0.3xx/daily/productCommit-rhel.6-x64.txt
|
||||
[rhel-6-targz-8.0.3XX]: https://aka.ms/dotnet/8.0.3xx/daily/dotnet-sdk-rhel.6-x64.tar.gz
|
||||
[rhel-6-targz-checksum-8.0.3XX]: https://aka.ms/dotnet/8.0.3xx/daily/dotnet-sdk-rhel.6-x64.tar.gz.sha
|
||||
|
||||
[rhel-6-badge-7.0.4XX]: https://aka.ms/dotnet/7.0.4xx/daily/rhel.6_x64_Release_version_badge.svg?no-cache
|
||||
[rhel-6-version-7.0.4XX]: https://aka.ms/dotnet/7.0.4xx/daily/productCommit-rhel.6-x64.txt
|
||||
|
@ -357,10 +357,10 @@ Reference notes:
|
|||
[linux-musl-x64-targz-main]: https://aka.ms/dotnet/9.0.1xx/daily/dotnet-sdk-linux-musl-x64.tar.gz
|
||||
[linux-musl-x64-targz-checksum-main]: https://aka.ms/dotnet/9.0.1xx/daily/dotnet-sdk-linux-musl-x64.tar.gz.sha
|
||||
|
||||
[linux-musl-x64-badge-8.0.2XX]: https://aka.ms/dotnet/8.0.2xx/daily/linux_musl_x64_Release_version_badge.svg?no-cache
|
||||
[linux-musl-x64-version-8.0.2XX]: https://aka.ms/dotnet/8.0.2xx/daily/productCommit-linux-musl-x64.txt
|
||||
[linux-musl-x64-targz-8.0.2XX]: https://aka.ms/dotnet/8.0.2xx/daily/dotnet-sdk-linux-musl-x64.tar.gz
|
||||
[linux-musl-x64-targz-checksum-8.0.2XX]: https://aka.ms/dotnet/8.0.2xx/daily/dotnet-sdk-linux-musl-x64.tar.gz.sha
|
||||
[linux-musl-x64-badge-8.0.3XX]: https://aka.ms/dotnet/8.0.3xx/daily/linux_musl_x64_Release_version_badge.svg?no-cache
|
||||
[linux-musl-x64-version-8.0.3XX]: https://aka.ms/dotnet/8.0.3xx/daily/productCommit-linux-musl-x64.txt
|
||||
[linux-musl-x64-targz-8.0.3XX]: https://aka.ms/dotnet/8.0.3xx/daily/dotnet-sdk-linux-musl-x64.tar.gz
|
||||
[linux-musl-x64-targz-checksum-8.0.3XX]: https://aka.ms/dotnet/8.0.3xx/daily/dotnet-sdk-linux-musl-x64.tar.gz.sha
|
||||
|
||||
[linux-musl-x64-badge-7.0.4XX]: https://aka.ms/dotnet/7.0.4xx/daily/linux_musl_x64_Release_version_badge.svg?no-cache
|
||||
[linux-musl-x64-version-7.0.4XX]: https://aka.ms/dotnet/7.0.4xx/daily/productCommit-linux-musl-x64.txt
|
||||
|
@ -372,10 +372,10 @@ Reference notes:
|
|||
[linux-musl-arm-targz-main]: https://aka.ms/dotnet/9.0.1xx/daily/dotnet-sdk-linux-musl-arm.tar.gz
|
||||
[linux-musl-arm-targz-checksum-main]: https://aka.ms/dotnet/9.0.1xx/daily/dotnet-sdk-linux-musl-arm.tar.gz.sha
|
||||
|
||||
[linux-musl-arm-badge-8.0.2XX]: https://aka.ms/dotnet/8.0.2xx/daily/linux_musl_arm_Release_version_badge.svg?no-cache
|
||||
[linux-musl-arm-version-8.0.2XX]: https://aka.ms/dotnet/8.0.2xx/daily/productCommit-linux-musl-arm.txt
|
||||
[linux-musl-arm-targz-8.0.2XX]: https://aka.ms/dotnet/8.0.2xx/daily/dotnet-sdk-linux-musl-arm.tar.gz
|
||||
[linux-musl-arm-targz-checksum-8.0.2XX]: https://aka.ms/dotnet/8.0.2xx/daily/dotnet-sdk-linux-musl-arm.tar.gz.sha
|
||||
[linux-musl-arm-badge-8.0.3XX]: https://aka.ms/dotnet/8.0.3xx/daily/linux_musl_arm_Release_version_badge.svg?no-cache
|
||||
[linux-musl-arm-version-8.0.3XX]: https://aka.ms/dotnet/8.0.3xx/daily/productCommit-linux-musl-arm.txt
|
||||
[linux-musl-arm-targz-8.0.3XX]: https://aka.ms/dotnet/8.0.3xx/daily/dotnet-sdk-linux-musl-arm.tar.gz
|
||||
[linux-musl-arm-targz-checksum-8.0.3XX]: https://aka.ms/dotnet/8.0.3xx/daily/dotnet-sdk-linux-musl-arm.tar.gz.sha
|
||||
|
||||
[linux-musl-arm-badge-7.0.4XX]: https://aka.ms/dotnet/7.0.4xx/daily/linux_musl_arm_Release_version_badge.svg?no-cache
|
||||
[linux-musl-arm-version-7.0.4XX]: https://aka.ms/dotnet/7.0.4xx/daily/productCommit-linux-musl-arm.txt
|
||||
|
@ -387,10 +387,10 @@ Reference notes:
|
|||
[linux-musl-arm64-targz-main]: https://aka.ms/dotnet/9.0.1xx/daily/dotnet-sdk-linux-musl-arm64.tar.gz
|
||||
[linux-musl-arm64-targz-checksum-main]: https://aka.ms/dotnet/9.0.1xx/daily/dotnet-sdk-linux-musl-arm64.tar.gz.sha
|
||||
|
||||
[linux-musl-arm64-badge-8.0.2XX]: https://aka.ms/dotnet/8.0.2xx/daily/linux_musl_arm64_Release_version_badge.svg?no-cache
|
||||
[linux-musl-arm64-version-8.0.2XX]: https://aka.ms/dotnet/8.0.2xx/daily/productCommit-linux-musl-arm64.txt
|
||||
[linux-musl-arm64-targz-8.0.2XX]: https://aka.ms/dotnet/8.0.2xx/daily/dotnet-sdk-linux-musl-arm64.tar.gz
|
||||
[linux-musl-arm64-targz-checksum-8.0.2XX]: https://aka.ms/dotnet/8.0.2xx/daily/dotnet-sdk-linux-musl-arm64.tar.gz.sha
|
||||
[linux-musl-arm64-badge-8.0.3XX]: https://aka.ms/dotnet/8.0.3xx/daily/linux_musl_arm64_Release_version_badge.svg?no-cache
|
||||
[linux-musl-arm64-version-8.0.3XX]: https://aka.ms/dotnet/8.0.3xx/daily/productCommit-linux-musl-arm64.txt
|
||||
[linux-musl-arm64-targz-8.0.3XX]: https://aka.ms/dotnet/8.0.3xx/daily/dotnet-sdk-linux-musl-arm64.tar.gz
|
||||
[linux-musl-arm64-targz-checksum-8.0.3XX]: https://aka.ms/dotnet/8.0.3xx/daily/dotnet-sdk-linux-musl-arm64.tar.gz.sha
|
||||
|
||||
[linux-musl-arm64-badge-7.0.4XX]: https://aka.ms/dotnet/7.0.4xx/daily/linux_musl_arm64_Release_version_badge.svg?no-cache
|
||||
[linux-musl-arm64-version-7.0.4XX]: https://aka.ms/dotnet/7.0.4xx/daily/productCommit-linux-musl-arm64.txt
|
||||
|
@ -402,10 +402,10 @@ Reference notes:
|
|||
[win-arm-zip-main]: https://aka.ms/dotnet/9.0.1xx/daily/dotnet-sdk-win-arm.zip
|
||||
[win-arm-zip-checksum-main]: https://aka.ms/dotnet/9.0.1xx/daily/dotnet-sdk-win-arm.zip.sha
|
||||
|
||||
[win-arm-badge-8.0.2XX]: https://aka.ms/dotnet/8.0.2xx/daily/win_arm_Release_version_badge.svg?no-cache
|
||||
[win-arm-version-8.0.2XX]: https://aka.ms/dotnet/8.0.2xx/daily/productCommit-win-arm.txt
|
||||
[win-arm-zip-8.0.2XX]: https://aka.ms/dotnet/8.0.2xx/daily/dotnet-sdk-win-arm.zip
|
||||
[win-arm-zip-checksum-8.0.2XX]: https://aka.ms/dotnet/8.0.2xx/daily/dotnet-sdk-win-arm.zip.sha
|
||||
[win-arm-badge-8.0.3XX]: https://aka.ms/dotnet/8.0.3xx/daily/win_arm_Release_version_badge.svg?no-cache
|
||||
[win-arm-version-8.0.3XX]: https://aka.ms/dotnet/8.0.3xx/daily/productCommit-win-arm.txt
|
||||
[win-arm-zip-8.0.3XX]: https://aka.ms/dotnet/8.0.3xx/daily/dotnet-sdk-win-arm.zip
|
||||
[win-arm-zip-checksum-8.0.3XX]: https://aka.ms/dotnet/8.0.3xx/daily/dotnet-sdk-win-arm.zip.sha
|
||||
|
||||
[win-arm-badge-7.0.4XX]: https://aka.ms/dotnet/7.0.4xx/daily/win_arm_Release_version_badge.svg?no-cache
|
||||
[win-arm-version-7.0.4XX]: https://aka.ms/dotnet/7.0.4xx/daily/productCommit-win-arm.txt
|
||||
|
@ -419,12 +419,12 @@ Reference notes:
|
|||
[win-arm64-zip-main]: https://aka.ms/dotnet/9.0.1xx/daily/dotnet-sdk-win-arm64.zip
|
||||
[win-arm64-zip-checksum-main]: https://aka.ms/dotnet/9.0.1xx/daily/dotnet-sdk-win-arm64.zip.sha
|
||||
|
||||
[win-arm64-badge-8.0.2XX]: https://aka.ms/dotnet/8.0.2xx/daily/win_arm64_Release_version_badge.svg?no-cache
|
||||
[win-arm64-version-8.0.2XX]: https://aka.ms/dotnet/8.0.2xx/daily/productCommit-win-arm64.txt
|
||||
[win-arm64-installer-8.0.2XX]: https://aka.ms/dotnet/8.0.2xx/daily/dotnet-sdk-win-arm64.exe
|
||||
[win-arm64-installer-checksum-8.0.2XX]: https://aka.ms/dotnet/8.0.2xx/daily/dotnet-sdk-win-arm64.exe.sha
|
||||
[win-arm64-zip-8.0.2XX]: https://aka.ms/dotnet/8.0.2xx/daily/dotnet-sdk-win-arm64.zip
|
||||
[win-arm64-zip-checksum-8.0.2XX]: https://aka.ms/dotnet/8.0.2xx/daily/dotnet-sdk-win-arm64.zip.sha
|
||||
[win-arm64-badge-8.0.3XX]: https://aka.ms/dotnet/8.0.3xx/daily/win_arm64_Release_version_badge.svg?no-cache
|
||||
[win-arm64-version-8.0.3XX]: https://aka.ms/dotnet/8.0.3xx/daily/productCommit-win-arm64.txt
|
||||
[win-arm64-installer-8.0.3XX]: https://aka.ms/dotnet/8.0.3xx/daily/dotnet-sdk-win-arm64.exe
|
||||
[win-arm64-installer-checksum-8.0.3XX]: https://aka.ms/dotnet/8.0.3xx/daily/dotnet-sdk-win-arm64.exe.sha
|
||||
[win-arm64-zip-8.0.3XX]: https://aka.ms/dotnet/8.0.3xx/daily/dotnet-sdk-win-arm64.zip
|
||||
[win-arm64-zip-checksum-8.0.3XX]: https://aka.ms/dotnet/8.0.3xx/daily/dotnet-sdk-win-arm64.zip.sha
|
||||
|
||||
[win-arm64-badge-7.0.4XX]: https://aka.ms/dotnet/7.0.4xx/daily/win_arm64_Release_version_badge.svg?no-cache
|
||||
[win-arm64-version-7.0.4XX]: https://aka.ms/dotnet/7.0.4xx/daily/productCommit-win-arm64.txt
|
||||
|
|
|
@ -3,8 +3,6 @@
|
|||
|
||||
<UsageData>
|
||||
<IgnorePatterns>
|
||||
<UsagePattern IdentityGlob="Microsoft.SourceBuild.Intermediate.*/*" />
|
||||
|
||||
<!--
|
||||
Temporary exclusion for NuGet packages, since NuGet is not producing source-build intermediate package,
|
||||
see: https://github.com/NuGet/Home/issues/11059
|
||||
|
|
|
@ -5,42 +5,42 @@
|
|||
Source-build uses transitive dependency resolution to determine correct build SHA of all product contributing repos.
|
||||
The order of dependencies is important and should not be modified without approval from dotnet/source-build-internal.
|
||||
-->
|
||||
<Dependency Name="Microsoft.WindowsDesktop.App.Ref" Version="9.0.0-alpha.1.23558.4" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Dependency Name="Microsoft.WindowsDesktop.App.Ref" Version="9.0.0-preview.2.24075.4" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Uri>https://github.com/dotnet/windowsdesktop</Uri>
|
||||
<Sha>143fe7a0470e35717d26cded473041eb8bb5a75d</Sha>
|
||||
<Sha>22ec63c9172b7998b103de28ceb98cf5b53d52b3</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="VS.Redist.Common.WindowsDesktop.SharedFramework.x64.9.0" Version="9.0.0-alpha.1.23558.4" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Dependency Name="VS.Redist.Common.WindowsDesktop.SharedFramework.x64.9.0" Version="9.0.0-preview.2.24075.4" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Uri>https://github.com/dotnet/windowsdesktop</Uri>
|
||||
<Sha>143fe7a0470e35717d26cded473041eb8bb5a75d</Sha>
|
||||
<Sha>22ec63c9172b7998b103de28ceb98cf5b53d52b3</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="VS.Redist.Common.WindowsDesktop.TargetingPack.x64.9.0" Version="9.0.0-alpha.1.23558.4" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Dependency Name="VS.Redist.Common.WindowsDesktop.TargetingPack.x64.9.0" Version="9.0.0-preview.2.24075.4" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Uri>https://github.com/dotnet/windowsdesktop</Uri>
|
||||
<Sha>143fe7a0470e35717d26cded473041eb8bb5a75d</Sha>
|
||||
<Sha>22ec63c9172b7998b103de28ceb98cf5b53d52b3</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.WindowsDesktop.App.Runtime.win-x64" Version="9.0.0-alpha.1.23558.4" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Dependency Name="Microsoft.WindowsDesktop.App.Runtime.win-x64" Version="9.0.0-preview.2.24075.4" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Uri>https://github.com/dotnet/windowsdesktop</Uri>
|
||||
<Sha>143fe7a0470e35717d26cded473041eb8bb5a75d</Sha>
|
||||
<Sha>22ec63c9172b7998b103de28ceb98cf5b53d52b3</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="VS.Redist.Common.NetCore.SharedFramework.x64.9.0" Version="9.0.0-alpha.1.23560.9" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Dependency Name="VS.Redist.Common.NetCore.SharedFramework.x64.9.0" Version="9.0.0-preview.2.24075.11" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Uri>https://github.com/dotnet/runtime</Uri>
|
||||
<Sha>c422fca30d826b29aadf6a923369e1848a4aac97</Sha>
|
||||
<Sha>0d81a5ac76948b49840c3a6f44703bfd6489109b</Sha>
|
||||
<SourceBuild RepoName="runtime" ManagedOnly="false" />
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.NETCore.App.Ref" Version="9.0.0-alpha.1.23560.9" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Dependency Name="Microsoft.NETCore.App.Ref" Version="9.0.0-preview.2.24075.11" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Uri>https://github.com/dotnet/runtime</Uri>
|
||||
<Sha>c422fca30d826b29aadf6a923369e1848a4aac97</Sha>
|
||||
<Sha>0d81a5ac76948b49840c3a6f44703bfd6489109b</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="VS.Redist.Common.NetCore.TargetingPack.x64.9.0" Version="9.0.0-alpha.1.23560.9" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Dependency Name="VS.Redist.Common.NetCore.TargetingPack.x64.9.0" Version="9.0.0-preview.2.24075.11" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Uri>https://github.com/dotnet/runtime</Uri>
|
||||
<Sha>c422fca30d826b29aadf6a923369e1848a4aac97</Sha>
|
||||
<Sha>0d81a5ac76948b49840c3a6f44703bfd6489109b</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.NETCore.App.Runtime.win-x64" Version="9.0.0-alpha.1.23560.9" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Dependency Name="Microsoft.NETCore.App.Runtime.win-x64" Version="9.0.0-preview.2.24075.11" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Uri>https://github.com/dotnet/runtime</Uri>
|
||||
<Sha>c422fca30d826b29aadf6a923369e1848a4aac97</Sha>
|
||||
<Sha>0d81a5ac76948b49840c3a6f44703bfd6489109b</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.NETCore.App.Host.win-x64" Version="9.0.0-alpha.1.23560.9" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Dependency Name="Microsoft.NETCore.App.Host.win-x64" Version="9.0.0-preview.2.24075.11" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Uri>https://github.com/dotnet/runtime</Uri>
|
||||
<Sha>c422fca30d826b29aadf6a923369e1848a4aac97</Sha>
|
||||
<Sha>0d81a5ac76948b49840c3a6f44703bfd6489109b</Sha>
|
||||
</Dependency>
|
||||
<!-- Change blob version in GenerateLayout.targets if this is unpinned to service targeting pack -->
|
||||
<!-- No new netstandard.library planned for 3.1 timeframe at this time. -->
|
||||
|
@ -48,55 +48,55 @@
|
|||
<Uri>https://github.com/dotnet/core-setup</Uri>
|
||||
<Sha>7d57652f33493fa022125b7f63aad0d70c52d810</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.NETCore.Platforms" Version="9.0.0-alpha.1.23560.9" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Dependency Name="Microsoft.NETCore.Platforms" Version="9.0.0-preview.2.24075.11" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Uri>https://github.com/dotnet/runtime</Uri>
|
||||
<Sha>c422fca30d826b29aadf6a923369e1848a4aac97</Sha>
|
||||
<Sha>0d81a5ac76948b49840c3a6f44703bfd6489109b</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.AspNetCore.App.Ref" Version="9.0.0-alpha.1.23560.2" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Dependency Name="Microsoft.AspNetCore.App.Ref" Version="9.0.0-preview.2.24075.3" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Uri>https://github.com/dotnet/aspnetcore</Uri>
|
||||
<Sha>5611ee30dd6966f580da678381036be777bd739b</Sha>
|
||||
<Sha>de12f70f8d536a72bd8c6a2add8f6c8ad8f344af</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.AspNetCore.App.Ref.Internal" Version="9.0.0-alpha.1.23560.2" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Dependency Name="Microsoft.AspNetCore.App.Ref.Internal" Version="9.0.0-preview.2.24075.3" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Uri>https://github.com/dotnet/aspnetcore</Uri>
|
||||
<Sha>5611ee30dd6966f580da678381036be777bd739b</Sha>
|
||||
<Sha>de12f70f8d536a72bd8c6a2add8f6c8ad8f344af</Sha>
|
||||
<SourceBuild RepoName="aspnetcore" ManagedOnly="true" />
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.AspNetCore.App.Runtime.win-x64" Version="9.0.0-alpha.1.23560.2" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Dependency Name="Microsoft.AspNetCore.App.Runtime.win-x64" Version="9.0.0-preview.2.24075.3" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Uri>https://github.com/dotnet/aspnetcore</Uri>
|
||||
<Sha>5611ee30dd6966f580da678381036be777bd739b</Sha>
|
||||
<Sha>de12f70f8d536a72bd8c6a2add8f6c8ad8f344af</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="VS.Redist.Common.AspNetCore.SharedFramework.x64.9.0" Version="9.0.0-alpha.1.23560.2" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Dependency Name="VS.Redist.Common.AspNetCore.SharedFramework.x64.9.0" Version="9.0.0-preview.2.24075.3" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Uri>https://github.com/dotnet/aspnetcore</Uri>
|
||||
<Sha>5611ee30dd6966f580da678381036be777bd739b</Sha>
|
||||
<Sha>de12f70f8d536a72bd8c6a2add8f6c8ad8f344af</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="dotnet-dev-certs" Version="9.0.0-alpha.1.23560.2" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Dependency Name="dotnet-dev-certs" Version="9.0.0-preview.2.24075.3" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Uri>https://github.com/dotnet/aspnetcore</Uri>
|
||||
<Sha>5611ee30dd6966f580da678381036be777bd739b</Sha>
|
||||
<Sha>de12f70f8d536a72bd8c6a2add8f6c8ad8f344af</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="dotnet-user-jwts" Version="9.0.0-alpha.1.23560.2" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Dependency Name="dotnet-user-jwts" Version="9.0.0-preview.2.24075.3" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Uri>https://github.com/dotnet/aspnetcore</Uri>
|
||||
<Sha>5611ee30dd6966f580da678381036be777bd739b</Sha>
|
||||
<Sha>de12f70f8d536a72bd8c6a2add8f6c8ad8f344af</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="dotnet-user-secrets" Version="9.0.0-alpha.1.23560.2" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Dependency Name="dotnet-user-secrets" Version="9.0.0-preview.2.24075.3" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Uri>https://github.com/dotnet/aspnetcore</Uri>
|
||||
<Sha>5611ee30dd6966f580da678381036be777bd739b</Sha>
|
||||
<Sha>de12f70f8d536a72bd8c6a2add8f6c8ad8f344af</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.DotNet.Common.ItemTemplates" Version="9.0.100-alpha.1.23559.2">
|
||||
<Dependency Name="Microsoft.DotNet.Common.ItemTemplates" Version="9.0.100-preview.2.24076.3">
|
||||
<Uri>https://github.com/dotnet/sdk</Uri>
|
||||
<Sha>62aa4b7c6c2f6fcf673ec2d9aacc8ca07f51913b</Sha>
|
||||
<Sha>370bf4de035b328f8aadd69f0c2abbad14196f4f</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.TemplateEngine.Cli" Version="9.0.100-alpha.1.23559.2">
|
||||
<Dependency Name="Microsoft.TemplateEngine.Cli" Version="9.0.100-preview.2.24076.3">
|
||||
<Uri>https://github.com/dotnet/sdk</Uri>
|
||||
<Sha>62aa4b7c6c2f6fcf673ec2d9aacc8ca07f51913b</Sha>
|
||||
<Sha>370bf4de035b328f8aadd69f0c2abbad14196f4f</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.NET.Sdk" Version="9.0.100-alpha.1.23559.2">
|
||||
<Dependency Name="Microsoft.NET.Sdk" Version="9.0.100-preview.2.24076.3">
|
||||
<Uri>https://github.com/dotnet/sdk</Uri>
|
||||
<Sha>62aa4b7c6c2f6fcf673ec2d9aacc8ca07f51913b</Sha>
|
||||
<Sha>370bf4de035b328f8aadd69f0c2abbad14196f4f</Sha>
|
||||
<SourceBuild RepoName="sdk" ManagedOnly="true" />
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.DotNet.MSBuildSdkResolver" Version="9.0.100-alpha.1.23559.2">
|
||||
<Dependency Name="Microsoft.DotNet.MSBuildSdkResolver" Version="9.0.100-preview.2.24076.3">
|
||||
<Uri>https://github.com/dotnet/sdk</Uri>
|
||||
<Sha>62aa4b7c6c2f6fcf673ec2d9aacc8ca07f51913b</Sha>
|
||||
<Sha>370bf4de035b328f8aadd69f0c2abbad14196f4f</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.DotNet.Test.ProjectTemplates.2.1" Version="1.0.2-beta4.22406.1">
|
||||
<Uri>https://github.com/dotnet/test-templates</Uri>
|
||||
|
@ -106,63 +106,63 @@
|
|||
<Uri>https://github.com/dotnet/test-templates</Uri>
|
||||
<Sha>307b8f538d83a955d8f6dd909eee41a5555f2f4d</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.DotNet.Test.ProjectTemplates.6.0" Version="1.1.0-rc.23559.1">
|
||||
<Dependency Name="Microsoft.DotNet.Test.ProjectTemplates.6.0" Version="1.1.0-rc.24069.1">
|
||||
<Uri>https://github.com/dotnet/test-templates</Uri>
|
||||
<Sha>e1aecaf3a332e25fae8cc7aa09d524b5e7c4a47a</Sha>
|
||||
<Sha>becc4bd157cd6608b51a5ffe414a5d2de6330272</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.DotNet.Test.ProjectTemplates.7.0" Version="1.1.0-rc.23559.1">
|
||||
<Dependency Name="Microsoft.DotNet.Test.ProjectTemplates.7.0" Version="1.1.0-rc.24069.1">
|
||||
<Uri>https://github.com/dotnet/test-templates</Uri>
|
||||
<Sha>e1aecaf3a332e25fae8cc7aa09d524b5e7c4a47a</Sha>
|
||||
<Sha>becc4bd157cd6608b51a5ffe414a5d2de6330272</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.DotNet.Test.ProjectTemplates.8.0" Version="1.1.0-rc.24076.1">
|
||||
<Uri>https://github.com/dotnet/test-templates</Uri>
|
||||
<Sha>5fc17f5abd212c64fe9adcc3641283954a7555aa</Sha>
|
||||
<SourceBuild RepoName="test-templates" ManagedOnly="true" />
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.DotNet.Test.ProjectTemplates.8.0" Version="1.1.0-rc.23559.1">
|
||||
<Dependency Name="Microsoft.DotNet.Test.ProjectTemplates.9.0" Version="1.1.0-rc.24076.1">
|
||||
<Uri>https://github.com/dotnet/test-templates</Uri>
|
||||
<Sha>e1aecaf3a332e25fae8cc7aa09d524b5e7c4a47a</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.DotNet.Test.ProjectTemplates.9.0" Version="1.1.0-rc.23559.1">
|
||||
<Uri>https://github.com/dotnet/test-templates</Uri>
|
||||
<Sha>e1aecaf3a332e25fae8cc7aa09d524b5e7c4a47a</Sha>
|
||||
<Sha>5fc17f5abd212c64fe9adcc3641283954a7555aa</Sha>
|
||||
</Dependency>
|
||||
<!-- For coherency purposes, these versions should be gated by the versions of winforms and wpf routed via windowsdesktop -->
|
||||
<Dependency Name="Microsoft.Dotnet.WinForms.ProjectTemplates" Version="9.0.0-alpha.1.23557.11" CoherentParentDependency="Microsoft.WindowsDesktop.App.Runtime.win-x64">
|
||||
<Dependency Name="Microsoft.Dotnet.WinForms.ProjectTemplates" Version="9.0.0-preview.2.24074.4" CoherentParentDependency="Microsoft.WindowsDesktop.App.Runtime.win-x64">
|
||||
<Uri>https://github.com/dotnet/winforms</Uri>
|
||||
<Sha>1d604b5425cbbaf54f2b5be181096d1cf6b0271d</Sha>
|
||||
<Sha>daf3f4db5de296ac78b51d279e86a38c62255e0b</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.DotNet.Wpf.ProjectTemplates" Version="9.0.0-alpha.1.23558.1" CoherentParentDependency="Microsoft.WindowsDesktop.App.Runtime.win-x64">
|
||||
<Dependency Name="Microsoft.DotNet.Wpf.ProjectTemplates" Version="9.0.0-preview.2.24075.1" CoherentParentDependency="Microsoft.WindowsDesktop.App.Runtime.win-x64">
|
||||
<Uri>https://github.com/dotnet/wpf</Uri>
|
||||
<Sha>bac14e97f89dcdba259ccb21d9eaa8ad47f262a7</Sha>
|
||||
<Sha>b9272765feae8da69fee7340c127add8296917fb</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.FSharp.Compiler" Version="12.8.0-beta.23556.4" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Dependency Name="Microsoft.FSharp.Compiler" Version="12.8.300-beta.24075.4" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Uri>https://github.com/dotnet/fsharp</Uri>
|
||||
<Sha>18a78f9bc0dff4d0dc4966b7a53b701f02dc81bd</Sha>
|
||||
<Sha>32898dc51efc669de98e7e47f57d521bc07ac4cc</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.SourceBuild.Intermediate.fsharp" Version="8.0.200-beta.23556.4" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Dependency Name="Microsoft.SourceBuild.Intermediate.fsharp" Version="8.0.300-beta.24075.4" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Uri>https://github.com/dotnet/fsharp</Uri>
|
||||
<Sha>18a78f9bc0dff4d0dc4966b7a53b701f02dc81bd</Sha>
|
||||
<Sha>32898dc51efc669de98e7e47f57d521bc07ac4cc</Sha>
|
||||
<SourceBuild RepoName="fsharp" ManagedOnly="true" />
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.NET.Test.Sdk" Version="17.9.0-preview-23557-03" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Dependency Name="Microsoft.NET.Test.Sdk" Version="17.10.0-preview-24073-02" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Uri>https://github.com/microsoft/vstest</Uri>
|
||||
<Sha>9dce952ad80d9ff2e9979cd3924b58306c3d91ae</Sha>
|
||||
<Sha>c0c0e75fb8ea396a8b0717d17c2e738975d412e7</Sha>
|
||||
<SourceBuild RepoName="vstest" ManagedOnly="true" />
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.NET.ILLink.Tasks" Version="9.0.0-alpha.1.23560.9" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Dependency Name="Microsoft.NET.ILLink.Tasks" Version="9.0.0-preview.2.24075.11" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Uri>https://github.com/dotnet/runtime</Uri>
|
||||
<Sha>c422fca30d826b29aadf6a923369e1848a4aac97</Sha>
|
||||
<Sha>0d81a5ac76948b49840c3a6f44703bfd6489109b</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Net.Compilers.Toolset" Version="4.9.0-2.23559.5" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Dependency Name="Microsoft.Net.Compilers.Toolset" Version="4.10.0-1.24067.21" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Uri>https://github.com/dotnet/roslyn</Uri>
|
||||
<Sha>00aa3333772d0d8032a23404fe10f296e99652bd</Sha>
|
||||
<Sha>3cd939f76803da435c20b082a5cfcc844386fcfb</Sha>
|
||||
<SourceBuild RepoName="roslyn" ManagedOnly="true" />
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Build" Version="17.9.0-preview-23557-02" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Dependency Name="Microsoft.Build" Version="17.10.0-preview-24073-02" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Uri>https://github.com/dotnet/msbuild</Uri>
|
||||
<Sha>5d1509792899a9ac25f59b8b0034dd98989a30b1</Sha>
|
||||
<Sha>d51ae5297cd0a24caa8cfe356442cc8634c3f087</Sha>
|
||||
<SourceBuild RepoName="msbuild" ManagedOnly="true" />
|
||||
</Dependency>
|
||||
<Dependency Name="NuGet.Build.Tasks" Version="6.9.0-preview.1.23" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Dependency Name="NuGet.Build.Tasks" Version="6.9.0-rc.86" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Uri>https://github.com/nuget/nuget.client</Uri>
|
||||
<Sha>b10ba996eeb40da639273848408d2628e01076f4</Sha>
|
||||
<Sha>d55931a69dcda3dcb87ba46a09fe268e0febc223</Sha>
|
||||
<SourceBuildTarball RepoName="nuget-client" ManagedOnly="true" />
|
||||
</Dependency>
|
||||
<!-- TODO -->
|
||||
|
@ -170,80 +170,80 @@
|
|||
<Uri>https://github.com/Microsoft/ApplicationInsights-dotnet</Uri>
|
||||
<Sha>53b80940842204f78708a538628288ff5d741a1d</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.NET.Workload.Emscripten.Current.Manifest-9.0.100.Transport" Version="9.0.0-alpha.1.23530.1" CoherentParentDependency="Microsoft.NETCore.App.Runtime.win-x64">
|
||||
<Dependency Name="Microsoft.NET.Workload.Emscripten.Current.Manifest-9.0.100.Transport" Version="9.0.0-alpha.1.24072.1" CoherentParentDependency="Microsoft.NETCore.App.Runtime.win-x64">
|
||||
<Uri>https://github.com/dotnet/emsdk</Uri>
|
||||
<Sha>a448a9c1b1ac8d0cefd0dbc0c7a8f12a3fbd1d57</Sha>
|
||||
<Sha>ae7c93e25ae596594b3b22d64115f374a3595912</Sha>
|
||||
<SourceBuild RepoName="emsdk" ManagedOnly="true" />
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Deployment.DotNet.Releases" Version="2.0.0-preview.1.23509.2" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Dependency Name="Microsoft.NET.Sdk.Aspire.Manifest-8.0.100" Version="8.0.0-preview.3.24060.4">
|
||||
<Uri>https://github.com/dotnet/aspire</Uri>
|
||||
<Sha>66a1dd77e4077592a587c1429c8814d1057dc474</Sha>
|
||||
<SourceBuild RepoName="aspire" ManagedOnly="true" />
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Deployment.DotNet.Releases" Version="2.0.0-preview.1.24067.1" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Uri>https://github.com/dotnet/deployment-tools</Uri>
|
||||
<Sha>1d174267bf45dabbadb12602b1170329611fd219</Sha>
|
||||
<Sha>e56c69b0610b50407d29fdc2dda2574712a7b94d</Sha>
|
||||
</Dependency>
|
||||
<!-- Explicit dependency because Microsoft.Deployment.DotNet.Releases has different versioning
|
||||
than the SB intermediate -->
|
||||
<Dependency Name="Microsoft.SourceBuild.Intermediate.deployment-tools" Version="8.0.0-preview.6.23509.2" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Dependency Name="Microsoft.SourceBuild.Intermediate.deployment-tools" Version="9.0.0-preview.1.24067.1" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Uri>https://github.com/dotnet/deployment-tools</Uri>
|
||||
<Sha>1d174267bf45dabbadb12602b1170329611fd219</Sha>
|
||||
<Sha>e56c69b0610b50407d29fdc2dda2574712a7b94d</Sha>
|
||||
<SourceBuild RepoName="deployment-tools" ManagedOnly="true" />
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.SourceBuild.Intermediate.source-build-externals" Version="9.0.0-alpha.1.23556.2">
|
||||
<Dependency Name="Microsoft.SourceBuild.Intermediate.source-build-externals" Version="9.0.0-alpha.1.24076.1">
|
||||
<Uri>https://github.com/dotnet/source-build-externals</Uri>
|
||||
<Sha>283f1ead54cc527da6e9745b6f36a086ac997211</Sha>
|
||||
<Sha>414a85bf970355c0e91d6a2de1ee183fafbfcecd</Sha>
|
||||
<SourceBuild RepoName="source-build-externals" ManagedOnly="true" />
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.SourceBuild.Intermediate.symreader" Version="2.1.0-beta.23253.1">
|
||||
<Uri>https://github.com/dotnet/symreader</Uri>
|
||||
<Sha>2c8079e2e8e78c0cd11ac75a32014756136ecdb9</Sha>
|
||||
<SourceBuild RepoName="symreader" ManagedOnly="true" />
|
||||
</Dependency>
|
||||
<Dependency Name="System.CommandLine" Version="2.0.0-beta4.23307.1" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Dependency Name="System.CommandLine" Version="2.0.0-beta4.24068.1" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Uri>https://github.com/dotnet/command-line-api</Uri>
|
||||
<Sha>02fe27cd6a9b001c8feb7938e6ef4b3799745759</Sha>
|
||||
<Sha>ecd2ce5eafbba3008a7d4f5d04b025d30928c812</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.SourceBuild.Intermediate.command-line-api" Version="0.1.430701" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Dependency Name="Microsoft.SourceBuild.Intermediate.command-line-api" Version="0.1.506801" CoherentParentDependency="Microsoft.NET.Sdk">
|
||||
<Uri>https://github.com/dotnet/command-line-api</Uri>
|
||||
<Sha>02fe27cd6a9b001c8feb7938e6ef4b3799745759</Sha>
|
||||
<Sha>ecd2ce5eafbba3008a7d4f5d04b025d30928c812</Sha>
|
||||
<SourceBuild RepoName="command-line-api" ManagedOnly="true" />
|
||||
</Dependency>
|
||||
</ProductDependencies>
|
||||
<ToolsetDependencies>
|
||||
<Dependency Name="Microsoft.DotNet.Arcade.Sdk" Version="9.0.0-beta.23559.3">
|
||||
<Dependency Name="Microsoft.DotNet.Arcade.Sdk" Version="9.0.0-beta.24075.2">
|
||||
<Uri>https://github.com/dotnet/arcade</Uri>
|
||||
<Sha>a6513a141bc5cb0d7d625399918fcbca1dc8a412</Sha>
|
||||
<Sha>1d8f27f89c3b167f63e28e73a3d9ab345e81d310</Sha>
|
||||
<SourceBuild RepoName="arcade" ManagedOnly="true" />
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.DotNet.CMake.Sdk" Version="9.0.0-beta.23559.3">
|
||||
<Dependency Name="Microsoft.DotNet.CMake.Sdk" Version="9.0.0-beta.24075.2">
|
||||
<Uri>https://github.com/dotnet/arcade</Uri>
|
||||
<Sha>a6513a141bc5cb0d7d625399918fcbca1dc8a412</Sha>
|
||||
<Sha>1d8f27f89c3b167f63e28e73a3d9ab345e81d310</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.DotNet.Build.Tasks.Installers" Version="9.0.0-beta.23559.3">
|
||||
<Dependency Name="Microsoft.DotNet.Build.Tasks.Installers" Version="9.0.0-beta.24075.2">
|
||||
<Uri>https://github.com/dotnet/arcade</Uri>
|
||||
<Sha>a6513a141bc5cb0d7d625399918fcbca1dc8a412</Sha>
|
||||
<Sha>1d8f27f89c3b167f63e28e73a3d9ab345e81d310</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.DotNet.Darc" Version="1.1.0-beta.23551.2">
|
||||
<Dependency Name="Microsoft.DotNet.Darc" Version="1.1.0-beta.24074.1">
|
||||
<Uri>https://github.com/dotnet/arcade-services</Uri>
|
||||
<Sha>88b0cbb096999d03068ddc9945465a3f5b6ba5da</Sha>
|
||||
<Sha>70e9b79b12680b7be6c36913f1d0ecb5cc9e32cf</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.DotNet.DarcLib" Version="1.1.0-beta.23551.2">
|
||||
<Dependency Name="Microsoft.DotNet.DarcLib" Version="1.1.0-beta.24074.1">
|
||||
<Uri>https://github.com/dotnet/arcade-services</Uri>
|
||||
<Sha>88b0cbb096999d03068ddc9945465a3f5b6ba5da</Sha>
|
||||
<Sha>70e9b79b12680b7be6c36913f1d0ecb5cc9e32cf</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.DotNet.XliffTasks" Version="9.0.0-beta.23559.3">
|
||||
<Dependency Name="Microsoft.DotNet.XliffTasks" Version="9.0.0-beta.24075.2">
|
||||
<Uri>https://github.com/dotnet/arcade</Uri>
|
||||
<Sha>a6513a141bc5cb0d7d625399918fcbca1dc8a412</Sha>
|
||||
<Sha>1d8f27f89c3b167f63e28e73a3d9ab345e81d310</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.Extensions.Logging.Console" Version="8.0.0-alpha.1.22557.12">
|
||||
<Dependency Name="Microsoft.Extensions.Logging.Console" Version="9.0.0-alpha.1.23612.13">
|
||||
<Uri>https://github.com/dotnet/runtime</Uri>
|
||||
<Sha>af841c8b33cecc92d74222298f1e45bf7bf3d90a</Sha>
|
||||
<Sha>ab1a8224cdf115b65e0db5dc88d11f205068f444</Sha>
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.SourceBuild.Intermediate.source-build-reference-packages" Version="9.0.0-alpha.1.23558.1">
|
||||
<Dependency Name="Microsoft.SourceBuild.Intermediate.source-build-reference-packages" Version="9.0.0-alpha.1.24075.1">
|
||||
<Uri>https://github.com/dotnet/source-build-reference-packages</Uri>
|
||||
<Sha>8b3155afc95d149699cbd761b18b059755cfd198</Sha>
|
||||
<Sha>e659f328bf255d3e17e81296117c3aed1d461f2f</Sha>
|
||||
<SourceBuild RepoName="source-build-reference-packages" ManagedOnly="true" />
|
||||
</Dependency>
|
||||
<Dependency Name="Microsoft.DotNet.ScenarioTests.SdkTemplateTests" Version="8.0.0-preview.23424.2">
|
||||
<Dependency Name="Microsoft.DotNet.ScenarioTests.SdkTemplateTests" Version="9.0.0-preview.24057.2">
|
||||
<Uri>https://github.com/dotnet/scenario-tests</Uri>
|
||||
<Sha>8af694a5e3986a27ccfee1a638ba311c7e9bc55d</Sha>
|
||||
<Sha>bfde902a10d7b672f4fc7e844198ede405dbb9c6</Sha>
|
||||
<SourceBuild RepoName="scenario-tests" ManagedOnly="true" />
|
||||
</Dependency>
|
||||
</ToolsetDependencies>
|
||||
|
|
|
@ -16,17 +16,18 @@
|
|||
<StabilizePackageVersion Condition="'$(StabilizePackageVersion)' == ''">false</StabilizePackageVersion>
|
||||
<DotNetFinalVersionKind Condition="'$(StabilizePackageVersion)' == 'true'">release</DotNetFinalVersionKind>
|
||||
<!-- Calculate prerelease label -->
|
||||
<PreReleaseVersionLabel Condition="'$(StabilizePackageVersion)' != 'true'">alpha</PreReleaseVersionLabel>
|
||||
<PreReleaseVersionLabel Condition="'$(StabilizePackageVersion)' != 'true'">preview</PreReleaseVersionLabel>
|
||||
<PreReleaseVersionLabel Condition="'$(StabilizePackageVersion)' == 'true' and '$(VersionFeature)' == '00'">rtm</PreReleaseVersionLabel>
|
||||
<PreReleaseVersionLabel Condition="'$(StabilizePackageVersion)' == 'true' and '$(VersionFeature)' != '00'">servicing</PreReleaseVersionLabel>
|
||||
<PreReleaseVersionIteration Condition="'$(StabilizePackageVersion)' != 'true'">1</PreReleaseVersionIteration>
|
||||
<PreReleaseVersionIteration Condition="'$(StabilizePackageVersion)' != 'true'">2</PreReleaseVersionIteration>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<VersionFeature21>30</VersionFeature21>
|
||||
<VersionFeature31>32</VersionFeature31>
|
||||
<VersionFeature50>17</VersionFeature50>
|
||||
<VersionFeature60>22</VersionFeature60>
|
||||
<VersionFeature70>11</VersionFeature70>
|
||||
<VersionFeature60>26</VersionFeature60>
|
||||
<VersionFeature70>15</VersionFeature70>
|
||||
<VersionFeature80>1</VersionFeature80>
|
||||
<!-- Should be kept in sync with VersionFeature70. It should match the version of Microsoft.NET.ILLink.Tasks
|
||||
referenced by the same 7.0 SDK that references the 7.0.VersionFeature70 runtime pack. -->
|
||||
<_NET70ILLinkPackVersion>7.0.100-1.23211.1</_NET70ILLinkPackVersion>
|
||||
|
@ -39,19 +40,19 @@
|
|||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<!-- Dependency from https://github.com/dotnet/arcade -->
|
||||
<MicrosoftDotNetBuildTasksInstallersPackageVersion>9.0.0-beta.23559.3</MicrosoftDotNetBuildTasksInstallersPackageVersion>
|
||||
<MicrosoftDotNetBuildTasksInstallersPackageVersion>9.0.0-beta.24075.2</MicrosoftDotNetBuildTasksInstallersPackageVersion>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<!-- Dependency from https://github.com/dotnet/arcade-services -->
|
||||
<MicrosoftDotNetDarcLibVersion>1.1.0-beta.23551.2</MicrosoftDotNetDarcLibVersion>
|
||||
<MicrosoftDotNetDarcLibVersion>1.1.0-beta.24074.1</MicrosoftDotNetDarcLibVersion>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<!-- Dependency from https://github.com/dotnet/winforms -->
|
||||
<MicrosoftDotnetWinFormsProjectTemplatesPackageVersion>9.0.0-alpha.1.23557.11</MicrosoftDotnetWinFormsProjectTemplatesPackageVersion>
|
||||
<MicrosoftDotnetWinFormsProjectTemplatesPackageVersion>9.0.0-preview.2.24074.4</MicrosoftDotnetWinFormsProjectTemplatesPackageVersion>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<!-- Dependency from https://github.com/dotnet/wpf -->
|
||||
<MicrosoftDotNetWpfProjectTemplatesPackageVersion>9.0.0-alpha.1.23558.1</MicrosoftDotNetWpfProjectTemplatesPackageVersion>
|
||||
<MicrosoftDotNetWpfProjectTemplatesPackageVersion>9.0.0-preview.2.24075.1</MicrosoftDotNetWpfProjectTemplatesPackageVersion>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<!-- Dependency from https://github.com/dotnet/test-templates -->
|
||||
|
@ -61,10 +62,10 @@
|
|||
<MicrosoftDotNetTestProjectTemplates31PackageVersion>1.1.0-rc.22558.1</MicrosoftDotNetTestProjectTemplates31PackageVersion>
|
||||
<MicrosoftDotNetTestProjectTemplates50PackageVersion>1.1.0-rc.23558.1</MicrosoftDotNetTestProjectTemplates50PackageVersion>
|
||||
<!-- Supported versions -->
|
||||
<MicrosoftDotNetTestProjectTemplates60PackageVersion>1.1.0-rc.23559.1</MicrosoftDotNetTestProjectTemplates60PackageVersion>
|
||||
<MicrosoftDotNetTestProjectTemplates70PackageVersion>1.1.0-rc.23559.1</MicrosoftDotNetTestProjectTemplates70PackageVersion>
|
||||
<MicrosoftDotNetTestProjectTemplates80PackageVersion>1.1.0-rc.23559.1</MicrosoftDotNetTestProjectTemplates80PackageVersion>
|
||||
<MicrosoftDotNetTestProjectTemplates90PackageVersion>1.1.0-rc.23559.1</MicrosoftDotNetTestProjectTemplates90PackageVersion>
|
||||
<MicrosoftDotNetTestProjectTemplates60PackageVersion>1.1.0-rc.24069.1</MicrosoftDotNetTestProjectTemplates60PackageVersion>
|
||||
<MicrosoftDotNetTestProjectTemplates70PackageVersion>1.1.0-rc.24069.1</MicrosoftDotNetTestProjectTemplates70PackageVersion>
|
||||
<MicrosoftDotNetTestProjectTemplates80PackageVersion>1.1.0-rc.24076.1</MicrosoftDotNetTestProjectTemplates80PackageVersion>
|
||||
<MicrosoftDotNetTestProjectTemplates90PackageVersion>1.1.0-rc.24076.1</MicrosoftDotNetTestProjectTemplates90PackageVersion>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<!-- NUnit3.DotNetNew.Template versions do not 'flow in' -->
|
||||
|
@ -72,13 +73,13 @@
|
|||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<!-- Dependencies from https://github.com/aspnet/AspNetCore -->
|
||||
<MicrosoftAspNetCoreAppRuntimewinx64PackageVersion>9.0.0-alpha.1.23560.2</MicrosoftAspNetCoreAppRuntimewinx64PackageVersion>
|
||||
<MicrosoftAspNetCoreAppRefPackageVersion>9.0.0-alpha.1.23560.2</MicrosoftAspNetCoreAppRefPackageVersion>
|
||||
<MicrosoftAspNetCoreAppRefInternalPackageVersion>9.0.0-alpha.1.23560.2</MicrosoftAspNetCoreAppRefInternalPackageVersion>
|
||||
<VSRedistCommonAspNetCoreSharedFrameworkx6490PackageVersion>9.0.0-alpha.1.23560.2</VSRedistCommonAspNetCoreSharedFrameworkx6490PackageVersion>
|
||||
<DotnetDevCertsPackageVersion>9.0.0-alpha.1.23560.2</DotnetDevCertsPackageVersion>
|
||||
<DotnetUserJwtsPackageVersion>9.0.0-alpha.1.23560.2</DotnetUserJwtsPackageVersion>
|
||||
<DotnetUserSecretsPackageVersion>9.0.0-alpha.1.23560.2</DotnetUserSecretsPackageVersion>
|
||||
<MicrosoftAspNetCoreAppRuntimewinx64PackageVersion>9.0.0-preview.2.24075.3</MicrosoftAspNetCoreAppRuntimewinx64PackageVersion>
|
||||
<MicrosoftAspNetCoreAppRefPackageVersion>9.0.0-preview.2.24075.3</MicrosoftAspNetCoreAppRefPackageVersion>
|
||||
<MicrosoftAspNetCoreAppRefInternalPackageVersion>9.0.0-preview.2.24075.3</MicrosoftAspNetCoreAppRefInternalPackageVersion>
|
||||
<VSRedistCommonAspNetCoreSharedFrameworkx6490PackageVersion>9.0.0-preview.2.24075.3</VSRedistCommonAspNetCoreSharedFrameworkx6490PackageVersion>
|
||||
<DotnetDevCertsPackageVersion>9.0.0-preview.2.24075.3</DotnetDevCertsPackageVersion>
|
||||
<DotnetUserJwtsPackageVersion>9.0.0-preview.2.24075.3</DotnetUserJwtsPackageVersion>
|
||||
<DotnetUserSecretsPackageVersion>9.0.0-preview.2.24075.3</DotnetUserSecretsPackageVersion>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<MicroBuildCorePackageVersion>0.2.0</MicroBuildCorePackageVersion>
|
||||
|
@ -86,37 +87,36 @@
|
|||
<!-- TODO -->
|
||||
<PropertyGroup>
|
||||
<!-- Dependencies from https://github.com/dotnet/sdk -->
|
||||
<MicrosoftDotNetCommonItemTemplatesPackageVersion>9.0.100-alpha.1.23559.2</MicrosoftDotNetCommonItemTemplatesPackageVersion>
|
||||
<MicrosoftNETSdkPackageVersion>9.0.100-alpha.1.23559.2</MicrosoftNETSdkPackageVersion>
|
||||
<MicrosoftDotNetMSBuildSdkResolverPackageVersion>9.0.100-alpha.1.23559.2</MicrosoftDotNetMSBuildSdkResolverPackageVersion>
|
||||
<MicrosoftDotNetCommonItemTemplatesPackageVersion>9.0.100-preview.2.24076.3</MicrosoftDotNetCommonItemTemplatesPackageVersion>
|
||||
<MicrosoftNETSdkPackageVersion>9.0.100-preview.2.24076.3</MicrosoftNETSdkPackageVersion>
|
||||
<MicrosoftDotNetMSBuildSdkResolverPackageVersion>9.0.100-preview.2.24076.3</MicrosoftDotNetMSBuildSdkResolverPackageVersion>
|
||||
<MicrosoftNETBuildExtensionsPackageVersion>$(MicrosoftNETSdkPackageVersion)</MicrosoftNETBuildExtensionsPackageVersion>
|
||||
<MicrosoftDotnetToolsetInternalPackageVersion>$(MicrosoftNETSdkPackageVersion)</MicrosoftDotnetToolsetInternalPackageVersion>
|
||||
<MicrosoftDotnetTemplateLocatorPackageVersion>$(MicrosoftNETSdkPackageVersion)</MicrosoftDotnetTemplateLocatorPackageVersion>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<!-- Dependencies from https://github.com/dotnet/roslyn -->
|
||||
<MicrosoftNetCompilersToolsetPackageVersion>4.9.0-2.23559.5</MicrosoftNetCompilersToolsetPackageVersion>
|
||||
<MicrosoftNetCompilersToolsetPackageVersion>4.10.0-1.24067.21</MicrosoftNetCompilersToolsetPackageVersion>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<!-- Dependencies from https://github.com/dotnet/corefx -->
|
||||
<MicrosoftNETCorePlatformsPackageVersion>9.0.0-alpha.1.23560.9</MicrosoftNETCorePlatformsPackageVersion>
|
||||
<MicrosoftNETCorePlatformsPackageVersion>9.0.0-preview.2.24075.11</MicrosoftNETCorePlatformsPackageVersion>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<!-- Dependencies from https://github.com/dotnet/core-setup -->
|
||||
<VSRedistCommonNetCoreSharedFrameworkx6490PackageVersion>9.0.0-alpha.1.23560.9</VSRedistCommonNetCoreSharedFrameworkx6490PackageVersion>
|
||||
<VSRedistCommonNetCoreTargetingPackx6490PackageVersion>9.0.0-alpha.1.23560.9</VSRedistCommonNetCoreTargetingPackx6490PackageVersion>
|
||||
<MicrosoftNETCoreAppRuntimewinx64PackageVersion>9.0.0-alpha.1.23560.9</MicrosoftNETCoreAppRuntimewinx64PackageVersion>
|
||||
<MicrosoftNETCoreAppHostwinx64PackageVersion>9.0.0-alpha.1.23560.9</MicrosoftNETCoreAppHostwinx64PackageVersion>
|
||||
<MicrosoftNETCoreAppRefPackageVersion>9.0.0-alpha.1.23560.9</MicrosoftNETCoreAppRefPackageVersion>
|
||||
<MicrosoftNETCoreDotNetHostResolverPackageVersion>8.0.0-rc.1.23414.4</MicrosoftNETCoreDotNetHostResolverPackageVersion>
|
||||
<VSRedistCommonNetCoreSharedFrameworkx6490PackageVersion>9.0.0-preview.2.24075.11</VSRedistCommonNetCoreSharedFrameworkx6490PackageVersion>
|
||||
<VSRedistCommonNetCoreTargetingPackx6490PackageVersion>9.0.0-preview.2.24075.11</VSRedistCommonNetCoreTargetingPackx6490PackageVersion>
|
||||
<MicrosoftNETCoreAppRuntimewinx64PackageVersion>9.0.0-preview.2.24075.11</MicrosoftNETCoreAppRuntimewinx64PackageVersion>
|
||||
<MicrosoftNETCoreAppHostwinx64PackageVersion>9.0.0-preview.2.24075.11</MicrosoftNETCoreAppHostwinx64PackageVersion>
|
||||
<MicrosoftNETCoreAppRefPackageVersion>9.0.0-preview.2.24075.11</MicrosoftNETCoreAppRefPackageVersion>
|
||||
<NETStandardLibraryRefPackageVersion>2.1.0</NETStandardLibraryRefPackageVersion>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<!-- Dependencies from https://github.com/dotnet/windowsdesktop -->
|
||||
<VSRedistCommonWindowsDesktopSharedFrameworkx6490PackageVersion>9.0.0-alpha.1.23558.4</VSRedistCommonWindowsDesktopSharedFrameworkx6490PackageVersion>
|
||||
<VSRedistCommonWindowsDesktopTargetingPackx6490PackageVersion>9.0.0-alpha.1.23558.4</VSRedistCommonWindowsDesktopTargetingPackx6490PackageVersion>
|
||||
<MicrosoftWindowsDesktopAppRuntimewinx64PackageVersion>9.0.0-alpha.1.23558.4</MicrosoftWindowsDesktopAppRuntimewinx64PackageVersion>
|
||||
<MicrosoftWindowsDesktopAppRefPackageVersion>9.0.0-alpha.1.23558.4</MicrosoftWindowsDesktopAppRefPackageVersion>
|
||||
<VSRedistCommonWindowsDesktopSharedFrameworkx6490PackageVersion>9.0.0-preview.2.24075.4</VSRedistCommonWindowsDesktopSharedFrameworkx6490PackageVersion>
|
||||
<VSRedistCommonWindowsDesktopTargetingPackx6490PackageVersion>9.0.0-preview.2.24075.4</VSRedistCommonWindowsDesktopTargetingPackx6490PackageVersion>
|
||||
<MicrosoftWindowsDesktopAppRuntimewinx64PackageVersion>9.0.0-preview.2.24075.4</MicrosoftWindowsDesktopAppRuntimewinx64PackageVersion>
|
||||
<MicrosoftWindowsDesktopAppRefPackageVersion>9.0.0-preview.2.24075.4</MicrosoftWindowsDesktopAppRefPackageVersion>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<!-- Runtime and Apphost pack versions are the same for all RIDs. We flow the x64 version above and create aliases without the winx64 here for clarity elsewhere. -->
|
||||
|
@ -127,11 +127,11 @@
|
|||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<!-- Dependencies from https://github.com/NuGet/NuGet.Client -->
|
||||
<NuGetBuildTasksPackageVersion>6.9.0-preview.1.23</NuGetBuildTasksPackageVersion>
|
||||
<NuGetBuildTasksPackageVersion>6.9.0-rc.86</NuGetBuildTasksPackageVersion>
|
||||
</PropertyGroup>
|
||||
<!-- Dependencies from https://github.com/dotnet/deployment-tools -->
|
||||
<PropertyGroup>
|
||||
<MicrosoftDeploymentDotNetReleasesVersion>2.0.0-preview.1.23509.2</MicrosoftDeploymentDotNetReleasesVersion>
|
||||
<MicrosoftDeploymentDotNetReleasesVersion>2.0.0-preview.1.24067.1</MicrosoftDeploymentDotNetReleasesVersion>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<!-- TODO -->
|
||||
|
@ -146,16 +146,22 @@
|
|||
Therefore we stay at last month's version.
|
||||
We also need to special case the 1st patch release, because the incoming SDK version will never be 2 versions behind us in that case.
|
||||
Instead the indicator is that the incoming SDK version is not RTM or greater yet.
|
||||
Preview releases already use -1 versionining so don't subtract one for that version
|
||||
Preview releases already use -1 versionining so don't subtract one for that version.
|
||||
In public builds, we always use the 2 month old version.
|
||||
-->
|
||||
<SubtractOneFromTemplateVersions Condition="'$(SYSTEM_TEAMPROJECT)' != 'internal'">true</SubtractOneFromTemplateVersions>
|
||||
<SubtractOneFromTemplateVersions Condition="$([MSBuild]::Subtract($(VersionFeature), $(MicrosoftNETSdkPatchVersion))) >= 2">true</SubtractOneFromTemplateVersions>
|
||||
<SubtractOneFromTemplateVersions Condition="$(VersionFeature) >= 1 AND ! $(MicrosoftNETSdkPackageVersion.Contains('rtm')) AND ! $(MicrosoftNETSdkPackageVersion.Contains('servicing'))">true</SubtractOneFromTemplateVersions>
|
||||
<AspNetCoreTemplateFeature60>$([MSBuild]::Subtract($(VersionFeature60), 1))</AspNetCoreTemplateFeature60>
|
||||
<AspNetCoreTemplateFeature70>$([MSBuild]::Subtract($(VersionFeature70), 1))</AspNetCoreTemplateFeature70>
|
||||
<AspNetCoreTemplateFeature80>$([MSBuild]::Subtract($(VersionFeature80), 1))</AspNetCoreTemplateFeature80>
|
||||
<AspNetCoreTemplateFeature60 Condition="$(MicrosoftNETSdkPackageVersion.Contains('preview'))">$(VersionFeature60)</AspNetCoreTemplateFeature60>
|
||||
<AspNetCoreTemplateFeature70 Condition="$(MicrosoftNETSdkPackageVersion.Contains('preview'))">$(VersionFeature70)</AspNetCoreTemplateFeature70>
|
||||
<AspNetCoreTemplateFeature80 Condition="$(MicrosoftNETSdkPackageVersion.Contains('preview'))">$(VersionFeature80)</AspNetCoreTemplateFeature80>
|
||||
<AspNetCoreTemplateFeature60 Condition="'$(SubtractOneFromTemplateVersions)' == 'true'">$([MSBuild]::Subtract($(AspNetCoreTemplateFeature60), 1))</AspNetCoreTemplateFeature60>
|
||||
<AspNetCoreTemplateFeature70 Condition="'$(SubtractOneFromTemplateVersions)' == 'true'">$([MSBuild]::Subtract($(AspNetCoreTemplateFeature70), 1))</AspNetCoreTemplateFeature70>
|
||||
<AspNetCoreTemplateFeature80 Condition="'$(SubtractOneFromTemplateVersions)' == 'true'">$([MSBuild]::Subtract($(AspNetCoreTemplateFeature80), 1))</AspNetCoreTemplateFeature80>
|
||||
<AspNetCoreTemplateFeature80 Condition="'$(VersionFeature80)' == '0'">$(VersionFeature80)</AspNetCoreTemplateFeature80>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<!-- Cross-release dependency versions -->
|
||||
|
@ -165,15 +171,15 @@
|
|||
<MicrosoftDotNetCommonItemTemplates50PackageVersion>5.0.403</MicrosoftDotNetCommonItemTemplates50PackageVersion>
|
||||
<MicrosoftDotNetCommonItemTemplates60PackageVersion>6.0.302</MicrosoftDotNetCommonItemTemplates60PackageVersion>
|
||||
<MicrosoftDotNetCommonItemTemplates70PackageVersion>7.0.100</MicrosoftDotNetCommonItemTemplates70PackageVersion>
|
||||
<MicrosoftDotNetCommonItemTemplates80PackageVersion>8.0.100-rc.2.23480.5</MicrosoftDotNetCommonItemTemplates80PackageVersion>
|
||||
<MicrosoftDotNetCommonItemTemplates80PackageVersion>8.0.100</MicrosoftDotNetCommonItemTemplates80PackageVersion>
|
||||
<MicrosoftWinFormsProjectTemplates50PackageVersion>5.0.17-servicing.22215.4</MicrosoftWinFormsProjectTemplates50PackageVersion>
|
||||
<MicrosoftWinFormsProjectTemplates60PackageVersion>6.0.7-servicing.22322.3</MicrosoftWinFormsProjectTemplates60PackageVersion>
|
||||
<MicrosoftWinFormsProjectTemplates70PackageVersion>7.0.0-rtm.22518.7</MicrosoftWinFormsProjectTemplates70PackageVersion>
|
||||
<MicrosoftWinFormsProjectTemplates80PackageVersion>8.0.0-rc.2.23463.2</MicrosoftWinFormsProjectTemplates80PackageVersion>
|
||||
<MicrosoftWinFormsProjectTemplates80PackageVersion>8.0.0-rtm.23531.5</MicrosoftWinFormsProjectTemplates80PackageVersion>
|
||||
<MicrosoftWPFProjectTemplates50PackageVersion>5.0.17-servicing.22218.2</MicrosoftWPFProjectTemplates50PackageVersion>
|
||||
<MicrosoftWPFProjectTemplates60PackageVersion>6.0.7-servicing.22322.2</MicrosoftWPFProjectTemplates60PackageVersion>
|
||||
<MicrosoftWPFProjectTemplates70PackageVersion>7.0.0-rtm.22518.2</MicrosoftWPFProjectTemplates70PackageVersion>
|
||||
<MicrosoftWPFProjectTemplates80PackageVersion>8.0.0-rc.2.23463.3</MicrosoftWPFProjectTemplates80PackageVersion>
|
||||
<MicrosoftWPFProjectTemplates80PackageVersion>8.0.0-rtm.23531.4</MicrosoftWPFProjectTemplates80PackageVersion>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup>
|
||||
<HostFxrVersion>$(MicrosoftNETCoreAppRuntimePackageVersion)</HostFxrVersion>
|
||||
|
@ -193,7 +199,7 @@
|
|||
<MicrosoftDotNetWpfProjectTemplates90PackageVersion>$(MicrosoftDotNetWpfProjectTemplatesPackageVersion)</MicrosoftDotNetWpfProjectTemplates90PackageVersion>
|
||||
<NUnit3Templates90PackageVersion>$(NUnit3DotNetNewTemplatePackageVersion)</NUnit3Templates90PackageVersion>
|
||||
<!-- 8.0 Template versions -->
|
||||
<AspNetCorePackageVersionFor80Templates>8.0.0-rc.2.23463.9</AspNetCorePackageVersionFor80Templates>
|
||||
<AspNetCorePackageVersionFor80Templates>8.0.$(AspNetCoreTemplateFeature80)</AspNetCorePackageVersionFor80Templates>
|
||||
<MicrosoftDotNetCommonProjectTemplates80PackageVersion>$(MicrosoftDotNetCommonItemTemplates80PackageVersion)</MicrosoftDotNetCommonProjectTemplates80PackageVersion>
|
||||
<MicrosoftDotnetWinFormsProjectTemplates80PackageVersion>$(MicrosoftWinFormsProjectTemplates80PackageVersion)</MicrosoftDotnetWinFormsProjectTemplates80PackageVersion>
|
||||
<MicrosoftDotNetWpfProjectTemplates80PackageVersion>$(MicrosoftWPFProjectTemplates80PackageVersion)</MicrosoftDotNetWpfProjectTemplates80PackageVersion>
|
||||
|
@ -242,23 +248,23 @@
|
|||
<PropertyGroup>
|
||||
<VersionToolsVersion>2.2.0-beta.19072.10</VersionToolsVersion>
|
||||
<DotnetDebToolVersion>2.0.0</DotnetDebToolVersion>
|
||||
<MicrosoftNETTestSdkVersion>17.9.0-preview-23557-03</MicrosoftNETTestSdkVersion>
|
||||
<MicrosoftExtensionsLoggingConsoleVersion>8.0.0-alpha.1.22557.12</MicrosoftExtensionsLoggingConsoleVersion>
|
||||
<MicrosoftDotNetScenarioTestsSdkTemplateTestsVersion>8.0.0-preview.23424.2</MicrosoftDotNetScenarioTestsSdkTemplateTestsVersion>
|
||||
<MicrosoftNETTestSdkVersion>17.10.0-preview-24073-02</MicrosoftNETTestSdkVersion>
|
||||
<MicrosoftExtensionsLoggingConsoleVersion>9.0.0-alpha.1.24058.10</MicrosoftExtensionsLoggingConsoleVersion>
|
||||
<MicrosoftDotNetScenarioTestsSdkTemplateTestsVersion>9.0.0-preview.24057.2</MicrosoftDotNetScenarioTestsSdkTemplateTestsVersion>
|
||||
</PropertyGroup>
|
||||
<!-- Workload manifest package versions -->
|
||||
<PropertyGroup>
|
||||
<AspireFeatureBand>8.0.100-rc.1</AspireFeatureBand>
|
||||
<AspireWorkloadManifestVersion>8.0.0-alpha.23471.13</AspireWorkloadManifestVersion>
|
||||
<MauiFeatureBand>8.0.100-rc.1</MauiFeatureBand>
|
||||
<MauiWorkloadManifestVersion>8.0.0-rc.1.9171</MauiWorkloadManifestVersion>
|
||||
<XamarinAndroidWorkloadManifestVersion>34.0.0-rc.1.432</XamarinAndroidWorkloadManifestVersion>
|
||||
<XamarinIOSWorkloadManifestVersion>16.4.8825-net8-rc1</XamarinIOSWorkloadManifestVersion>
|
||||
<XamarinMacCatalystWorkloadManifestVersion>16.4.8825-net8-rc1</XamarinMacCatalystWorkloadManifestVersion>
|
||||
<XamarinMacOSWorkloadManifestVersion>13.3.8825-net8-rc1</XamarinMacOSWorkloadManifestVersion>
|
||||
<XamarinTvOSWorkloadManifestVersion>16.4.8825-net8-rc1</XamarinTvOSWorkloadManifestVersion>
|
||||
<AspireFeatureBand>8.0.100</AspireFeatureBand>
|
||||
<AspireWorkloadManifestVersion>8.0.0-preview.3.24060.4</AspireWorkloadManifestVersion>
|
||||
<MauiFeatureBand>9.0.100-alpha.1</MauiFeatureBand>
|
||||
<MauiWorkloadManifestVersion>9.0.0-ci.net9.9818</MauiWorkloadManifestVersion>
|
||||
<XamarinAndroidWorkloadManifestVersion>34.99.0-preview.1.109</XamarinAndroidWorkloadManifestVersion>
|
||||
<XamarinIOSWorkloadManifestVersion>17.0.9712-net9-p1</XamarinIOSWorkloadManifestVersion>
|
||||
<XamarinMacCatalystWorkloadManifestVersion>17.0.9712-net9-p1</XamarinMacCatalystWorkloadManifestVersion>
|
||||
<XamarinMacOSWorkloadManifestVersion>14.0.9712-net9-p1</XamarinMacOSWorkloadManifestVersion>
|
||||
<XamarinTvOSWorkloadManifestVersion>17.0.9712-net9-p1</XamarinTvOSWorkloadManifestVersion>
|
||||
<!-- Workloads from dotnet/emsdk -->
|
||||
<MicrosoftNETWorkloadEmscriptenCurrentManifest90100TransportPackageVersion>9.0.0-alpha.1.23530.1</MicrosoftNETWorkloadEmscriptenCurrentManifest90100TransportPackageVersion>
|
||||
<MicrosoftNETWorkloadEmscriptenCurrentManifest90100TransportPackageVersion>9.0.0-alpha.1.24072.1</MicrosoftNETWorkloadEmscriptenCurrentManifest90100TransportPackageVersion>
|
||||
<EmscriptenWorkloadManifestVersion>$(MicrosoftNETWorkloadEmscriptenCurrentManifest90100TransportPackageVersion)</EmscriptenWorkloadManifestVersion>
|
||||
<!-- emsdk workload prerelease version band must match the emsdk feature band -->
|
||||
<EmscriptenWorkloadFeatureBand>9.0.100$([System.Text.RegularExpressions.Regex]::Match($(EmscriptenWorkloadManifestVersion), `-[A-z]*[\.]*\d*`))</EmscriptenWorkloadFeatureBand>
|
||||
|
|
3
eng/common/build.cmd
Normal file
3
eng/common/build.cmd
Normal file
|
@ -0,0 +1,3 @@
|
|||
@echo off
|
||||
powershell -ExecutionPolicy ByPass -NoProfile -command "& """%~dp0build.ps1""" %*"
|
||||
exit /b %ErrorLevel%
|
|
@ -19,6 +19,8 @@ Param(
|
|||
[switch] $pack,
|
||||
[switch] $publish,
|
||||
[switch] $clean,
|
||||
[switch] $verticalBuild,
|
||||
[switch][Alias('pb')]$productBuild,
|
||||
[switch][Alias('bl')]$binaryLog,
|
||||
[switch][Alias('nobl')]$excludeCIBinarylog,
|
||||
[switch] $ci,
|
||||
|
@ -58,6 +60,8 @@ function Print-Usage() {
|
|||
Write-Host " -sign Sign build outputs"
|
||||
Write-Host " -publish Publish artifacts (e.g. symbols)"
|
||||
Write-Host " -clean Clean the solution"
|
||||
Write-Host " -verticalBuild Run in 'vertical build' infra mode."
|
||||
Write-Host " -productBuild Build the solution in the way it will be built in the full .NET product (VMR) build (short: -pb)"
|
||||
Write-Host ""
|
||||
|
||||
Write-Host "Advanced settings:"
|
||||
|
@ -120,6 +124,8 @@ function Build {
|
|||
/p:Deploy=$deploy `
|
||||
/p:Test=$test `
|
||||
/p:Pack=$pack `
|
||||
/p:DotNetBuildRepo=$($productBuild -or $verticalBuild) `
|
||||
/p:ArcadeBuildVertical=$verticalBuild `
|
||||
/p:IntegrationTest=$integrationTest `
|
||||
/p:PerformanceTest=$performanceTest `
|
||||
/p:Sign=$sign `
|
||||
|
|
|
@ -22,6 +22,9 @@ usage()
|
|||
echo " --sourceBuild Source-build the solution (short: -sb)"
|
||||
echo " Will additionally trigger the following actions: --restore, --build, --pack"
|
||||
echo " If --configuration is not set explicitly, will also set it to 'Release'"
|
||||
echo " --productBuild Build the solution in the way it will be built in the full .NET product (VMR) build (short: -pb)"
|
||||
echo " Will additionally trigger the following actions: --restore, --build, --pack"
|
||||
echo " If --configuration is not set explicitly, will also set it to 'Release'"
|
||||
echo " --rebuild Rebuild solution"
|
||||
echo " --test Run all unit tests in the solution (short: -t)"
|
||||
echo " --integrationTest Run all integration tests in the solution"
|
||||
|
@ -59,6 +62,8 @@ scriptroot="$( cd -P "$( dirname "$source" )" && pwd )"
|
|||
restore=false
|
||||
build=false
|
||||
source_build=false
|
||||
vertical_build=false
|
||||
product_build=false
|
||||
rebuild=false
|
||||
test=false
|
||||
integration_test=false
|
||||
|
@ -126,6 +131,20 @@ while [[ $# > 0 ]]; do
|
|||
-sourcebuild|-sb)
|
||||
build=true
|
||||
source_build=true
|
||||
product_build=true
|
||||
restore=true
|
||||
pack=true
|
||||
;;
|
||||
-productBuild|-pb)
|
||||
build=true
|
||||
product_build=true
|
||||
restore=true
|
||||
pack=true
|
||||
;;
|
||||
-verticalbuild|-vb)
|
||||
build=true
|
||||
vertical_build=true
|
||||
product_build=true
|
||||
restore=true
|
||||
pack=true
|
||||
;;
|
||||
|
@ -219,7 +238,10 @@ function Build {
|
|||
/p:RepoRoot="$repo_root" \
|
||||
/p:Restore=$restore \
|
||||
/p:Build=$build \
|
||||
/p:DotNetBuildRepo=$product_build \
|
||||
/p:ArcadeBuildFromSource=$source_build \
|
||||
/p:DotNetBuildSourceOnly=$source_build \
|
||||
/p:ArcadeBuildVertical=$vertical_build \
|
||||
/p:Rebuild=$rebuild \
|
||||
/p:Test=$test \
|
||||
/p:Pack=$pack \
|
||||
|
|
|
@ -8,7 +8,7 @@ usage()
|
|||
echo "BuildArch can be: arm(default), arm64, armel, armv6, ppc64le, riscv64, s390x, x64, x86"
|
||||
echo "CodeName - optional, Code name for Linux, can be: xenial(default), zesty, bionic, alpine"
|
||||
echo " for alpine can be specified with version: alpineX.YY or alpineedge"
|
||||
echo " for FreeBSD can be: freebsd12, freebsd13"
|
||||
echo " for FreeBSD can be: freebsd13, freebsd14"
|
||||
echo " for illumos can be: illumos"
|
||||
echo " for Haiku can be: haiku."
|
||||
echo "lldbx.y - optional, LLDB version, can be: lldb3.9(default), lldb4.0, lldb5.0, lldb6.0 no-lldb. Ignored for alpine and FreeBSD"
|
||||
|
@ -71,9 +71,9 @@ __AlpinePackages+=" krb5-dev"
|
|||
__AlpinePackages+=" openssl-dev"
|
||||
__AlpinePackages+=" zlib-dev"
|
||||
|
||||
__FreeBSDBase="12.4-RELEASE"
|
||||
__FreeBSDBase="13.2-RELEASE"
|
||||
__FreeBSDPkg="1.17.0"
|
||||
__FreeBSDABI="12"
|
||||
__FreeBSDABI="13"
|
||||
__FreeBSDPackages="libunwind"
|
||||
__FreeBSDPackages+=" icu"
|
||||
__FreeBSDPackages+=" libinotify"
|
||||
|
@ -182,12 +182,12 @@ while :; do
|
|||
__AlpinePackages="${__AlpinePackages// lldb-dev/}"
|
||||
__QEMUArch=riscv64
|
||||
__UbuntuArch=riscv64
|
||||
__UbuntuRepo="http://deb.debian.org/debian-ports"
|
||||
__UbuntuRepo="http://deb.debian.org/debian"
|
||||
__UbuntuPackages="${__UbuntuPackages// libunwind8-dev/}"
|
||||
unset __LLDB_Package
|
||||
|
||||
if [[ -e "/usr/share/keyrings/debian-ports-archive-keyring.gpg" ]]; then
|
||||
__Keyring="--keyring /usr/share/keyrings/debian-ports-archive-keyring.gpg --include=debian-ports-archive-keyring"
|
||||
if [[ -e "/usr/share/keyrings/debian-archive-keyring.gpg" ]]; then
|
||||
__Keyring="--keyring /usr/share/keyrings/debian-archive-keyring.gpg --include=debian-archive-keyring"
|
||||
fi
|
||||
;;
|
||||
ppc64le)
|
||||
|
@ -334,14 +334,14 @@ while :; do
|
|||
__AlpineVersion="$__AlpineMajorVersion.$__AlpineMinoVersion"
|
||||
fi
|
||||
;;
|
||||
freebsd12)
|
||||
freebsd13)
|
||||
__CodeName=freebsd
|
||||
__SkipUnmount=1
|
||||
;;
|
||||
freebsd13)
|
||||
freebsd14)
|
||||
__CodeName=freebsd
|
||||
__FreeBSDBase="13.2-RELEASE"
|
||||
__FreeBSDABI="13"
|
||||
__FreeBSDBase="14.0-RELEASE"
|
||||
__FreeBSDABI="14"
|
||||
__SkipUnmount=1
|
||||
;;
|
||||
illumos)
|
||||
|
|
|
@ -1 +1 @@
|
|||
deb http://deb.debian.org/debian-ports sid main
|
||||
deb http://deb.debian.org/debian sid main
|
||||
|
|
|
@ -288,6 +288,8 @@ elseif(TARGET_ARCH_NAME MATCHES "^(arm64|x64|riscv64)$")
|
|||
add_toolchain_linker_flag("-Wl,--rpath-link=${CROSS_ROOTFS}/usr/lib64")
|
||||
add_toolchain_linker_flag("-Wl,--rpath-link=${CROSS_ROOTFS}/usr/lib64/gcc/${TIZEN_TOOLCHAIN}")
|
||||
endif()
|
||||
elseif(TARGET_ARCH_NAME STREQUAL "s390x")
|
||||
add_toolchain_linker_flag("--target=${TOOLCHAIN}")
|
||||
elseif(TARGET_ARCH_NAME STREQUAL "x86")
|
||||
if(EXISTS ${CROSS_ROOTFS}/usr/lib/gcc/i586-alpine-linux-musl)
|
||||
add_toolchain_linker_flag("--target=${TOOLCHAIN}")
|
||||
|
@ -335,6 +337,8 @@ if(TARGET_ARCH_NAME MATCHES "^(arm|armel)$")
|
|||
if(TARGET_ARCH_NAME STREQUAL "armel")
|
||||
add_compile_options(-mfloat-abi=softfp)
|
||||
endif()
|
||||
elseif(TARGET_ARCH_NAME STREQUAL "s390x")
|
||||
add_compile_options("--target=${TOOLCHAIN}")
|
||||
elseif(TARGET_ARCH_NAME STREQUAL "x86")
|
||||
if(EXISTS ${CROSS_ROOTFS}/usr/lib/gcc/i586-alpine-linux-musl)
|
||||
add_compile_options(--target=${TOOLCHAIN})
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
param (
|
||||
$darcVersion = $null,
|
||||
$versionEndpoint = 'https://maestro-prod.westus2.cloudapp.azure.com/api/assets/darc-version?api-version=2019-01-16',
|
||||
$versionEndpoint = 'https://maestro.dot.net/api/assets/darc-version?api-version=2019-01-16',
|
||||
$verbosity = 'minimal',
|
||||
$toolpath = $null
|
||||
)
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
source="${BASH_SOURCE[0]}"
|
||||
darcVersion=''
|
||||
versionEndpoint='https://maestro-prod.westus2.cloudapp.azure.com/api/assets/darc-version?api-version=2019-01-16'
|
||||
versionEndpoint='https://maestro.dot.net/api/assets/darc-version?api-version=2019-01-16'
|
||||
verbosity='minimal'
|
||||
|
||||
while [[ $# > 0 ]]; do
|
||||
|
|
|
@ -1,3 +1,4 @@
|
|||
<!-- Licensed to the .NET Foundation under one or more agreements. The .NET Foundation licenses this file to you under the MIT license. -->
|
||||
<Project Sdk="Microsoft.DotNet.Helix.Sdk" DefaultTargets="Test">
|
||||
|
||||
<PropertyGroup>
|
||||
|
|
|
@ -1,4 +1,6 @@
|
|||
<!-- Licensed to the .NET Foundation under one or more agreements. The .NET Foundation licenses this file to you under the MIT license. -->
|
||||
<Project>
|
||||
|
||||
<Import Project="Sdk.props" Sdk="Microsoft.DotNet.Arcade.Sdk" />
|
||||
|
||||
</Project>
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
<!-- Licensed to the .NET Foundation under one or more agreements. The .NET Foundation licenses this file to you under the MIT license. -->
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>net472</TargetFramework>
|
||||
<ImportDirectoryBuildTargets>false</ImportDirectoryBuildTargets>
|
||||
|
@ -27,4 +28,5 @@
|
|||
|
||||
<!-- Repository extensibility point -->
|
||||
<Import Project="$(RepositoryEngineeringDir)InternalTools.props" Condition="Exists('$(RepositoryEngineeringDir)InternalTools.props')" />
|
||||
|
||||
</Project>
|
||||
|
|
|
@ -2,7 +2,7 @@ param(
|
|||
[Parameter(Mandatory=$true)][int] $BuildId,
|
||||
[Parameter(Mandatory=$true)][int] $ChannelId,
|
||||
[Parameter(Mandatory=$true)][string] $MaestroApiAccessToken,
|
||||
[Parameter(Mandatory=$false)][string] $MaestroApiEndPoint = 'https://maestro-prod.westus2.cloudapp.azure.com',
|
||||
[Parameter(Mandatory=$false)][string] $MaestroApiEndPoint = 'https://maestro.dot.net',
|
||||
[Parameter(Mandatory=$false)][string] $MaestroApiVersion = '2019-01-16'
|
||||
)
|
||||
|
||||
|
|
|
@ -3,7 +3,7 @@ param(
|
|||
[Parameter(Mandatory=$true)][int] $PublishingInfraVersion,
|
||||
[Parameter(Mandatory=$true)][string] $AzdoToken,
|
||||
[Parameter(Mandatory=$true)][string] $MaestroToken,
|
||||
[Parameter(Mandatory=$false)][string] $MaestroApiEndPoint = 'https://maestro-prod.westus2.cloudapp.azure.com',
|
||||
[Parameter(Mandatory=$false)][string] $MaestroApiEndPoint = 'https://maestro.dot.net',
|
||||
[Parameter(Mandatory=$true)][string] $WaitPublishingFinish,
|
||||
[Parameter(Mandatory=$false)][string] $ArtifactsPublishingAdditionalParameters,
|
||||
[Parameter(Mandatory=$false)][string] $SymbolPublishingAdditionalParameters
|
||||
|
|
81
eng/common/post-build/redact-logs.ps1
Normal file
81
eng/common/post-build/redact-logs.ps1
Normal file
|
@ -0,0 +1,81 @@
|
|||
[CmdletBinding(PositionalBinding=$False)]
|
||||
param(
|
||||
[Parameter(Mandatory=$true, Position=0)][string] $InputPath,
|
||||
[Parameter(Mandatory=$true)][string] $BinlogToolVersion,
|
||||
[Parameter(Mandatory=$false)][string] $DotnetPath,
|
||||
[Parameter(Mandatory=$false)][string] $PackageFeed = 'https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public/nuget/v3/index.json',
|
||||
# File with strings to redact - separated by newlines.
|
||||
# For comments start the line with '# ' - such lines are ignored
|
||||
[Parameter(Mandatory=$false)][string] $TokensFilePath,
|
||||
[Parameter(ValueFromRemainingArguments=$true)][String[]]$TokensToRedact
|
||||
)
|
||||
|
||||
try {
|
||||
. $PSScriptRoot\post-build-utils.ps1
|
||||
|
||||
$packageName = 'binlogtool'
|
||||
|
||||
$dotnet = $DotnetPath
|
||||
|
||||
if (!$dotnet) {
|
||||
$dotnetRoot = InitializeDotNetCli -install:$true
|
||||
$dotnet = "$dotnetRoot\dotnet.exe"
|
||||
}
|
||||
|
||||
$toolList = & "$dotnet" tool list -g
|
||||
|
||||
if ($toolList -like "*$packageName*") {
|
||||
& "$dotnet" tool uninstall $packageName -g
|
||||
}
|
||||
|
||||
$toolPath = "$PSScriptRoot\..\..\..\.tools"
|
||||
$verbosity = 'minimal'
|
||||
|
||||
New-Item -ItemType Directory -Force -Path $toolPath
|
||||
|
||||
Push-Location -Path $toolPath
|
||||
|
||||
try {
|
||||
Write-Host "Installing Binlog redactor CLI..."
|
||||
Write-Host "'$dotnet' new tool-manifest"
|
||||
& "$dotnet" new tool-manifest
|
||||
Write-Host "'$dotnet' tool install $packageName --local --add-source '$PackageFeed' -v $verbosity --version $BinlogToolVersion"
|
||||
& "$dotnet" tool install $packageName --local --add-source "$PackageFeed" -v $verbosity --version $BinlogToolVersion
|
||||
|
||||
if (Test-Path $TokensFilePath) {
|
||||
Write-Host "Adding additional sensitive data for redaction from file: " $TokensFilePath
|
||||
$TokensToRedact += Get-Content -Path $TokensFilePath | Foreach {$_.Trim()} | Where { $_ -notmatch "^# " }
|
||||
}
|
||||
|
||||
$optionalParams = [System.Collections.ArrayList]::new()
|
||||
|
||||
Foreach ($p in $TokensToRedact)
|
||||
{
|
||||
if($p -match '^\$\(.*\)$')
|
||||
{
|
||||
Write-Host ("Ignoring token {0} as it is probably unexpanded AzDO variable" -f $p)
|
||||
}
|
||||
elseif($p)
|
||||
{
|
||||
$optionalParams.Add("-p:" + $p) | Out-Null
|
||||
}
|
||||
}
|
||||
|
||||
& $dotnet binlogtool redact --input:$InputPath --recurse --in-place `
|
||||
@optionalParams
|
||||
|
||||
if ($LastExitCode -ne 0) {
|
||||
Write-PipelineTelemetryError -Category 'Redactor' -Type 'warning' -Message "Problems using Redactor tool (exit code: $LastExitCode). But ignoring them now."
|
||||
}
|
||||
}
|
||||
finally {
|
||||
Pop-Location
|
||||
}
|
||||
|
||||
Write-Host 'done.'
|
||||
}
|
||||
catch {
|
||||
Write-Host $_
|
||||
Write-PipelineTelemetryError -Category 'Redactor' -Message "There was an error while trying to redact logs. Error: $_"
|
||||
ExitWithExitCode 1
|
||||
}
|
|
@ -2,7 +2,7 @@ param(
|
|||
[Parameter(Mandatory=$true)][string] $SourceRepo,
|
||||
[Parameter(Mandatory=$true)][int] $ChannelId,
|
||||
[Parameter(Mandatory=$true)][string] $MaestroApiAccessToken,
|
||||
[Parameter(Mandatory=$false)][string] $MaestroApiEndPoint = 'https://maestro-prod.westus2.cloudapp.azure.com',
|
||||
[Parameter(Mandatory=$false)][string] $MaestroApiEndPoint = 'https://maestro.dot.net',
|
||||
[Parameter(Mandatory=$false)][string] $MaestroApiVersion = '2019-01-16'
|
||||
)
|
||||
|
||||
|
|
|
@ -72,4 +72,4 @@ catch {
|
|||
Write-Host $_
|
||||
Write-PipelineTelemetryError -Force -Category 'Sdl' -Message $_
|
||||
ExitWithExitCode 1
|
||||
}
|
||||
}
|
||||
|
|
|
@ -136,7 +136,7 @@ jobs:
|
|||
condition: and(succeeded(), in(variables['_SignType'], 'real', 'test'), eq(variables['Agent.Os'], 'Windows_NT'))
|
||||
|
||||
- ${{ if and(eq(parameters.runAsPublic, 'false'), eq(variables['System.TeamProject'], 'internal')) }}:
|
||||
- task: NuGetAuthenticate@0
|
||||
- task: NuGetAuthenticate@1
|
||||
|
||||
- ${{ if and(ne(parameters.artifacts.download, 'false'), ne(parameters.artifacts.download, '')) }}:
|
||||
- task: DownloadPipelineArtifact@2
|
||||
|
|
|
@ -48,8 +48,8 @@ jobs:
|
|||
- group: AzureDevOps-Artifact-Feeds-Pats
|
||||
- name: runCodesignValidationInjection
|
||||
value: false
|
||||
- ${{ if eq(parameters.publishAssetsImmediately, 'true') }}:
|
||||
- template: /eng/common/templates/post-build/common-variables.yml
|
||||
# unconditional - needed for logs publishing (redactor tool version)
|
||||
- template: /eng/common/templates/post-build/common-variables.yml
|
||||
|
||||
pool:
|
||||
# We don't use the collection uri here because it might vary (.visualstudio.com vs. dev.azure.com)
|
||||
|
@ -63,6 +63,10 @@ jobs:
|
|||
|
||||
steps:
|
||||
- ${{ if and(eq(parameters.runAsPublic, 'false'), ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}:
|
||||
- checkout: self
|
||||
fetchDepth: 3
|
||||
clean: true
|
||||
|
||||
- task: DownloadBuildArtifacts@0
|
||||
displayName: Download artifact
|
||||
inputs:
|
||||
|
@ -72,7 +76,7 @@ jobs:
|
|||
condition: ${{ parameters.condition }}
|
||||
continueOnError: ${{ parameters.continueOnError }}
|
||||
|
||||
- task: NuGetAuthenticate@0
|
||||
- task: NuGetAuthenticate@1
|
||||
|
||||
- task: PowerShell@2
|
||||
displayName: Publish Build Assets
|
||||
|
@ -81,7 +85,7 @@ jobs:
|
|||
arguments: -task PublishBuildAssets -restore -msbuildEngine dotnet
|
||||
/p:ManifestsPath='$(Build.StagingDirectory)/Download/AssetManifests'
|
||||
/p:BuildAssetRegistryToken=$(MaestroAccessToken)
|
||||
/p:MaestroApiEndpoint=https://maestro-prod.westus2.cloudapp.azure.com
|
||||
/p:MaestroApiEndpoint=https://maestro.dot.net
|
||||
/p:PublishUsingPipelines=${{ parameters.publishUsingPipelines }}
|
||||
/p:OfficialBuildId=$(Build.BuildNumber)
|
||||
condition: ${{ parameters.condition }}
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
parameters:
|
||||
runAsPublic: false
|
||||
sourceIndexPackageVersion: 1.0.1-20230228.2
|
||||
sourceIndexPackageVersion: 1.0.1-20231213.4
|
||||
sourceIndexPackageSource: https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-tools/nuget/v3/index.json
|
||||
sourceIndexBuildCommand: powershell -NoLogo -NoProfile -ExecutionPolicy Bypass -Command "eng/common/build.ps1 -restore -build -binarylog -ci"
|
||||
preSteps: []
|
||||
|
@ -30,20 +30,20 @@ jobs:
|
|||
pool:
|
||||
${{ if eq(variables['System.TeamProject'], 'public') }}:
|
||||
name: $(DncEngPublicBuildPool)
|
||||
demands: ImageOverride -equals windows.vs2019.amd64.open
|
||||
demands: ImageOverride -equals windows.vs2022.amd64.open
|
||||
${{ if eq(variables['System.TeamProject'], 'internal') }}:
|
||||
name: $(DncEngInternalBuildPool)
|
||||
demands: ImageOverride -equals windows.vs2019.amd64
|
||||
demands: ImageOverride -equals windows.vs2022.amd64
|
||||
|
||||
steps:
|
||||
- ${{ each preStep in parameters.preSteps }}:
|
||||
- ${{ preStep }}
|
||||
|
||||
- task: UseDotNet@2
|
||||
displayName: Use .NET Core SDK 6
|
||||
displayName: Use .NET 8 SDK
|
||||
inputs:
|
||||
packageType: sdk
|
||||
version: 6.0.x
|
||||
version: 8.0.x
|
||||
installationPath: $(Agent.TempDirectory)/dotnet
|
||||
workingDirectory: $(Agent.TempDirectory)
|
||||
|
||||
|
|
|
@ -7,7 +7,7 @@ variables:
|
|||
|
||||
# Default Maestro++ API Endpoint and API Version
|
||||
- name: MaestroApiEndPoint
|
||||
value: "https://maestro-prod.westus2.cloudapp.azure.com"
|
||||
value: "https://maestro.dot.net"
|
||||
- name: MaestroApiAccessToken
|
||||
value: $(MaestroAccessToken)
|
||||
- name: MaestroApiVersion
|
||||
|
@ -17,6 +17,8 @@ variables:
|
|||
value: 3.0.0
|
||||
- name: SymbolToolVersion
|
||||
value: 1.0.1
|
||||
- name: BinlogToolVersion
|
||||
value: 1.0.11
|
||||
|
||||
- name: runCodesignValidationInjection
|
||||
value: false
|
||||
|
|
|
@ -169,7 +169,7 @@ stages:
|
|||
# This is necessary whenever we want to publish/restore to an AzDO private feed
|
||||
# Since sdk-task.ps1 tries to restore packages we need to do this authentication here
|
||||
# otherwise it'll complain about accessing a private feed.
|
||||
- task: NuGetAuthenticate@0
|
||||
- task: NuGetAuthenticate@1
|
||||
displayName: 'Authenticate to AzDO Feeds'
|
||||
|
||||
# Signing validation will optionally work with the buildmanifest file which is downloaded from
|
||||
|
@ -187,6 +187,7 @@ stages:
|
|||
parameters:
|
||||
StageLabel: 'Validation'
|
||||
JobLabel: 'Signing'
|
||||
BinlogToolVersion: $(BinlogToolVersion)
|
||||
|
||||
- job:
|
||||
displayName: SourceLink Validation
|
||||
|
@ -266,7 +267,7 @@ stages:
|
|||
BARBuildId: ${{ parameters.BARBuildId }}
|
||||
PromoteToChannelIds: ${{ parameters.PromoteToChannelIds }}
|
||||
|
||||
- task: NuGetAuthenticate@0
|
||||
- task: NuGetAuthenticate@1
|
||||
|
||||
- task: PowerShell@2
|
||||
displayName: Publish Using Darc
|
||||
|
|
|
@ -1,6 +1,9 @@
|
|||
parameters:
|
||||
StageLabel: ''
|
||||
JobLabel: ''
|
||||
CustomSensitiveDataList: ''
|
||||
# A default - in case value from eng/common/templates/post-build/common-variables.yml is not passed
|
||||
BinlogToolVersion: '1.0.11'
|
||||
|
||||
steps:
|
||||
- task: Powershell@2
|
||||
|
@ -12,7 +15,30 @@ steps:
|
|||
Move-Item -Path $(Build.SourcesDirectory)/artifacts/log/Debug/* $(Build.SourcesDirectory)/PostBuildLogs/${{parameters.StageLabel}}/${{parameters.JobLabel}}/
|
||||
continueOnError: true
|
||||
condition: always()
|
||||
|
||||
|
||||
- task: PowerShell@2
|
||||
displayName: Redact Logs
|
||||
inputs:
|
||||
filePath: $(Build.SourcesDirectory)/eng/common/post-build/redact-logs.ps1
|
||||
# For now this needs to have explicit list of all sensitive data. Taken from eng/publishing/v3/publish.yml
|
||||
# Sensitive data can as well be added to $(Build.SourcesDirectory)/eng/BinlogSecretsRedactionFile.txt'
|
||||
# If the file exists - sensitive data for redaction will be sourced from it
|
||||
# (single entry per line, lines starting with '# ' are considered comments and skipped)
|
||||
arguments: -InputPath '$(Build.SourcesDirectory)/PostBuildLogs'
|
||||
-BinlogToolVersion ${{parameters.BinlogToolVersion}}
|
||||
-TokensFilePath '$(Build.SourcesDirectory)/eng/BinlogSecretsRedactionFile.txt'
|
||||
'$(publishing-dnceng-devdiv-code-r-build-re)'
|
||||
'$(MaestroAccessToken)'
|
||||
'$(dn-bot-all-orgs-artifact-feeds-rw)'
|
||||
'$(akams-client-id)'
|
||||
'$(akams-client-secret)'
|
||||
'$(microsoft-symbol-server-pat)'
|
||||
'$(symweb-symbol-server-pat)'
|
||||
'$(dn-bot-all-orgs-build-rw-code-rw)'
|
||||
${{parameters.CustomSensitiveDataList}}
|
||||
continueOnError: true
|
||||
condition: always()
|
||||
|
||||
- task: PublishBuildArtifacts@1
|
||||
displayName: Publish Logs
|
||||
inputs:
|
||||
|
|
|
@ -94,6 +94,8 @@ steps:
|
|||
$baseOsArgs \
|
||||
/p:SourceBuildNonPortable=${{ parameters.platform.nonPortable }} \
|
||||
/p:ArcadeBuildFromSource=true \
|
||||
/p:DotNetBuildSourceOnly=true \
|
||||
/p:DotNetBuildRepo=true \
|
||||
/p:AssetManifestFileName=$assetManifestFileName
|
||||
displayName: Build
|
||||
|
||||
|
@ -105,7 +107,7 @@ steps:
|
|||
Contents: |
|
||||
**/*.log
|
||||
**/*.binlog
|
||||
artifacts/source-build/self/prebuilt-report/**
|
||||
artifacts/sb/prebuilt-report/**
|
||||
TargetFolder: '$(Build.StagingDirectory)/BuildLogs'
|
||||
CleanTargetFolder: true
|
||||
continueOnError: true
|
||||
|
@ -126,4 +128,4 @@ steps:
|
|||
- task: ComponentGovernanceComponentDetection@0
|
||||
displayName: Component Detection (Exclude upstream cache)
|
||||
inputs:
|
||||
ignoreDirectories: '$(Build.SourcesDirectory)/artifacts/source-build/self/src/artifacts/obj/source-built-upstream-cache'
|
||||
ignoreDirectories: '$(Build.SourcesDirectory)/artifacts/sb/src/artifacts/obj/source-built-upstream-cache'
|
||||
|
|
|
@ -165,11 +165,6 @@ function InitializeDotNetCli([bool]$install, [bool]$createSdkLocationFile) {
|
|||
$env:DOTNET_CLI_TELEMETRY_OPTOUT=1
|
||||
}
|
||||
|
||||
# Source Build uses DotNetCoreSdkDir variable
|
||||
if ($env:DotNetCoreSdkDir -ne $null) {
|
||||
$env:DOTNET_INSTALL_DIR = $env:DotNetCoreSdkDir
|
||||
}
|
||||
|
||||
# Find the first path on %PATH% that contains the dotnet.exe
|
||||
if ($useInstalledDotNetCli -and (-not $globalJsonHasRuntimes) -and ($env:DOTNET_INSTALL_DIR -eq $null)) {
|
||||
$dotnetExecutable = GetExecutableFileName 'dotnet'
|
||||
|
@ -601,7 +596,15 @@ function InitializeBuildTool() {
|
|||
ExitWithExitCode 1
|
||||
}
|
||||
$dotnetPath = Join-Path $dotnetRoot (GetExecutableFileName 'dotnet')
|
||||
$buildTool = @{ Path = $dotnetPath; Command = 'msbuild'; Tool = 'dotnet'; Framework = 'net8.0' }
|
||||
|
||||
# Use override if it exists - commonly set by source-build
|
||||
if ($null -eq $env:_OverrideArcadeInitializeBuildToolFramework) {
|
||||
$initializeBuildToolFramework="net9.0"
|
||||
} else {
|
||||
$initializeBuildToolFramework=$env:_OverrideArcadeInitializeBuildToolFramework
|
||||
}
|
||||
|
||||
$buildTool = @{ Path = $dotnetPath; Command = 'msbuild'; Tool = 'dotnet'; Framework = $initializeBuildToolFramework }
|
||||
} elseif ($msbuildEngine -eq "vs") {
|
||||
try {
|
||||
$msbuildPath = InitializeVisualStudioMSBuild -install:$restore
|
||||
|
@ -676,8 +679,14 @@ function Read-ArcadeSdkVersion() {
|
|||
}
|
||||
|
||||
function InitializeToolset() {
|
||||
if (Test-Path variable:global:_ToolsetBuildProj) {
|
||||
return $global:_ToolsetBuildProj
|
||||
# For Unified Build/Source-build support, check whether the environment variable is
|
||||
# set. If it is, then use this as the toolset build project.
|
||||
if ($env:_InitializeToolset -ne $null) {
|
||||
return $global:_InitializeToolset = $env:_InitializeToolset
|
||||
}
|
||||
|
||||
if (Test-Path variable:global:_InitializeToolset) {
|
||||
return $global:_InitializeToolset
|
||||
}
|
||||
|
||||
$nugetCache = GetNuGetPackageCachePath
|
||||
|
@ -688,7 +697,7 @@ function InitializeToolset() {
|
|||
if (Test-Path $toolsetLocationFile) {
|
||||
$path = Get-Content $toolsetLocationFile -TotalCount 1
|
||||
if (Test-Path $path) {
|
||||
return $global:_ToolsetBuildProj = $path
|
||||
return $global:_InitializeToolset = $path
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -711,7 +720,7 @@ function InitializeToolset() {
|
|||
throw "Invalid toolset path: $path"
|
||||
}
|
||||
|
||||
return $global:_ToolsetBuildProj = $path
|
||||
return $global:_InitializeToolset = $path
|
||||
}
|
||||
|
||||
function ExitWithExitCode([int] $exitCode) {
|
||||
|
@ -763,12 +772,10 @@ function MSBuild() {
|
|||
# new scripts need to work with old packages, so we need to look for the old names/versions
|
||||
(Join-Path $basePath (Join-Path $buildTool.Framework 'Microsoft.DotNet.ArcadeLogging.dll')),
|
||||
(Join-Path $basePath (Join-Path $buildTool.Framework 'Microsoft.DotNet.Arcade.Sdk.dll')),
|
||||
(Join-Path $basePath (Join-Path netcoreapp2.1 'Microsoft.DotNet.ArcadeLogging.dll')),
|
||||
(Join-Path $basePath (Join-Path netcoreapp2.1 'Microsoft.DotNet.Arcade.Sdk.dll'))
|
||||
(Join-Path $basePath (Join-Path netcoreapp3.1 'Microsoft.DotNet.ArcadeLogging.dll')),
|
||||
(Join-Path $basePath (Join-Path netcoreapp3.1 'Microsoft.DotNet.Arcade.Sdk.dll'))
|
||||
(Join-Path $basePath (Join-Path net7.0 'Microsoft.DotNet.ArcadeLogging.dll')),
|
||||
(Join-Path $basePath (Join-Path net7.0 'Microsoft.DotNet.Arcade.Sdk.dll'))
|
||||
(Join-Path $basePath (Join-Path net7.0 'Microsoft.DotNet.Arcade.Sdk.dll')),
|
||||
(Join-Path $basePath (Join-Path net8.0 'Microsoft.DotNet.ArcadeLogging.dll')),
|
||||
(Join-Path $basePath (Join-Path net8.0 'Microsoft.DotNet.Arcade.Sdk.dll'))
|
||||
)
|
||||
$selectedPath = $null
|
||||
foreach ($path in $possiblePaths) {
|
||||
|
@ -827,7 +834,8 @@ function MSBuild-Core() {
|
|||
}
|
||||
}
|
||||
|
||||
$env:ARCADE_BUILD_TOOL_COMMAND = "$($buildTool.Path) $cmdArgs"
|
||||
# Be sure quote the path in case there are spaces in the dotnet installation location.
|
||||
$env:ARCADE_BUILD_TOOL_COMMAND = "`"$($buildTool.Path)`" $cmdArgs"
|
||||
|
||||
$exitCode = Exec-Process $buildTool.Path $cmdArgs
|
||||
|
||||
|
|
|
@ -123,11 +123,6 @@ function InitializeDotNetCli {
|
|||
# so it doesn't output warnings to the console.
|
||||
export LTTNG_HOME="$HOME"
|
||||
|
||||
# Source Build uses DotNetCoreSdkDir variable
|
||||
if [[ -n "${DotNetCoreSdkDir:-}" ]]; then
|
||||
export DOTNET_INSTALL_DIR="$DotNetCoreSdkDir"
|
||||
fi
|
||||
|
||||
# Find the first path on $PATH that contains the dotnet.exe
|
||||
if [[ "$use_installed_dotnet_cli" == true && $global_json_has_runtimes == false && -z "${DOTNET_INSTALL_DIR:-}" ]]; then
|
||||
local dotnet_path=`command -v dotnet`
|
||||
|
@ -343,7 +338,7 @@ function InitializeBuildTool {
|
|||
_InitializeBuildToolCommand="msbuild"
|
||||
# use override if it exists - commonly set by source-build
|
||||
if [[ "${_OverrideArcadeInitializeBuildToolFramework:-x}" == "x" ]]; then
|
||||
_InitializeBuildToolFramework="net8.0"
|
||||
_InitializeBuildToolFramework="net9.0"
|
||||
else
|
||||
_InitializeBuildToolFramework="${_OverrideArcadeInitializeBuildToolFramework}"
|
||||
fi
|
||||
|
@ -458,12 +453,10 @@ function MSBuild {
|
|||
local possiblePaths=()
|
||||
possiblePaths+=( "$toolset_dir/$_InitializeBuildToolFramework/Microsoft.DotNet.ArcadeLogging.dll" )
|
||||
possiblePaths+=( "$toolset_dir/$_InitializeBuildToolFramework/Microsoft.DotNet.Arcade.Sdk.dll" )
|
||||
possiblePaths+=( "$toolset_dir/netcoreapp2.1/Microsoft.DotNet.ArcadeLogging.dll" )
|
||||
possiblePaths+=( "$toolset_dir/netcoreapp2.1/Microsoft.DotNet.Arcade.Sdk.dll" )
|
||||
possiblePaths+=( "$toolset_dir/netcoreapp3.1/Microsoft.DotNet.ArcadeLogging.dll" )
|
||||
possiblePaths+=( "$toolset_dir/netcoreapp3.1/Microsoft.DotNet.Arcade.Sdk.dll" )
|
||||
possiblePaths+=( "$toolset_dir/net7.0/Microsoft.DotNet.ArcadeLogging.dll" )
|
||||
possiblePaths+=( "$toolset_dir/net7.0/Microsoft.DotNet.Arcade.Sdk.dll" )
|
||||
possiblePaths+=( "$toolset_dir/net8.0/Microsoft.DotNet.ArcadeLogging.dll" )
|
||||
possiblePaths+=( "$toolset_dir/net8.0/Microsoft.DotNet.Arcade.Sdk.dll" )
|
||||
for path in "${possiblePaths[@]}"; do
|
||||
if [[ -f $path ]]; then
|
||||
selectedPath=$path
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
schedules:
|
||||
- cron: "0 7 * * 1-5"
|
||||
displayName: Run on weekdays at 7am UTC
|
||||
- cron: "0 11 * * 1-5"
|
||||
displayName: Run on weekdays at 11am UTC
|
||||
branches:
|
||||
include:
|
||||
- main
|
||||
|
@ -38,8 +38,15 @@ jobs:
|
|||
|
||||
- template: templates/jobs/sdk-diff-tests.yml
|
||||
parameters:
|
||||
buildName: Fedora38_Offline_MsftSdk
|
||||
targetRid: fedora.38-x64
|
||||
buildName: Alpine319_Online_MsftSdk
|
||||
targetRid: alpine.3.19-x64
|
||||
architecture: x64
|
||||
dotnetDotnetRunId: ${{ parameters.dotnetDotnetRunId }}
|
||||
|
||||
- template: templates/jobs/sdk-diff-tests.yml
|
||||
parameters:
|
||||
buildName: Fedora39_Offline_MsftSdk
|
||||
targetRid: fedora.39-x64
|
||||
architecture: x64
|
||||
dotnetDotnetRunId: ${{ parameters.dotnetDotnetRunId }}
|
||||
|
||||
|
|
|
@ -38,7 +38,7 @@ jobs:
|
|||
|
||||
echo "Dotnet-dotnet build: https://dev.azure.com/dnceng/internal/_build/results?buildId=$dotnet_dotnet_build&view=results"
|
||||
|
||||
installer_sha=$(az pipelines build tag list --organization '$(AZDO_ORG)' --project '$(AZDO_PROJECT)' --build-id $dotnet_dotnet_build --output tsv | sed "s,installer-,,g")
|
||||
installer_sha=$(az pipelines build tag list --organization '$(AZDO_ORG)' --project '$(AZDO_PROJECT)' --build-id $dotnet_dotnet_build --output tsv | sed "s,installer ,,g")
|
||||
installer_build=$(az pipelines runs list --organization '$(AZDO_ORG)' --project '$(AZDO_PROJECT)' --pipeline-ids '$(INSTALLER_OFFICIAL_CI_PIPELINE_ID)' --query "[?sourceVersion == '$installer_sha'].id" --output tsv)
|
||||
if [[ -z "$installer_build" ]]; then
|
||||
echo "Could not find a build of installer for commit '$installer_sha'"
|
||||
|
@ -57,7 +57,7 @@ jobs:
|
|||
|
||||
- template: ../steps/download-pipeline-artifact.yml
|
||||
parameters:
|
||||
patterns: '**/dotnet-sdk-+([0-9]).+([0-9]).+([0-9])?(-@(alpha|preview|rc|rtm)*)-linux-${{ parameters.architecture }}.tar.gz'
|
||||
patterns: '**/dotnet-sdk-+([0-9]).+([0-9]).+([0-9])?(-@(alpha|preview|rc|rtm)*)-linux*-${{ parameters.architecture }}.tar.gz'
|
||||
displayName: Download MSFT SDK
|
||||
|
||||
- template: ../steps/download-vmr-artifact.yml
|
||||
|
@ -75,7 +75,11 @@ jobs:
|
|||
displayName: Download Source Built Artifacts
|
||||
|
||||
- script: |
|
||||
msft_sdk_tarball_name=$(find "$(Pipeline.Workspace)/Artifacts" -name "dotnet-sdk-*-linux-${{ parameters.architecture }}.tar.gz" -exec basename {} \;)
|
||||
platform="linux"
|
||||
if [[ ${{ parameters.targetRid }} =~ "alpine" ]]; then
|
||||
platform="$platform-musl"
|
||||
fi
|
||||
msft_sdk_tarball_name=$(find "$(Pipeline.Workspace)/Artifacts" -name "dotnet-sdk-*-$platform-${{ parameters.architecture }}.tar.gz" -exec basename {} \;)
|
||||
|
||||
if [[ -z "$msft_sdk_tarball_name" ]]; then
|
||||
echo "Microsoft SDK tarball does not exist in '$(Pipeline.Workspace)/Artifacts'. The associated build https://dev.azure.com/dnceng/internal/_build/results?buildId=$(InstallerBuildId) might have failed."
|
||||
|
@ -98,6 +102,7 @@ jobs:
|
|||
|
||||
eng/common/build.sh -bl --projects $(Build.SourcesDirectory)/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/Microsoft.DotNet.SourceBuild.SmokeTests.csproj --restore
|
||||
|
||||
echo "##vso[task.setvariable variable=Platform]$platform"
|
||||
echo "##vso[task.setvariable variable=MsftSdkTarballPath]$(Pipeline.Workspace)/Artifacts/$msft_sdk_tarball_name"
|
||||
echo "##vso[task.setvariable variable=SdkTarballPath]$(Pipeline.Workspace)/Artifacts/$sdk_tarball_name"
|
||||
echo "##vso[task.setvariable variable=SourceBuiltArtifactsPath]$(Pipeline.Workspace)/Artifacts/$artifacts_path"
|
||||
|
@ -120,7 +125,7 @@ jobs:
|
|||
-e SMOKE_TESTS_WARN_SDK_CONTENT_DIFFS=false
|
||||
-e SMOKE_TESTS_RUNNING_IN_CI=true
|
||||
-e SMOKE_TESTS_TARGET_RID=${{ parameters.targetRid }}
|
||||
-e SMOKE_TESTS_PORTABLE_RID=linux-${{ parameters.architecture }}
|
||||
-e SMOKE_TESTS_PORTABLE_RID=$(Platform)-${{ parameters.architecture }}
|
||||
-e SMOKE_TESTS_CUSTOM_PACKAGES_PATH=
|
||||
-e SMOKE_TESTS_INCLUDE_ARTIFACTSSIZE=${{ parameters.includeArtifactsSize }}
|
||||
displayName: Run Tests
|
||||
|
|
|
@ -61,6 +61,14 @@ parameters:
|
|||
type: boolean
|
||||
default: false
|
||||
|
||||
- name: crossRootFS
|
||||
type: string
|
||||
default: ''
|
||||
|
||||
- name: targetRid
|
||||
type: string
|
||||
default: ''
|
||||
|
||||
jobs:
|
||||
- job: ${{ parameters.buildName }}_${{ parameters.architecture }}
|
||||
timeoutInMinutes: 150
|
||||
|
@ -182,9 +190,9 @@ jobs:
|
|||
if [[ -n '${{ parameters.artifactsRid }}' ]]; then
|
||||
customPrepArgs="${customPrepArgs} --artifacts-rid ${{ parameters.artifactsRid }}"
|
||||
fi
|
||||
|
||||
|
||||
if [[ '${{ parameters.withPreviousSDK }}' == 'True' ]]; then
|
||||
# Source-built artifacts are from CentOS 8 Stream or Alpine 3.17. We want to download them without
|
||||
# Source-built artifacts are from CentOS 8 Stream or Alpine 3.19. We want to download them without
|
||||
# downloading portable versions from the internet.
|
||||
customPrepArgs="${customPrepArgs} --no-sdk --no-bootstrap"
|
||||
prepSdk=false
|
||||
|
@ -192,7 +200,7 @@ jobs:
|
|||
customPrepArgs="${customPrepArgs} --no-sdk --no-artifacts"
|
||||
prepSdk=false
|
||||
fi
|
||||
|
||||
|
||||
if [[ "$prepSdk" == "false" ]]; then
|
||||
mkdir $(sourcesPath)/.dotnet
|
||||
previousSdkPath="$(sourcesPath)/prereqs/packages/archive/dotnet-sdk-*.tar.gz"
|
||||
|
@ -202,7 +210,13 @@ jobs:
|
|||
echo "##vso[task.setvariable variable=additionalBuildArgs]--with-sdk /vmr/.dotnet"
|
||||
fi
|
||||
|
||||
docker run --rm -v "$(sourcesPath):/vmr" -w /vmr ${{ parameters.container }} ./prep.sh $customPrepArgs
|
||||
# Only use Docker stuff on Linux
|
||||
if [[ -n "${{ parameters.container }}" ]]; then
|
||||
docker run --rm -v "$(sourcesPath):/vmr" -w /vmr ${{ parameters.container }} ./prep.sh $customPrepArgs
|
||||
else
|
||||
cd $(sourcesPath)
|
||||
./prep.sh $customPrepArgs
|
||||
fi
|
||||
displayName: Prep the Build
|
||||
|
||||
- script: |
|
||||
|
@ -210,12 +224,10 @@ jobs:
|
|||
df -h
|
||||
|
||||
# Allows Arcade to have access to the commit for the build
|
||||
customRunArgs="-e BUILD_SOURCEVERSION"
|
||||
customBuildArgs=
|
||||
customEnvVars="BUILD_SOURCEVERSION=$BUILD_SOURCEVERSION"
|
||||
customBuildArgs="--ci --prepareMachine"
|
||||
if [[ '${{ parameters.runOnline }}' == 'True' ]]; then
|
||||
customBuildArgs='--online'
|
||||
else
|
||||
customRunArgs="$customRunArgs --network none"
|
||||
customBuildArgs="$customBuildArgs --online"
|
||||
fi
|
||||
|
||||
if [[ '${{ parameters.enablePoison }}' == 'True' ]]; then
|
||||
|
@ -231,22 +243,63 @@ jobs:
|
|||
customBuildArgs="$customBuildArgs --use-mono-runtime"
|
||||
fi
|
||||
|
||||
docker run --rm -v "$(sourcesPath):/vmr" -w /vmr $customRunArgs ${{ parameters.container }} ./build.sh --clean-while-building $(additionalBuildArgs) $customBuildArgs
|
||||
displayName: Build
|
||||
|
||||
- script: |
|
||||
set -x
|
||||
|
||||
dockerVolumeArgs="-v $(sourcesPath):/vmr"
|
||||
dockerEnvArgs="-e SMOKE_TESTS_EXCLUDE_OMNISHARP=${{ parameters.excludeOmniSharpTests }} -e SMOKE_TESTS_WARN_SDK_CONTENT_DIFFS=true -e SMOKE_TESTS_RUNNING_IN_CI=true"
|
||||
poisonArg=''
|
||||
|
||||
if [[ '${{ parameters.enablePoison }}' == 'True' ]]; then
|
||||
poisonArg='--poison'
|
||||
if [[ -n "${{ parameters.container }}" ]]; then
|
||||
useDocker=true
|
||||
fi
|
||||
|
||||
docker run --rm $dockerVolumeArgs -w /vmr $dockerEnvArgs ${{ parameters.container }} ./build.sh $poisonArg --run-smoke-test $(additionalBuildArgs) -- -p:SmokeTestConsoleVerbosity=detailed
|
||||
displayName: Run Tests
|
||||
if [[ ! -z '${{ parameters.targetRid }}' ]]; then
|
||||
extraBuildProperties="--"
|
||||
if [[ '${{ parameters.useMonoRuntime }}' == 'True' ]]; then
|
||||
customEnvVars="$customEnvVars CROSSCOMPILE=1"
|
||||
fi
|
||||
extraBuildProperties="$extraBuildProperties /p:PortableBuild=true /p:DotNetBuildVertical=true /p:CrossBuild=true"
|
||||
fi
|
||||
|
||||
if [[ ! -z '${{ parameters.crossRootFs }}' ]]; then
|
||||
customEnvVars="$customEnvVars ROOTFS_DIR=${{ parameters.crossRootFs}}"
|
||||
fi
|
||||
|
||||
if [[ ! -z '${{ parameters.targetRid }}' ]]; then
|
||||
extraBuildProperties="$extraBuildProperties /p:OverrideTargetRid=${{ parameters.targetRid }}"
|
||||
fi
|
||||
|
||||
# Only use Docker stuff on Linux
|
||||
if [[ "$useDocker" == "true" ]]; then
|
||||
customDockerRunArgs=""
|
||||
for envVar in $customEnvVars; do
|
||||
customDockerRunArgs="$customDockerRunArgs -e $envVar"
|
||||
done
|
||||
|
||||
if [[ '${{ parameters.runOnline }}' == 'False' ]]; then
|
||||
customDockerRunArgs="$customDockerRunArgs --network none"
|
||||
fi
|
||||
|
||||
docker run --rm -v "$(sourcesPath):/vmr" -w /vmr $customDockerRunArgs ${{ parameters.container }} ./build.sh --source-only --clean-while-building $(additionalBuildArgs) $customBuildArgs $extraBuildProperties
|
||||
else
|
||||
for envVar in $customEnvVars; do
|
||||
customEnvVarsWithBashSyntax="$customEnvVarsWithBashSyntax export $envVar;"
|
||||
done
|
||||
cd $(sourcesPath)
|
||||
eval $customEnvVarsWithBashSyntax
|
||||
./build.sh --source-only --clean-while-building $(additionalBuildArgs) $customBuildArgs $extraBuildProperties
|
||||
fi
|
||||
displayName: Build
|
||||
|
||||
# Don't run tests if overriding RID, we don't support that for now
|
||||
- ${{ if eq(parameters.targetRid, '') }}:
|
||||
- script: |
|
||||
set -x
|
||||
|
||||
dockerVolumeArgs="-v $(sourcesPath):/vmr"
|
||||
dockerEnvArgs="-e SMOKE_TESTS_EXCLUDE_OMNISHARP=${{ parameters.excludeOmniSharpTests }} -e SMOKE_TESTS_WARN_SDK_CONTENT_DIFFS=true -e SMOKE_TESTS_RUNNING_IN_CI=true"
|
||||
poisonArg=''
|
||||
|
||||
if [[ '${{ parameters.enablePoison }}' == 'True' ]]; then
|
||||
poisonArg='--poison'
|
||||
fi
|
||||
|
||||
docker run --rm $dockerVolumeArgs -w /vmr $dockerEnvArgs ${{ parameters.container }} ./build.sh --source-only $poisonArg --test $(additionalBuildArgs) /p:SmokeTestConsoleVerbosity=detailed
|
||||
displayName: Run Tests
|
||||
|
||||
# Don't use CopyFiles@2 as it encounters permissions issues because it indexes all files in the source directory graph.
|
||||
- script: |
|
||||
|
|
|
@ -2,6 +2,10 @@
|
|||
### It synchronizes the content of the VMR to this new commit and pushes the changes
|
||||
|
||||
parameters:
|
||||
- name: jobName
|
||||
displayName: Name of the pipeline job
|
||||
type: string
|
||||
|
||||
- name: targetRef
|
||||
displayName: Target revision of dotnet/installer to synchronize
|
||||
type: string
|
||||
|
@ -18,8 +22,8 @@ parameters:
|
|||
default: false
|
||||
|
||||
jobs:
|
||||
- job: Synchronize_VMR
|
||||
displayName: Synchronize dotnet/dotnet
|
||||
- job: ${{ parameters.jobName }}
|
||||
displayName: Synchronize VMR's ${{ parameters.vmrBranch }}
|
||||
timeoutInMinutes: 120
|
||||
variables:
|
||||
- template: /eng/common/templates/variables/pool-providers.yml
|
||||
|
@ -32,10 +36,11 @@ jobs:
|
|||
- name: vmrPublicUrl
|
||||
value: https://github.com/dotnet/dotnet
|
||||
- ${{ if and( eq(variables['System.TeamProject'], 'internal'), startswith(variables['Build.SourceBranch'], 'refs/heads/internal/release/')) }}:
|
||||
# https://dev.azure.com/dnceng/internal/_library?itemType=VariableGroups&view=VariableGroupView&variableGroupId=172&path=DotNetBot-AzDO-PAT
|
||||
- group: DotNetBot-AzDO-PAT
|
||||
- name: vmrInternalUrl
|
||||
value: https://dnceng@dev.azure.com/dnceng/internal/_git/dotnet-dotnet
|
||||
|
||||
|
||||
pool:
|
||||
${{ if eq(variables['System.TeamProject'], 'public') }}:
|
||||
name: $(DncEngPublicBuildPool)
|
||||
|
@ -58,7 +63,7 @@ jobs:
|
|||
|
||||
- ${{ if and(not(parameters.noPush), not(in(variables['Build.Reason'], 'PullRequest')), eq(variables['System.TeamProject'], 'internal')) }}:
|
||||
# Push main and release branches to the public VMR
|
||||
- ${{ if or(eq(parameters.vmrBranch, 'main'), startsWith(parameters.vmrBranch, 'release/')) }}:
|
||||
- ${{ if or(eq(parameters.vmrBranch, 'main'), eq(parameters.vmrBranch, 'main-ub'), startsWith(parameters.vmrBranch, 'release/')) }}:
|
||||
- script: >
|
||||
./.dotnet/dotnet darc vmr push
|
||||
--vmr '$(vmrPath)'
|
||||
|
|
|
@ -16,10 +16,10 @@ parameters:
|
|||
|
||||
# The following parameters aren't expected to be passed in rather they are used for encapsulation
|
||||
# -----------------------------------------------------------------------------------------------
|
||||
alpine317Container: mcr.microsoft.com/dotnet-buildtools/prereqs:alpine-3.17
|
||||
alpine319Container: mcr.microsoft.com/dotnet-buildtools/prereqs:alpine-3.19-WithNode
|
||||
centOSStream8Container: mcr.microsoft.com/dotnet-buildtools/prereqs:centos-stream8
|
||||
centOSStream9Container: mcr.microsoft.com/dotnet-buildtools/prereqs:centos-stream9
|
||||
fedora38Container: mcr.microsoft.com/dotnet-buildtools/prereqs:fedora-38
|
||||
fedora39Container: mcr.microsoft.com/dotnet-buildtools/prereqs:fedora-39
|
||||
ubuntu2204Container: mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-22.04
|
||||
ubuntu2204ArmContainer: mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-22.04-arm64
|
||||
|
||||
|
@ -112,15 +112,15 @@ stages:
|
|||
- template: ../jobs/vmr-build.yml
|
||||
parameters:
|
||||
# Changing the build name requires updating the referenced name in the source-build-sdk-diff-tests.yml pipeline
|
||||
buildName: Alpine317_Offline_PreviousSourceBuiltSdk
|
||||
buildName: Alpine319_Offline_PreviousSourceBuiltSdk
|
||||
isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }}
|
||||
vmrBranch: ${{ variables.VmrBranch }}
|
||||
architecture: x64
|
||||
artifactsRid: alpine.3.17-x64
|
||||
artifactsRid: alpine.3.19-x64
|
||||
pool:
|
||||
name: ${{ variables.defaultPoolName }}
|
||||
demands: ${{ variables.defaultPoolDemands }}
|
||||
container: ${{ parameters.alpine317Container }}
|
||||
container: ${{ parameters.alpine319Container }}
|
||||
buildFromArchive: false # 🚫
|
||||
enablePoison: true # ✅
|
||||
excludeOmniSharpTests: true # ✅
|
||||
|
@ -130,6 +130,24 @@ stages:
|
|||
|
||||
- ${{ if eq(parameters.isLiteBuild, false) }}:
|
||||
|
||||
- template: ../jobs/vmr-build.yml
|
||||
parameters:
|
||||
# Changing the build name requires updating the referenced name in the source-build-sdk-diff-tests.yml pipeline
|
||||
buildName: Alpine319_Online_MsftSdk
|
||||
isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }}
|
||||
vmrBranch: ${{ variables.VmrBranch }}
|
||||
architecture: x64
|
||||
pool:
|
||||
name: ${{ variables.defaultPoolName }}
|
||||
demands: ${{ variables.defaultPoolDemands }}
|
||||
container: ${{ parameters.alpine319Container }}
|
||||
buildFromArchive: false # 🚫
|
||||
enablePoison: false # 🚫
|
||||
excludeOmniSharpTests: true # ✅
|
||||
runOnline: true # ✅
|
||||
useMonoRuntime: false # 🚫
|
||||
withPreviousSDK: false # 🚫
|
||||
|
||||
- template: ../jobs/vmr-build.yml
|
||||
parameters:
|
||||
# Changing the build name requires updating the referenced name in the source-build-sdk-diff-tests.yml pipeline
|
||||
|
@ -225,14 +243,14 @@ stages:
|
|||
- template: ../jobs/vmr-build.yml
|
||||
parameters:
|
||||
# Changing the build name requires updating the referenced name in the source-build-sdk-diff-tests.yml pipeline
|
||||
buildName: Fedora38_Offline_MsftSdk
|
||||
buildName: Fedora39_Offline_MsftSdk
|
||||
isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }}
|
||||
vmrBranch: ${{ variables.VmrBranch }}
|
||||
architecture: x64
|
||||
pool:
|
||||
name: ${{ variables.defaultPoolName }}
|
||||
demands: ${{ variables.defaultPoolDemands }}
|
||||
container: ${{ parameters.fedora38Container }}
|
||||
container: ${{ parameters.fedora39Container }}
|
||||
buildFromArchive: true # ✅
|
||||
enablePoison: false # 🚫
|
||||
excludeOmniSharpTests: false # 🚫
|
||||
|
@ -277,18 +295,18 @@ stages:
|
|||
- template: ../jobs/vmr-build.yml
|
||||
parameters:
|
||||
# Changing the build name requires updating the referenced name in the source-build-sdk-diff-tests.yml pipeline
|
||||
buildName: Fedora38_Offline_CurrentSourceBuiltSdk
|
||||
buildName: Fedora39_Offline_CurrentSourceBuiltSdk
|
||||
isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }}
|
||||
vmrBranch: ${{ variables.VmrBranch }}
|
||||
architecture: x64
|
||||
pool:
|
||||
name: ${{ variables.defaultPoolName }}
|
||||
demands: ${{ variables.defaultPoolDemands }}
|
||||
container: ${{ parameters.fedora38Container }}
|
||||
container: ${{ parameters.fedora39Container }}
|
||||
buildFromArchive: false # 🚫
|
||||
enablePoison: false # 🚫
|
||||
excludeOmniSharpTests: false # 🚫
|
||||
runOnline: false # 🚫
|
||||
useMonoRuntime: false # 🚫
|
||||
withPreviousSDK: false # 🚫
|
||||
reuseBuildArtifactsFrom: Fedora38_Offline_MsftSdk
|
||||
reuseBuildArtifactsFrom: Fedora39_Offline_MsftSdk
|
||||
|
|
167
eng/pipelines/templates/stages/vmr-cross-build.yml
Normal file
167
eng/pipelines/templates/stages/vmr-cross-build.yml
Normal file
|
@ -0,0 +1,167 @@
|
|||
### This stage source-builds https://github.com/dotnet/dotnet with varying parameters
|
||||
### If run in a PR, new changes are applied to a local copy of the VMR, then it is source-built and tested
|
||||
|
||||
parameters:
|
||||
dependsOn: []
|
||||
condition: always()
|
||||
|
||||
# Branch of the VMR to use (to push to for internal builds)
|
||||
vmrBranch: $(Build.SourceBranch)
|
||||
|
||||
# True when the build is a lite build
|
||||
isLiteBuild:
|
||||
|
||||
# True when build is running from dotnet/dotnet directly
|
||||
isBuiltFromVmr:
|
||||
|
||||
# The following parameters aren't expected to be passed in rather they are used for encapsulation
|
||||
# -----------------------------------------------------------------------------------------------
|
||||
marinerX64CrossContainer: mcr.microsoft.com/dotnet-buildtools/prereqs:cbl-mariner-2.0-cross-amd64
|
||||
marinerArm64CrossContainer: mcr.microsoft.com/dotnet-buildtools/prereqs:cbl-mariner-2.0-cross-arm64
|
||||
|
||||
# Internal builds
|
||||
poolInternalAmd64:
|
||||
name: NetCore1ESPool-Svc-Internal
|
||||
demands: ImageOverride -equals Build.Ubuntu.1804.Amd64
|
||||
poolInternalAmd64PR:
|
||||
name: NetCore1ESPool-Internal-XL
|
||||
demands: ImageOverride -equals Build.Ubuntu.1804.Amd64
|
||||
poolInternalArm64:
|
||||
name: Docker-Linux-Arm-Internal
|
||||
|
||||
# Public builds / PRs
|
||||
poolPublicAmd64:
|
||||
name: NetCore-Public-XL
|
||||
demands: ImageOverride -equals Build.Ubuntu.1804.Amd64.Open
|
||||
|
||||
# Mac
|
||||
poolMac:
|
||||
vmImage: 'macos-12'
|
||||
|
||||
stages:
|
||||
- stage: VMR_PoC_Build
|
||||
displayName: VMR PoC-Build
|
||||
dependsOn: ${{ parameters.dependsOn }}
|
||||
condition: ${{ parameters.condition }}
|
||||
variables:
|
||||
- ${{ if eq(variables['System.TeamProject'], 'public') }}:
|
||||
- name: defaultPoolName
|
||||
value: ${{ parameters.poolPublicAmd64.name }}
|
||||
- name: defaultPoolDemands
|
||||
value: ${{ parameters.poolPublicAmd64.demands }}
|
||||
- ${{ if eq(variables['System.TeamProject'], 'internal') }}:
|
||||
- ${{ if in(variables['Build.Reason'], 'PullRequest') }}:
|
||||
- name: defaultPoolName
|
||||
value: ${{ parameters.poolInternalAmd64PR.name }}
|
||||
- name: defaultPoolDemands
|
||||
value: ${{ parameters.poolInternalAmd64PR.demands }}
|
||||
- ${{ else }}:
|
||||
- name: defaultPoolName
|
||||
value: ${{ parameters.poolInternalAmd64.name }}
|
||||
- name: defaultPoolDemands
|
||||
value: ${{ parameters.poolInternalAmd64.demands }}
|
||||
|
||||
- ${{ if ne(parameters.vmrBranch, '') }}:
|
||||
- name: VmrBranch
|
||||
value: ${{ parameters.vmrBranch }}
|
||||
- ${{ else }}:
|
||||
- name: VmrBranch
|
||||
value: ${{ replace(replace(variables['Build.SourceBranch'], 'refs/heads/', ''), 'refs/pull/', '') }}
|
||||
|
||||
jobs:
|
||||
|
||||
- template: ../jobs/vmr-build.yml
|
||||
parameters:
|
||||
# Changing the build name requires updating the referenced name in the source-build-sdk-diff-tests.yml pipeline
|
||||
buildName: MarinerCrossX64_Online_MsftSdk
|
||||
isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }}
|
||||
vmrBranch: ${{ variables.VmrBranch }}
|
||||
architecture: x64
|
||||
pool:
|
||||
name: ${{ variables.defaultPoolName }}
|
||||
demands: ${{ variables.defaultPoolDemands }}
|
||||
container: ${{ parameters.marinerx64CrossContainer }}
|
||||
buildFromArchive: false # 🚫
|
||||
enablePoison: false # 🚫
|
||||
excludeOmniSharpTests: true # ✅
|
||||
runOnline: true # ✅
|
||||
useMonoRuntime: true # ✅
|
||||
withPreviousSDK: false # 🚫
|
||||
crossRootFs: '/crossrootfs/x64' # 📝
|
||||
targetRid: 'linux-x64' # 📝
|
||||
|
||||
- template: ../jobs/vmr-build.yml
|
||||
parameters:
|
||||
# Changing the build name requires updating the referenced name in the source-build-sdk-diff-tests.yml pipeline
|
||||
buildName: MarinerCrossArm64_Online_MsftSdk_Mono
|
||||
isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }}
|
||||
vmrBranch: ${{ variables.VmrBranch }}
|
||||
architecture: arm64
|
||||
pool:
|
||||
name: ${{ variables.defaultPoolName }}
|
||||
demands: ${{ variables.defaultPoolDemands }}
|
||||
container: ${{ parameters.marinerArm64CrossContainer }}
|
||||
buildFromArchive: false # 🚫
|
||||
enablePoison: false # 🚫
|
||||
excludeOmniSharpTests: true # ✅
|
||||
runOnline: true # ✅
|
||||
useMonoRuntime: true # ✅
|
||||
withPreviousSDK: false # 🚫
|
||||
crossRootFs: '/crossrootfs/arm64' # 📝
|
||||
targetRid: 'linux-arm64' # 📝
|
||||
|
||||
- template: ../jobs/vmr-build.yml
|
||||
parameters:
|
||||
# Changing the build name requires updating the referenced name in the source-build-sdk-diff-tests.yml pipeline
|
||||
buildName: OSXCrossX64_Online_MsftSdk
|
||||
isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }}
|
||||
vmrBranch: ${{ variables.VmrBranch }}
|
||||
architecture: x64
|
||||
pool:
|
||||
vmImage: ${{ parameters.poolMac.vmImage }}
|
||||
container: ''
|
||||
buildFromArchive: false # 🚫
|
||||
enablePoison: false # 🚫
|
||||
excludeOmniSharpTests: true # ✅
|
||||
runOnline: true # ✅
|
||||
useMonoRuntime: true # ✅
|
||||
withPreviousSDK: false # 🚫
|
||||
targetRid: 'osx-x64' # 📝
|
||||
|
||||
- template: ../jobs/vmr-build.yml
|
||||
parameters:
|
||||
# Changing the build name requires updating the referenced name in the source-build-sdk-diff-tests.yml pipeline
|
||||
buildName: OSXCrossArm64_Online_MsftSdk
|
||||
isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }}
|
||||
vmrBranch: ${{ variables.VmrBranch }}
|
||||
architecture: arm64
|
||||
pool:
|
||||
vmImage: ${{ parameters.poolMac.vmImage }}
|
||||
container: ''
|
||||
buildFromArchive: false # 🚫
|
||||
enablePoison: false # 🚫
|
||||
excludeOmniSharpTests: true # ✅
|
||||
runOnline: true # ✅
|
||||
useMonoRuntime: true # ✅
|
||||
withPreviousSDK: false # 🚫
|
||||
targetRid: 'osx-arm64' # 📝
|
||||
|
||||
- template: ../jobs/vmr-build.yml
|
||||
parameters:
|
||||
# Changing the build name requires updating the referenced name in the source-build-sdk-diff-tests.yml pipeline
|
||||
buildName: MarinerCrossArm64_Online_MsftSdk_CoreCLR
|
||||
isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }}
|
||||
vmrBranch: ${{ variables.VmrBranch }}
|
||||
architecture: arm64
|
||||
pool:
|
||||
name: ${{ variables.defaultPoolName }}
|
||||
demands: ${{ variables.defaultPoolDemands }}
|
||||
container: ${{ parameters.marinerArm64CrossContainer }}
|
||||
buildFromArchive: false # 🚫
|
||||
enablePoison: false # 🚫
|
||||
excludeOmniSharpTests: true # ✅
|
||||
runOnline: true # ✅
|
||||
useMonoRuntime: false # 🚫
|
||||
withPreviousSDK: false # 🚫
|
||||
crossRootFs: '/crossrootfs/arm64' # 📝
|
||||
targetRid: 'linux-arm64' # 📝
|
|
@ -33,6 +33,7 @@ steps:
|
|||
- script: |
|
||||
git checkout -B ${{ parameters.vmrBranch }}
|
||||
echo "##vso[task.setvariable variable=vmrBranch]${{ parameters.vmrBranch }}"
|
||||
mkdir -p ${{ parameters.vmrPath }}/artifacts/x64/Release
|
||||
displayName: Prepare branch ${{ parameters.vmrBranch }}
|
||||
workingDirectory: ${{ parameters.vmrPath }}
|
||||
|
||||
|
@ -42,17 +43,30 @@ steps:
|
|||
displayName: Set git author to dotnet-maestro[bot]
|
||||
workingDirectory: ${{ parameters.vmrPath }}
|
||||
|
||||
- script: |
|
||||
echo '**/*' > .artifactignore
|
||||
echo '!./*.patch' >> .artifactignore
|
||||
displayName: Prepare .artifactignore
|
||||
workingDirectory: $(Agent.TempDirectory)
|
||||
|
||||
- script: >
|
||||
./eng/vmr-sync.sh
|
||||
--vmr ${{ parameters.vmrPath }}
|
||||
--tmp $(Agent.TempDirectory)
|
||||
--azdev-pat '$(System.AccessToken)'
|
||||
--azdev-pat '$(dn-bot-all-orgs-code-r)'
|
||||
--branch ${{ parameters.vmrBranch }}
|
||||
--repository "installer:${{ parameters.targetRef }}"
|
||||
--recursive
|
||||
--remote "installer:$(pwd)"
|
||||
--readme-template $(Agent.BuildDirectory)/installer/src/VirtualMonoRepo/README.template.md
|
||||
--component-template $(Agent.BuildDirectory)/installer/src/VirtualMonoRepo/Component.template.md
|
||||
--tpn-template $(Agent.BuildDirectory)/installer/src/VirtualMonoRepo/THIRD-PARTY-NOTICES.template.txt
|
||||
--debug
|
||||
||
|
||||
(echo "##vso[task.logissue type=error]Failed to synchronize the VMR" && exit 1)
|
||||
displayName: Synchronize dotnet/dotnet
|
||||
workingDirectory: $(Agent.BuildDirectory)/installer
|
||||
|
||||
- publish: $(Agent.TempDirectory)
|
||||
artifact: $(System.JobDisplayName)_FailedPatches
|
||||
displayName: Upload failed patches
|
||||
condition: failed()
|
||||
|
|
|
@ -32,10 +32,14 @@ variables:
|
|||
- ${{ else }}:
|
||||
- name: VmrBranch
|
||||
value: ${{ replace(replace(variables['Build.SourceBranch'], 'refs/heads/', ''), 'refs/pull/', '') }}
|
||||
|
||||
|
||||
jobs:
|
||||
- template: /eng/pipelines/templates/jobs/vmr-synchronization.yml
|
||||
parameters:
|
||||
vmrBranch: ${{ variables.VmrBranch }}
|
||||
|
||||
|
||||
- template: /eng/pipelines/templates/jobs/vmr-synchronization.yml
|
||||
parameters:
|
||||
jobName: Synchronize_VMR
|
||||
vmrBranch: ${{ variables.VmrBranch }}
|
||||
|
||||
- template: /eng/pipelines/templates/jobs/vmr-synchronization.yml
|
||||
parameters:
|
||||
jobName: Synchronize_VMR_uncloacked
|
||||
vmrBranch: ${{ variables.VmrBranch }}-ub
|
||||
|
|
52
eng/pipelines/vmr-vertical-build-poc.yml
Normal file
52
eng/pipelines/vmr-vertical-build-poc.yml
Normal file
|
@ -0,0 +1,52 @@
|
|||
trigger: none
|
||||
pr:
|
||||
branches:
|
||||
include:
|
||||
- main
|
||||
|
||||
parameters:
|
||||
- name: vmrBranch
|
||||
displayName: dotnet/dotnet branch to push to
|
||||
type: string
|
||||
default: ' '
|
||||
|
||||
- name: disableVmrBuild
|
||||
displayName: Skip source-building the VMR
|
||||
type: boolean
|
||||
default: false
|
||||
|
||||
variables:
|
||||
- ${{ if ne(parameters.vmrBranch, ' ') }}:
|
||||
- name: VmrBranch
|
||||
value: ${{ replace(parameters.vmrBranch, ' ', '') }}
|
||||
- ${{ else }}:
|
||||
- name: VmrBranch
|
||||
value: ${{ replace(replace(variables['System.PullRequest.TargetBranch'], 'refs/heads/', ''), 'refs/pull/', '') }}
|
||||
|
||||
resources:
|
||||
repositories:
|
||||
- repository: vmr
|
||||
type: github
|
||||
name: dotnet/dotnet
|
||||
endpoint: dotnet
|
||||
ref: ${{ variables.VmrBranch }}
|
||||
|
||||
stages:
|
||||
- ${{ if not(parameters.disableVmrBuild) }}:
|
||||
- template: templates/stages/vmr-cross-build.yml
|
||||
parameters:
|
||||
vmrBranch: ${{ variables.VmrBranch }}
|
||||
isBuiltFromVmr: false
|
||||
isLiteBuild: true
|
||||
|
||||
# In case the VMR Build stage is temporarily disabled, the VMR synchronization step is run to validate
|
||||
# that the PR can be merged and later synchronized into the VMR without problems.
|
||||
- ${{ else }}:
|
||||
- stage: Synchronize_VMR
|
||||
displayName: Synchronize VMR
|
||||
dependsOn: []
|
||||
jobs:
|
||||
- template: templates/jobs/vmr-synchronization.yml
|
||||
parameters:
|
||||
vmrBranch: ${{ variables.VmrBranch }}
|
||||
noPush: true
|
|
@ -33,10 +33,10 @@
|
|||
### --debug
|
||||
### Optional. Turns on the most verbose logging for the VMR tooling
|
||||
###
|
||||
### --readme-template
|
||||
### Optional. Template for VMRs README.md used for regenerating the file to list the newest versions of
|
||||
### --component-template
|
||||
### Optional. Template for VMRs Component.md used for regenerating the file to list the newest versions of
|
||||
### components.
|
||||
### Defaults to src/VirtualMonoRepo/README.template.md
|
||||
### Defaults to src/VirtualMonoRepo/Component.template.md
|
||||
###
|
||||
### --recursive
|
||||
### Optional. Recursively synchronize all the source build dependencies (declared in Version.Details.xml)
|
||||
|
@ -94,7 +94,8 @@ function highlight () {
|
|||
echo "${COLOR_CYAN}$FAILURE_PREFIX${1//${COLOR_RESET}/${COLOR_CYAN}}${COLOR_CLEAR}"
|
||||
}
|
||||
|
||||
installer_dir=$(realpath "$scriptroot/../")
|
||||
# realpath is not available in macOS 12, try horrible-but-portable workaround
|
||||
installer_dir=$(cd "$scriptroot/../"; pwd -P)
|
||||
|
||||
tmp_dir=''
|
||||
vmr_dir=''
|
||||
|
@ -103,7 +104,7 @@ repository=''
|
|||
additional_remotes=''
|
||||
recursive=false
|
||||
verbosity=verbose
|
||||
readme_template="$installer_dir/src/VirtualMonoRepo/README.template.md"
|
||||
readme_template="$installer_dir/src/VirtualMonoRepo/Component.template.md"
|
||||
tpn_template="$installer_dir/src/VirtualMonoRepo/THIRD-PARTY-NOTICES.template.txt"
|
||||
azdev_pat=''
|
||||
|
||||
|
@ -138,8 +139,8 @@ while [[ $# -gt 0 ]]; do
|
|||
additional_remotes="$additional_remotes $2"
|
||||
shift
|
||||
;;
|
||||
--readme-template)
|
||||
readme_template=$2
|
||||
--component-template)
|
||||
component_template=$2
|
||||
shift
|
||||
;;
|
||||
--tpn-template)
|
||||
|
@ -238,7 +239,8 @@ set -e
|
|||
highlight 'Installing .NET, preparing the tooling..'
|
||||
source "$scriptroot/common/tools.sh"
|
||||
InitializeDotNetCli true
|
||||
dotnet=$(realpath "$scriptroot/../.dotnet/dotnet")
|
||||
dotnetDir=$( cd $scriptroot/../.dotnet/; pwd -P )
|
||||
dotnet=$dotnetDir/dotnet
|
||||
"$dotnet" tool restore
|
||||
|
||||
highlight "Starting the synchronization of '$repository'.."
|
||||
|
@ -266,8 +268,9 @@ fi
|
|||
--$verbosity \
|
||||
$recursive_arg \
|
||||
$additional_remotes \
|
||||
--readme-template "$readme_template" \
|
||||
--component-template "$component_template" \
|
||||
--tpn-template "$tpn_template" \
|
||||
--discard-patches \
|
||||
"$repository"
|
||||
|
||||
if [[ $? == 0 ]]; then
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"tools": {
|
||||
"dotnet": "9.0.100-alpha.1.23524.3",
|
||||
"dotnet": "9.0.100-alpha.1.23615.4",
|
||||
"runtimes": {
|
||||
"dotnet": [
|
||||
"$(VSRedistCommonNetCoreSharedFrameworkx6490PackageVersion)"
|
||||
|
@ -12,7 +12,7 @@
|
|||
},
|
||||
"msbuild-sdks": {
|
||||
"Microsoft.Build.NoTargets": "3.7.0",
|
||||
"Microsoft.DotNet.Arcade.Sdk": "9.0.0-beta.23559.3",
|
||||
"Microsoft.DotNet.CMake.Sdk": "9.0.0-beta.23559.3"
|
||||
"Microsoft.DotNet.Arcade.Sdk": "9.0.0-beta.24075.2",
|
||||
"Microsoft.DotNet.CMake.Sdk": "9.0.0-beta.24075.2"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
// Container contains checked-out source code only
|
||||
{
|
||||
"name": "Default",
|
||||
"image": "mcr.microsoft.com/dotnet-buildtools/prereqs:fedora-36",
|
||||
"image": "mcr.microsoft.com/dotnet-buildtools/prereqs:fedora-39",
|
||||
"hostRequirements": {
|
||||
// A completely source built .NET is >64 GB with all the repos/artifacts
|
||||
"storage": "128gb"
|
||||
|
@ -19,4 +19,4 @@
|
|||
}
|
||||
},
|
||||
"onCreateCommand": ".devcontainer/init.sh"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
// Container contains a pre-built SDK
|
||||
{
|
||||
"name": "Pre-built .NET SDK",
|
||||
"image": "mcr.microsoft.com/dotnet-buildtools/prereqs:fedora-36",
|
||||
"image": "mcr.microsoft.com/dotnet-buildtools/prereqs:fedora-39",
|
||||
"hostRequirements": {
|
||||
// A completely source built .NET is >64 GB with all the repos/artifacts
|
||||
"storage": "128gb"
|
||||
|
@ -19,4 +19,4 @@
|
|||
}
|
||||
},
|
||||
"onCreateCommand": ".devcontainer/prebuilt-sdk/init.sh"
|
||||
}
|
||||
}
|
||||
|
|
1
src/SourceBuild/content/.gitignore
vendored
1
src/SourceBuild/content/.gitignore
vendored
|
@ -8,3 +8,4 @@
|
|||
/test/Microsoft.DotNet.SourceBuild.SmokeTests/bin
|
||||
/test/Microsoft.DotNet.SourceBuild.SmokeTests/obj
|
||||
/test/Microsoft.DotNet.SourceBuild.SmokeTests/TestResults
|
||||
*.binlog
|
|
@ -1,3 +1,6 @@
|
|||
{
|
||||
"cfs" : ["CFS0013"]
|
||||
"cfs" : [
|
||||
"CFS0001",
|
||||
"CFS0013"
|
||||
]
|
||||
}
|
||||
|
|
|
@ -1,234 +1,207 @@
|
|||
<Project>
|
||||
|
||||
<PropertyGroup>
|
||||
<ImportNetSdkFromRepoToolset>false</ImportNetSdkFromRepoToolset>
|
||||
<_SuppressSdkImports>true</_SuppressSdkImports>
|
||||
<_SuppressSdkImports Condition="'$(DotNetBuildSourceOnly)' == 'true'">true</_SuppressSdkImports>
|
||||
<Configuration Condition="$(Configuration) == ''">Release</Configuration>
|
||||
<NetCurrent>net9.0</NetCurrent>
|
||||
<DotNetBuildOrchestrator>true</DotNetBuildOrchestrator>
|
||||
</PropertyGroup>
|
||||
|
||||
<Import Condition="'$(SkipArcadeSdkImport)' != 'true'" Project="Sdk.props" Sdk="Microsoft.DotNet.Arcade.Sdk" />
|
||||
<PropertyGroup Label="CalculateTargetOS">
|
||||
<BuildOS>linux</BuildOS>
|
||||
<BuildOS Condition="$([MSBuild]::IsOSPlatform('OSX'))">osx</BuildOS>
|
||||
<BuildOS Condition="$([MSBuild]::IsOSPlatform('FREEBSD'))">freebsd</BuildOS>
|
||||
<BuildOS Condition="$([MSBuild]::IsOSPlatform('NETBSD'))">netbsd</BuildOS>
|
||||
<BuildOS Condition="$([MSBuild]::IsOSPlatform('ILLUMOS'))">illumos</BuildOS>
|
||||
<BuildOS Condition="$([MSBuild]::IsOSPlatform('SOLARIS'))">solaris</BuildOS>
|
||||
<BuildOS Condition="$([MSBuild]::IsOSPlatform('HAIKU'))">haiku</BuildOS>
|
||||
<BuildOS Condition="$([MSBuild]::IsOSPlatform('WINDOWS'))">windows</BuildOS>
|
||||
<HostOS Condition="'$(HostOS)' == ''">$(BuildOS)</HostOS>
|
||||
<TargetOS Condition="'$(TargetOS)' == ''">$(BuildOS)</TargetOS>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup Label="CalculateArch">
|
||||
<BuildArchitecture>$([System.Runtime.InteropServices.RuntimeInformation]::ProcessArchitecture.ToString().ToLowerInvariant)</BuildArchitecture>
|
||||
<HostArchitecture Condition="'$(HostArchitecture)' == ''">$(BuildArchitecture)</HostArchitecture>
|
||||
|
||||
<!-- When building on non-x64 architectures, there may be no cross-compilation available, select a target architecture that is the same as the build. -->
|
||||
<TargetArchitecture Condition="'$(TargetArchitecture)' == '' and '$(BuildArchitecture)' == 'arm'">arm</TargetArchitecture>
|
||||
<TargetArchitecture Condition="'$(TargetArchitecture)' == '' and '$(BuildArchitecture)' == 'armv6'">armv6</TargetArchitecture>
|
||||
<TargetArchitecture Condition="'$(TargetArchitecture)' == '' and '$(BuildArchitecture)' == 'armel'">armel</TargetArchitecture>
|
||||
<TargetArchitecture Condition="'$(TargetArchitecture)' == '' and '$(BuildArchitecture)' == 'arm64'">arm64</TargetArchitecture>
|
||||
<TargetArchitecture Condition="'$(TargetArchitecture)' == '' and '$(BuildArchitecture)' == 'riscv64'">riscv64</TargetArchitecture>
|
||||
<TargetArchitecture Condition="'$(TargetArchitecture)' == '' and '$(BuildArchitecture)' == 'loongarch64'">loongarch64</TargetArchitecture>
|
||||
<TargetArchitecture Condition="'$(TargetArchitecture)' == '' and '$(BuildArchitecture)' == 's390x'">s390x</TargetArchitecture>
|
||||
<TargetArchitecture Condition="'$(TargetArchitecture)' == '' and '$(BuildArchitecture)' == 'ppc64le'">ppc64le</TargetArchitecture>
|
||||
|
||||
<TargetArchitecture Condition="'$(OverrideTargetRid)' != ''">$(OverrideTargetRid.Substring($(OverrideTargetRid.LastIndexOf('-'))).TrimStart('-'))</TargetArchitecture>
|
||||
<TargetArchitecture Condition="'$(TargetArchitecture)' == ''">x64</TargetArchitecture>
|
||||
|
||||
<Platform Condition="'$(Platform)' == '' and '$(InferPlatformFromTargetArchitecture)' == 'true'">$(TargetArchitecture)</Platform>
|
||||
<Platform Condition="'$(Platform)' == ''">AnyCPU</Platform>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup Label="CalculateRID">
|
||||
<!-- Use current machine distro RID if set. Otherwise, fall back to RuntimeInformation.RuntimeIdentifier -->
|
||||
<BuildRid>$(__DistroRid)</BuildRid>
|
||||
<BuildRid Condition="'$(BuildRid)' == ''">$([System.Runtime.InteropServices.RuntimeInformation]::RuntimeIdentifier)</BuildRid>
|
||||
|
||||
<HostRid Condition="'$(HostRid)' == ''">$(BuildRid)</HostRid>
|
||||
<TargetRid Condition="'$(TargetRid)' == ''">$(BuildRid)</TargetRid>
|
||||
|
||||
<PortableRid Condition="'$(__PortableTargetOS)' != ''">$(__PortableTargetOS)-$(TargetArchitecture)</PortableRid>
|
||||
<PortableRid Condition="'$(PortableRid)' == '' and '$(TargetOS)' == 'freebsd'">freebsd-$(TargetArchitecture)</PortableRid>
|
||||
<PortableRid Condition="'$(PortableRid)' == '' and '$(TargetOS)' == 'osx'">osx-$(TargetArchitecture)</PortableRid>
|
||||
<PortableRid Condition="'$(PortableRid)' == '' and '$(TargetOS)' == 'linux'">linux-$(TargetArchitecture)</PortableRid>
|
||||
<PortableRid Condition="$(TargetRid.StartsWith('linux-musl')) or $(TargetRid.StartsWith('alpine'))">linux-musl-$(TargetArchitecture)</PortableRid>
|
||||
<PortableRid Condition="'$(PortableRid)' == '' and '$(TargetOS)' == 'windows'">win-$(TargetArchitecture)</PortableRid>
|
||||
|
||||
<TargetRid Condition="'$(PortableBuild)' == 'true' and '$(PortableRid)' != ''">$(PortableRid)</TargetRid>
|
||||
</PropertyGroup>
|
||||
|
||||
<Import Project="Sdk.props" Sdk="Microsoft.DotNet.Arcade.Sdk" Condition="'$(SkipArcadeSdkImport)' != 'true'" />
|
||||
|
||||
<!-- Init basic Arcade props, if the project importing this file doesn't use Arcade.
|
||||
Keep in sync with props/targets in the Arcade.Sdk. -->
|
||||
<PropertyGroup Condition="'$(_SuppressSdkImports)' == 'true' or '$(SkipArcadeSdkImport)' == 'true'">
|
||||
<!-- RepoLayout.props -->
|
||||
<NuGetPackageRoot Condition="'$(NuGetPackageRoot)' != ''">$([MSBuild]::NormalizeDirectory('$(NuGetPackageRoot)'))</NuGetPackageRoot>
|
||||
<NuGetPackageRoot Condition="'$(NuGetPackageRoot)' == '' and '$(NUGET_PACKAGES)' != ''">$([MSBuild]::NormalizeDirectory('$(NUGET_PACKAGES)'))</NuGetPackageRoot>
|
||||
|
||||
<RepoRoot Condition="'$(RepoRoot)' == ''">$([MSBuild]::NormalizeDirectory('$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildProjectDirectory), 'global.json'))'))</RepoRoot>
|
||||
|
||||
<!-- Respect environment variable for the .NET install directory if set; otherwise, use the repo default location -->
|
||||
<DotNetRoot Condition="'$(DOTNET_INSTALL_DIR)' != ''">$(DOTNET_INSTALL_DIR)</DotNetRoot>
|
||||
<DotNetRoot Condition="'$(DotNetRoot)' != ''">$([MSBuild]::NormalizeDirectory('$(DotNetRoot)'))</DotNetRoot>
|
||||
<DotNetRoot Condition="'$(DotNetRoot)' == ''">$([MSBuild]::NormalizeDirectory('$(RepoRoot)', '.dotnet'))</DotNetRoot>
|
||||
|
||||
<!-- Let the exec task find dotnet on PATH -->
|
||||
<DotNetRoot Condition="!Exists($(DotNetRoot))"/>
|
||||
|
||||
<DotNetTool Condition="'$(OS)' == 'Windows_NT'">$(DotNetRoot)dotnet.exe</DotNetTool>
|
||||
<DotNetTool Condition="'$(OS)' != 'Windows_NT'">$(DotNetRoot)dotnet</DotNetTool>
|
||||
|
||||
<ArtifactsDir Condition="'$(ArtifactsDir)' == ''">$([MSBuild]::NormalizeDirectory('$(RepoRoot)', 'artifacts'))</ArtifactsDir>
|
||||
<ArtifactsObjDir>$([MSBuild]::NormalizeDirectory('$(ArtifactsDir)', 'obj'))</ArtifactsObjDir>
|
||||
<ArtifactsBinDir>$([MSBuild]::NormalizeDirectory('$(ArtifactsDir)', 'bin'))</ArtifactsBinDir>
|
||||
<ArtifactsLogDir>$([MSBuild]::NormalizeDirectory('$(ArtifactsDir)', 'log', '$(Configuration)'))</ArtifactsLogDir>
|
||||
<RepositoryEngineeringDir>$([MSBuild]::NormalizeDirectory('$(RepoRoot)', 'eng'))</RepositoryEngineeringDir>
|
||||
|
||||
<!-- ProjectLayout.props -->
|
||||
<PlatformName Condition="'$(PlatformName)' == ''">$(Platform)</PlatformName>
|
||||
<OutDirName Condition="'$(OutDirName)' == ''">$(MSBuildProjectName)</OutDirName>
|
||||
|
||||
<BaseOutputPath Condition="'$(BaseOutputPath)' == ''">$([System.IO.Path]::GetFullPath('$(ArtifactsBinDir)$(OutDirName)\'))</BaseOutputPath>
|
||||
<OutputPath Condition="'$(PlatformName)' == 'AnyCPU'">$(BaseOutputPath)$(Configuration)\</OutputPath>
|
||||
<OutputPath Condition="'$(PlatformName)' != 'AnyCPU'">$(BaseOutputPath)$(PlatformName)\$(Configuration)\</OutputPath>
|
||||
|
||||
<BaseIntermediateOutputPath Condition="'$(BaseIntermediateOutputPath)' == ''">$([System.IO.Path]::GetFullPath('$(ArtifactsObjDir)$(OutDirName)\'))</BaseIntermediateOutputPath>
|
||||
<IntermediateOutputPath Condition="'$(PlatformName)' == 'AnyCPU'">$(BaseIntermediateOutputPath)$(Configuration)\</IntermediateOutputPath>
|
||||
<IntermediateOutputPath Condition="'$(PlatformName)' != 'AnyCPU'">$(BaseIntermediateOutputPath)$(PlatformName)\$(Configuration)\</IntermediateOutputPath>
|
||||
|
||||
<!-- TargetFrameworkDefaults.props -->
|
||||
<NetCurrent>net9.0</NetCurrent>
|
||||
|
||||
<!-- Set up the build phase since the orchestrator switch is passed.
|
||||
From RepoDefaults.props. -->
|
||||
<DotNetBuild>true</DotNetBuild>
|
||||
<DotNetBuildPhase>Orchestrator</DotNetBuildPhase>
|
||||
</PropertyGroup>
|
||||
|
||||
<!-- Manually import the Versions.props file when the Arcade SDK isn't used. -->
|
||||
<Import Project="$(RepositoryEngineeringDir)Versions.props"
|
||||
Condition="'$(_SuppressSdkImports)' == 'true' or '$(SkipArcadeSdkImport)' == 'true'" />
|
||||
|
||||
<PropertyGroup>
|
||||
<!-- Fake, for SDK. -->
|
||||
<TargetFramework>netstandard2.0</TargetFramework>
|
||||
<!-- We have no projects targeting multiple frameworks, so don't include in output path. -->
|
||||
<AppendTargetFrameworkToOutputPath>false</AppendTargetFrameworkToOutputPath>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup>
|
||||
<Platform Condition="'$(Platform)' == 'AnyCPU'"></Platform>
|
||||
<BuildArchitecture>$([System.Runtime.InteropServices.RuntimeInformation]::ProcessArchitecture.ToString().ToLowerInvariant())</BuildArchitecture>
|
||||
<Platform Condition="'$(Platform)' == '' AND ('$(BuildArchitecture)' == 'arm64' OR '$(BuildArchitecture)' == 'arm')">$(BuildArchitecture)</Platform>
|
||||
<Platform Condition="'$(Platform)' == '' AND '$(BuildArchitecture)' == 's390x'">$(BuildArchitecture)</Platform>
|
||||
<Platform Condition="'$(Platform)' == '' AND '$(BuildArchitecture)' == 'ppc64le'">$(BuildArchitecture)</Platform>
|
||||
<Platform Condition="'$(Platform)' == '' AND '$(BuildArchitecture)' == 'loongarch64'">$(BuildArchitecture)</Platform>
|
||||
<Platform Condition="'$(Platform)' == ''">x64</Platform>
|
||||
|
||||
<UseStableVersions Condition="'$(UseStableVersions)' == ''">false</UseStableVersions>
|
||||
</PropertyGroup>
|
||||
|
||||
<!-- This repo's projects are entirely infrastructure and do not ship. -->
|
||||
<PropertyGroup>
|
||||
<!-- This repo's projects are entirely infrastructure and do not ship. -->
|
||||
<IsShipping>false</IsShipping>
|
||||
<!-- It's not unusual to build with a preview SDK -->
|
||||
<SuppressNETCoreSdkPreviewMessage>true</SuppressNETCoreSdkPreviewMessage>
|
||||
<!-- By default, the VMR builds with online sources when not building source-only. -->
|
||||
<DotNetBuildWithOnlineSources Condition="'$(DotNetBuildWithOnlineSources)' == '' and '$(DotNetBuildSourceOnly)' != 'true'">true</DotNetBuildWithOnlineSources>
|
||||
<!-- By default, skip building tests when building the VMR. -->
|
||||
<DotNetBuildSkipTests Condition="'$(DotNetBuildSkipTests)' == ''">true</DotNetBuildSkipTests>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup>
|
||||
<ProjectDir>$(MSBuildThisFileDirectory)</ProjectDir>
|
||||
<TargetsDir>$(ProjectDir)targets/</TargetsDir>
|
||||
<PrereqsDir>$(ProjectDir)prereqs/</PrereqsDir>
|
||||
<KeysDir>$(PrereqsDir)/keys/</KeysDir>
|
||||
<DotNetCliToolDir Condition="'$(DotNetCliToolDir)' == '' and '$(CustomDotNetSdkDir)' != ''">$([MSBuild]::EnsureTrailingSlash('$(CustomDotNetSdkDir)'))</DotNetCliToolDir>
|
||||
<DotNetCliToolDir Condition="'$(DotNetCliToolDir)' == '' and '$(DOTNET_INSTALL_DIR)' != ''">$([MSBuild]::NormalizeDirectory('$(DOTNET_INSTALL_DIR)'))</DotNetCliToolDir>
|
||||
<DotNetCliToolDir Condition="'$(DotNetCliToolDir)' == ''">$(ProjectDir).dotnet/</DotNetCliToolDir>
|
||||
<DotnetToolCommand>$(DotNetCliToolDir)dotnet</DotnetToolCommand>
|
||||
<PrereqsPackagesDir>$(ProjectDir)prereqs/packages/</PrereqsPackagesDir>
|
||||
<PackagesDir Condition="'$(NuGetPackageRoot)' != ''">$(NuGetPackageRoot)</PackagesDir>
|
||||
<PackagesDir Condition="'$(PackagesDir)' == ''">$(PrereqsPackagesDir)restored/</PackagesDir>
|
||||
<ArcadeBootstrapPackageDir>$(PackagesDir)ArcadeBootstrapPackage/</ArcadeBootstrapPackageDir>
|
||||
<!-- if we're not currently building, Visual Studio will still set this -->
|
||||
<SDK_VERSION Condition="'$(SDK_VERSION)' == ''">$(NETCoreSdkVersion)</SDK_VERSION>
|
||||
<DotNetSdkDir>$(DotNetCliToolDir)sdk/$(SDK_VERSION)/</DotNetSdkDir>
|
||||
<DotNetSdkResolversDir>$(DotNetSdkDir)SdkResolvers/</DotNetSdkResolversDir>
|
||||
<SdkReferenceDir>$(DotNetCliToolDir)sdk/$(SDK_VERSION)/</SdkReferenceDir>
|
||||
</PropertyGroup>
|
||||
<!--
|
||||
'.proj' has no DefaultLanguageSourceExtension, causing **/* to be collected
|
||||
in Compile items! Avoid this by disabling the default items.
|
||||
-->
|
||||
<EnableDefaultItems Condition="'$(MSBuildProjectExtension)' == '.proj'">false</EnableDefaultItems>
|
||||
|
||||
<!--
|
||||
'.proj' has no DefaultLanguageSourceExtension, causing **/* to be collected
|
||||
in Compile items! Avoid this by disabling the default items.
|
||||
-->
|
||||
<PropertyGroup Condition="'$(MSBuildProjectExtension)' == '.proj'">
|
||||
<EnableDefaultItems>false</EnableDefaultItems>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup>
|
||||
<LogVerbosity Condition="'$(LogVerbosity)'==''">minimal</LogVerbosity>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup>
|
||||
<BuildInParallel Condition="'$(BuildInParallel)'==''">false</BuildInParallel>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup>
|
||||
<ShellExtension Condition="'$(OS)' == 'Windows_NT'">.cmd</ShellExtension>
|
||||
<ShellExtension Condition="'$(OS)' != 'Windows_NT'">.sh</ShellExtension>
|
||||
<TarBallExtension Condition="'$(OS)' == 'Windows_NT'">.zip</TarBallExtension>
|
||||
<TarBallExtension Condition="'$(OS)' != 'Windows_NT'">.tar.gz</TarBallExtension>
|
||||
</PropertyGroup>
|
||||
<ShellExtension Condition="'$(BuildOS)' == 'windows'">.cmd</ShellExtension>
|
||||
<ShellExtension Condition="'$(BuildOS)' != 'windows'">.sh</ShellExtension>
|
||||
|
||||
<PropertyGroup>
|
||||
<SubmoduleDirectory Condition="'$(SubmoduleDirectory)' == ''">$(ProjectDir)src/</SubmoduleDirectory>
|
||||
<GitModulesPath>$(ProjectDir).gitmodules</GitModulesPath>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup>
|
||||
<!-- Init basic Arcade props, if the project importing this file doesn't use Arcade. -->
|
||||
<ArtifactsDir Condition="'$(ArtifactsDir)' == ''">$(ProjectDir)artifacts/</ArtifactsDir>
|
||||
<RepositoryEngineeringDir Condition="'$(RepositoryEngineeringDir)' == ''">$(ProjectDir)eng/</RepositoryEngineeringDir>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup>
|
||||
<ArcadeOverridesDir>$(RepositoryEngineeringDir)arcade-overrides/</ArcadeOverridesDir>
|
||||
<BaseOutputPath>$(ArtifactsDir)</BaseOutputPath>
|
||||
<ClonedSubmoduleGitRootDirectory Condition="'$(ClonedSubmoduleGitRootDirectory)' == ''">$(ProjectDir).git/modules/src/</ClonedSubmoduleGitRootDirectory>
|
||||
<SourceBuiltSdksDir>$(ArtifactsDir)source-built-sdks/</SourceBuiltSdksDir>
|
||||
<ToolsDir>$(RepositoryEngineeringDir)/tools/</ToolsDir>
|
||||
<TaskDirectory>$(ToolsDir)tasks/</TaskDirectory>
|
||||
|
||||
<XPlatTasksBinDir>$(TaskDirectory)Microsoft.DotNet.SourceBuild.Tasks.XPlat/bin/$(Configuration)/</XPlatTasksBinDir>
|
||||
<XPlatSourceBuildTasksAssembly>$(XPlatTasksBinDir)Microsoft.DotNet.SourceBuild.Tasks.XPlat.dll</XPlatSourceBuildTasksAssembly>
|
||||
|
||||
<LeakDetectionTasksBinDir>$(TaskDirectory)Microsoft.DotNet.SourceBuild.Tasks.LeakDetection/</LeakDetectionTasksBinDir>
|
||||
<LeakDetectionTasksAssembly>$(LeakDetectionTasksBinDir)Microsoft.DotNet.SourceBuild.Tasks.LeakDetection.dll</LeakDetectionTasksAssembly>
|
||||
|
||||
<BaseIntermediatePath>$(BaseOutputPath)obj/</BaseIntermediatePath>
|
||||
<OutputPath>$(BaseOutputPath)$(Platform)/$(Configuration)/</OutputPath>
|
||||
<IntermediatePath>$(BaseIntermediatePath)$(Platform)/$(Configuration)/</IntermediatePath>
|
||||
<LocalNuGetPackagesRoot>$(IntermediatePath)nuget-packages/</LocalNuGetPackagesRoot>
|
||||
<SourceBuiltBlobFeedDir>$(IntermediatePath)blob-feed/</SourceBuiltBlobFeedDir>
|
||||
<SourceBuiltPackagesPath>$(SourceBuiltBlobFeedDir)packages/</SourceBuiltPackagesPath>
|
||||
<SourceBuiltAssetsDir>$(SourceBuiltBlobFeedDir)assets/</SourceBuiltAssetsDir>
|
||||
<PrebuiltPackagesPath>$(PrereqsPackagesDir)prebuilt/</PrebuiltPackagesPath>
|
||||
<PreviouslyRestoredPackagesPath>$(PrereqsPackagesDir)previouslyRestored/</PreviouslyRestoredPackagesPath>
|
||||
<PrebuiltSourceBuiltPackagesPath>$(PrereqsPackagesDir)previously-source-built/</PrebuiltSourceBuiltPackagesPath>
|
||||
<PrebuiltSourceBuiltPackagesPath Condition="'$(CustomPrebuiltSourceBuiltPackagesPath)' != ''">$(CustomPrebuiltSourceBuiltPackagesPath)/</PrebuiltSourceBuiltPackagesPath>
|
||||
<SourceBuiltTarBallPath>$(OutputPath)</SourceBuiltTarBallPath>
|
||||
<LoggingDir>$(BaseOutputPath)logs/</LoggingDir>
|
||||
<MSBuildDebugPathTargetDir>$(BaseOutputPath)msbuild-debug/</MSBuildDebugPathTargetDir>
|
||||
<RoslynDebugPathTargetDir>$(BaseOutputPath)roslyn-debug/</RoslynDebugPathTargetDir>
|
||||
<AspNetRazorBuildServerLogDir>$(BaseOutputPath)aspnet-debug</AspNetRazorBuildServerLogDir>
|
||||
<AspNetRazorBuildServerLogFile>$(AspNetRazorBuildServerLogDir)razor-build-server.log</AspNetRazorBuildServerLogFile>
|
||||
<GitInfoDir>$(PrereqsDir)git-info/</GitInfoDir>
|
||||
<GitInfoRepoPropsFile>$(GitInfoDir)$(RepositoryName).props</GitInfoRepoPropsFile>
|
||||
<GitInfoAllRepoPropsFile>$(GitInfoDir)AllRepoVersions.props</GitInfoAllRepoPropsFile>
|
||||
<PackageReportDir>$(BaseOutputPath)prebuilt-report/</PackageReportDir>
|
||||
<RepoProjectsDir>$(ProjectDir)/repo-projects/</RepoProjectsDir>
|
||||
<ResultingPrebuiltPackagesDir>$(PackageReportDir)prebuilt-packages/</ResultingPrebuiltPackagesDir>
|
||||
<PackageListsDir>$(PackageReportDir)packagelists/</PackageListsDir>
|
||||
<!-- The prefix needs to match what's defined in Arcade's source-build infra. Consider using a single property, in the future. -->
|
||||
<NonShippingPackagesListPrefix>NonShipping.Packages.</NonShippingPackagesListPrefix>
|
||||
<PackageReportDataFile>$(PackageReportDir)prebuilt-usage.xml</PackageReportDataFile>
|
||||
<PoisonUsageReportFile>$(PackageReportDir)poison-usage.xml</PoisonUsageReportFile>
|
||||
<PoisonReportDataFile>$(PackageReportDir)poison-catalog.xml</PoisonReportDataFile>
|
||||
<PoisonMarkerFile>.prebuilt.xml</PoisonMarkerFile>
|
||||
<SourceBuiltPoisonReportDataFile>$(PackageReportDir)poison-source-built-catalog.xml</SourceBuiltPoisonReportDataFile>
|
||||
<SourceBuiltPoisonMarkerFile>.source-built.xml</SourceBuiltPoisonMarkerFile>
|
||||
<ProjectAssetsJsonArchiveFile>$(PackageReportDir)all-project-assets-json-files.zip</ProjectAssetsJsonArchiveFile>
|
||||
<ProdConManifestFile>$(PackageReportDir)prodcon-build.xml</ProdConManifestFile>
|
||||
<PoisonedReportFile>$(PackageReportDir)poisoned.txt</PoisonedReportFile>
|
||||
<ConflictingPackageReportDir>$(BaseOutputPath)conflict-report/</ConflictingPackageReportDir>
|
||||
<PrebuiltBurndownDataFile>$(PackageReportDir)PrebuiltBurndownData.csv</PrebuiltBurndownDataFile>
|
||||
<ExternalTarballsDir>$(PrereqsPackagesDir)archive/</ExternalTarballsDir>
|
||||
<ReferencePackagesDir>$(PrereqsPackagesDir)reference/</ReferencePackagesDir>
|
||||
<SourceBuiltArtifactsTarballName>Private.SourceBuilt.Artifacts</SourceBuiltArtifactsTarballName>
|
||||
<SourceBuiltPrebuiltsTarballName>Private.SourceBuilt.Prebuilts</SourceBuiltPrebuiltsTarballName>
|
||||
<SourceBuiltArtifactsTarballUrl>https://dotnetcli.azureedge.net/source-built-artifacts/assets/</SourceBuiltArtifactsTarballUrl>
|
||||
<ArchiveArtifactsTextFileName>archiveArtifacts.txt</ArchiveArtifactsTextFileName>
|
||||
<ArchiveArtifactsTextFile>$(ExternalTarballsDir)$(ArchiveArtifactsTextFileName)</ArchiveArtifactsTextFile>
|
||||
<BaselineDataFile>$(ToolsDir)prebuilt-baseline.xml</BaselineDataFile>
|
||||
<!--Exclude tests that are failing for test enabled projects like - corefx -->
|
||||
<TestExclusionsDir>$(ProjectDir)test/exclusions/</TestExclusionsDir>
|
||||
<SmokeTestsDir>$(ProjectDir)test/Microsoft.DotNet.SourceBuild.SmokeTests/</SmokeTestsDir>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup>
|
||||
<ArmEnvironmentVariables Condition="'$(ArmEnvironmentVariables)' == ''">ROOTFS_DIR=$(BaseIntermediatePath)crossrootfs/arm</ArmEnvironmentVariables>
|
||||
<ArmEnvironmentVariables Condition="'$(Platform)' == 'armel'">ROOTFS_DIR=$(BaseIntermediatePath)crossrootfs/armel</ArmEnvironmentVariables>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup>
|
||||
<!-- Use current machine distro RID if set. Otherwise, fall back to RuntimeInformation.RuntimeIdentifier -->
|
||||
<TargetRid Condition="'$(TargetRid)' == ''">$(__DistroRid)</TargetRid>
|
||||
<TargetRid Condition="'$(TargetRid)' == ''">$([System.Runtime.InteropServices.RuntimeInformation]::RuntimeIdentifier)</TargetRid>
|
||||
|
||||
<TargetOS Condition="'$(TargetOS)' == '' AND $([MSBuild]::IsOSPlatform('WINDOWS'))">Windows_NT</TargetOS>
|
||||
<TargetOS Condition="'$(TargetOS)' == '' AND $([MSBuild]::IsOSPlatform('OSX'))">OSX</TargetOS>
|
||||
<TargetOS Condition="'$(TargetOS)' == '' AND $([MSBuild]::IsOSPlatform('LINUX'))">Linux</TargetOS>
|
||||
<TargetOS Condition="'$(TargetOS)' == '' AND $([MSBuild]::IsOSPlatform('FREEBSD'))">FreeBSD</TargetOS>
|
||||
|
||||
<PortableRid Condition="'$(__PortableTargetOS)' != ''">$(__PortableTargetOS)-$(Platform)</PortableRid>
|
||||
<PortableRid Condition="'$(PortableRid)' == '' AND '$(TargetOS)' == 'FreeBSD'">freebsd-$(Platform)</PortableRid>
|
||||
<PortableRid Condition="'$(PortableRid)' == '' AND '$(TargetOS)' == 'OSX'">osx-$(Platform)</PortableRid>
|
||||
<PortableRid Condition="'$(PortableRid)' == '' AND '$(TargetOS)' == 'Linux'">linux-$(Platform)</PortableRid>
|
||||
<PortableRid Condition="'$(PortableRid)' == '' AND '$(TargetOS)' == 'Windows_NT'">win-$(Platform)</PortableRid>
|
||||
<TargetRid Condition="'$(PortableBuild)' == 'true' AND '$(PortableRid)' != ''">$(PortableRid)</TargetRid>
|
||||
<!-- While the tarball infrastructure currently only supports non Windows, these properties
|
||||
are already defined for more flexibility in the future. -->
|
||||
<ArchiveExtension Condition="'$(BuildOS)' == 'windows'">.zip</ArchiveExtension>
|
||||
<ArchiveExtension Condition="'$(BuildOS)' != 'windows'">.tar.gz</ArchiveExtension>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup>
|
||||
<RootRepo>dotnet</RootRepo>
|
||||
|
||||
<SrcDir>$([MSBuild]::NormalizeDirectory('$(RepoRoot)', 'src'))</SrcDir>
|
||||
<ToolsDir>$([MSBuild]::NormalizeDirectory('$(RepositoryEngineeringDir)', 'tools'))</ToolsDir>
|
||||
<TasksDir>$([MSBuild]::NormalizeDirectory('$(ToolsDir)', 'tasks'))</TasksDir>
|
||||
<RepoProjectsDir>$([MSBuild]::NormalizeDirectory('$(RepoRoot)', 'repo-projects'))</RepoProjectsDir>
|
||||
|
||||
<PrereqsDir>$([MSBuild]::NormalizeDirectory('$(RepoRoot)', 'prereqs'))</PrereqsDir>
|
||||
<KeysDir>$([MSBuild]::NormalizeDirectory('$(PrereqsDir)', 'keys'))</KeysDir>
|
||||
<PrereqsPackagesDir>$([MSBuild]::NormalizeDirectory('$(PrereqsDir)', 'packages'))</PrereqsPackagesDir>
|
||||
|
||||
<!-- When SB mode, the initial arcade is unzipped to a the "ArcadeBootStrap" dir.
|
||||
When running in VBPOC, the bootstrap package is the arcade restored at the beginning of the build. -->
|
||||
<ArcadeBootstrapPackageDir Condition="'$(DotNetBuildSourceOnly)' == 'true'">$([MSBuild]::NormalizeDirectory('$(NuGetPackageRoot)', 'ArcadeBootstrapPackage'))</ArcadeBootstrapPackageDir>
|
||||
<ArcadeBootstrapPackageDir Condition="'$(DotNetBuildSourceOnly)' != 'true'">$(NuGetPackageRoot)</ArcadeBootstrapPackageDir>
|
||||
|
||||
<!-- Shared output and intermediate output path folders that are architecture and configuration specific. -->
|
||||
<SharedOutputPath>$([MSBuild]::NormalizeDirectory('$(ArtifactsDir)', '$(TargetArchitecture)', '$(Configuration)'))</SharedOutputPath>
|
||||
<SharedIntermediateOutputPath>$([MSBuild]::NormalizeDirectory('$(ArtifactsObjDir)', '$(TargetArchitecture)', '$(Configuration)'))</SharedIntermediateOutputPath>
|
||||
|
||||
<SourceBuiltBlobFeedDir>$([MSBuild]::NormalizeDirectory('$(SharedIntermediateOutputPath)', 'blob-feed'))</SourceBuiltBlobFeedDir>
|
||||
<SourceBuiltPackagesPath>$([MSBuild]::NormalizeDirectory('$(SourceBuiltBlobFeedDir)', 'packages'))</SourceBuiltPackagesPath>
|
||||
<SourceBuiltAssetsDir>$([MSBuild]::NormalizeDirectory('$(SourceBuiltBlobFeedDir)', 'assets'))</SourceBuiltAssetsDir>
|
||||
|
||||
<PrebuiltPackagesPath>$([MSBuild]::NormalizeDirectory('$(PrereqsPackagesDir)', 'prebuilt'))</PrebuiltPackagesPath>
|
||||
<PreviouslyRestoredPackagesPath>$([MSBuild]::NormalizeDirectory('$(PrereqsPackagesDir)', 'previouslyRestored'))</PreviouslyRestoredPackagesPath>
|
||||
<PrebuiltSourceBuiltPackagesPath>$([MSBuild]::NormalizeDirectory('$(PrereqsPackagesDir)', 'previously-source-built'))</PrebuiltSourceBuiltPackagesPath>
|
||||
<PrebuiltSourceBuiltPackagesPath Condition="'$(CustomPrebuiltSourceBuiltPackagesPath)' != ''">$([MSBuild]::EnsureTrailingSlash('$(CustomPrebuiltSourceBuiltPackagesPath)'))</PrebuiltSourceBuiltPackagesPath>
|
||||
|
||||
<GitInfoDir>$([MSBuild]::NormalizeDirectory('$(PrereqsDir)', 'git-info'))</GitInfoDir>
|
||||
<GitInfoAllRepoPropsFile>$(GitInfoDir)AllRepoVersions.props</GitInfoAllRepoPropsFile>
|
||||
|
||||
<PackageReportDir>$([MSBuild]::NormalizeDirectory('$(ArtifactsDir)', 'prebuilt-report'))</PackageReportDir>
|
||||
<ResultingPrebuiltPackagesDir>$([MSBuild]::NormalizeDirectory('$(PackageReportDir)', 'prebuilt-packages'))</ResultingPrebuiltPackagesDir>
|
||||
<PackageListsDir>$([MSBuild]::NormalizeDirectory('$(PackageReportDir)', 'packagelists'))</PackageListsDir>
|
||||
|
||||
<!-- The prefix needs to match what's defined in Arcade's source-build infra. Consider using a single property, in the future. -->
|
||||
<NonShippingPackagesListPrefix>NonShipping.Packages.</NonShippingPackagesListPrefix>
|
||||
|
||||
<ReferencePackagesDir>$([MSBuild]::NormalizeDirectory('$(PrereqsPackagesDir)', 'reference'))</ReferencePackagesDir>
|
||||
<SourceBuiltArtifactsTarballName>Private.SourceBuilt.Artifacts</SourceBuiltArtifactsTarballName>
|
||||
<SourceBuiltPrebuiltsTarballName>Private.SourceBuilt.Prebuilts</SourceBuiltPrebuiltsTarballName>
|
||||
|
||||
<BaselineDataFile>$(ToolsDir)prebuilt-baseline.xml</BaselineDataFile>
|
||||
</PropertyGroup>
|
||||
|
||||
<!--
|
||||
Semaphore path for incremental builds
|
||||
-->
|
||||
<!-- Build task assembly paths -->
|
||||
<PropertyGroup>
|
||||
<CompletedSemaphorePath>$(BaseIntermediatePath)semaphores/</CompletedSemaphorePath>
|
||||
<XPlatSourceBuildTasksAssembly>$([MSBuild]::NormalizePath('$(ArtifactsBinDir)', 'Microsoft.DotNet.SourceBuild.Tasks.XPlat', '$(Configuration)', 'Microsoft.DotNet.SourceBuild.Tasks.XPlat.dll'))</XPlatSourceBuildTasksAssembly>
|
||||
<LeakDetectionTasksAssembly>$([MSBuild]::NormalizePath('$(ArtifactsBinDir)', 'Microsoft.DotNet.SourceBuild.Tasks.LeakDetection', '$(Configuration)', 'Microsoft.DotNet.SourceBuild.Tasks.LeakDetection.dll'))</LeakDetectionTasksAssembly>
|
||||
</PropertyGroup>
|
||||
|
||||
<!-- CLI internal version is statically set by us to a version that will never show up in the wild.
|
||||
This ensures we will never restore a public version instead of our source-built version. We
|
||||
invlude the version number because it is used both by CLI.proj and the core-sdk build and they
|
||||
have to be synced up. ExtraPackageVersionPropsPackageInfo doesn't work in cli.proj because
|
||||
toolset is between CLI and core-sdk, and the extra package version info is lost. -->
|
||||
<PropertyGroup>
|
||||
<CliInternalReleaseTag>source</CliInternalReleaseTag>
|
||||
<CliInternalBuildVersion>30000001-1</CliInternalBuildVersion>
|
||||
<PropertyGroup Condition="'$(EnablePoison)' == 'true'">
|
||||
<PoisonMarkerFile>.prebuilt.xml</PoisonMarkerFile>
|
||||
<PoisonReportDataFile>$(PackageReportDir)poison-catalog.xml</PoisonReportDataFile>
|
||||
<PoisonedReportFile>$(PackageReportDir)poisoned.txt</PoisonedReportFile>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<ExtraPackageVersionPropsPackageInfo Include="DotnetCliInternalVersion" Version="3.0.100-$(CliInternalReleaseTag)-$(CliInternalBuildVersion)" />
|
||||
</ItemGroup>
|
||||
|
||||
<Import Project="$(GitInfoAllRepoPropsFile)" />
|
||||
|
||||
<!-- Additional pseudo-versions that some repos depend on -->
|
||||
<ItemGroup>
|
||||
<!-- we don't produce the Windows version of this package but that's the one core-sdk keys off of for the ASP.NET version -->
|
||||
<ExtraPackageVersionPropsPackageInfo Include="MicrosoftAspNetCoreAppRuntimewinx64PackageVersion" Version="$(aspnetcoreOutputPackageVersion)" />
|
||||
<!-- same thing here for CLI -->
|
||||
<ExtraPackageVersionPropsPackageInfo Include="MicrosoftNETCoreAppRuntimewinx64Version" Version="%24(MicrosoftNETCoreAppRefPackageVersion)" />
|
||||
<!-- same thing here for toolset -->
|
||||
<ExtraPackageVersionPropsPackageInfo Include="MicrosoftNETCoreAppRuntimewinx64PackageVersion" Version="%24(MicrosoftNETCoreAppRefPackageVersion)" />
|
||||
<!-- same thing here for core-sdk -->
|
||||
<ExtraPackageVersionPropsPackageInfo Include="MicrosoftNETCoreAppRuntimePackageVersion" Version="%24(MicrosoftNETCoreAppRefPackageVersion)" />
|
||||
<ExtraPackageVersionPropsPackageInfo Include="MicrosoftNETCoreAppRuntimeVersion" Version="%24(MicrosoftNETCoreAppRefPackageVersion)" />
|
||||
<ExtraPackageVersionPropsPackageInfo Include="MicrosoftNETCoreAppHostPackageVersion" Version="%24(MicrosoftNETCoreAppRefPackageVersion)" />
|
||||
<!-- core-sdk uses this property for ASP.NET blob directory -->
|
||||
<ExtraPackageVersionPropsPackageInfo Include="VSRedistCommonAspNetCoreTargetingPackx6430PackageVersion" Version="$(aspnetcoreOutputPackageVersion)" />
|
||||
|
||||
<!-- Used by installer to determine sdk version -->
|
||||
<ExtraPackageVersionPropsPackageInfo Include="MicrosoftDotnetToolsetInternalPackageVersion" Version="%24(MicrosoftNETSdkPackageVersion)" />
|
||||
|
||||
<!-- Used by sdk to determine msbuild version for fsharp -->
|
||||
<ExtraPackageVersionPropsPackageInfo Include="FSharpBuildVersion" Version="%24(MicrosoftBuildPackageVersion)" />
|
||||
|
||||
<!-- property used by Arcade to determine what version of SourceLink to use -->
|
||||
<!-- if MicrosoftSourceLinkCommonPackageVersion is non-empty, then we've already built SourceLink, regardless of whether
|
||||
this is the production or offline build, so we should use that version. -->
|
||||
<ExtraPackageVersionPropsPackageInfo Include="MicrosoftSourceLinkVersion" Version="%24(MicrosoftSourceLinkCommonPackageVersion)" />
|
||||
|
||||
<!-- non-rid-specific versions of RID-specific version variables to use for bootstrapping -->
|
||||
<ExtraPackageVersionPropsPackageInfo Include="MicrosoftAspNetCoreAppRuntimeVersion" Version="%24(MicrosoftAspNetCoreAppRefPackageVersion)" />
|
||||
<ExtraPackageVersionPropsPackageInfo Include="MicrosoftNETCoreAppCrossgen2Version" Version="%24(MicrosoftNETCoreAppRefPackageVersion)" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
|
|
1
src/SourceBuild/content/Directory.Build.rsp
Normal file
1
src/SourceBuild/content/Directory.Build.rsp
Normal file
|
@ -0,0 +1 @@
|
|||
-tl:false
|
|
@ -1,28 +1,26 @@
|
|||
<Project>
|
||||
|
||||
<Target Name="RemoveUninteresingToolingPackageReferences"
|
||||
BeforeTargets="CollectPackageReferences">
|
||||
<!-- The source-build infra doesn't need sourcelink. Avoid this prebuilt. -->
|
||||
<ItemGroup>
|
||||
<PackageReference Remove="Microsoft.SourceLink.GitHub" />
|
||||
<PackageReference Remove="Microsoft.SourceLink.Vsts.Git" />
|
||||
<PackageReference Remove="Microsoft.SourceLink.AzureRepos.Git" />
|
||||
</ItemGroup>
|
||||
</Target>
|
||||
<Import Project="Sdk.targets" Sdk="Microsoft.DotNet.Arcade.Sdk" Condition="'$(SkipArcadeSdkImport)' != 'true'" />
|
||||
|
||||
<Target Name="DetermineMicrosoftSourceBuildIntermediateInstallerVersion">
|
||||
<!-- Manually load the installer version from the PVP. -->
|
||||
<XmlPeek XmlInputPath="$(IntermediatePath)PackageVersions.package-source-build.Current.props"
|
||||
Query="msb:Project/msb:PropertyGroup/msb:MicrosoftSourceBuildIntermediateInstallerVersion/text()"
|
||||
Namespaces="<Namespace Prefix='msb' Uri='http://schemas.microsoft.com/developer/msbuild/2003'/>">
|
||||
<Output TaskParameter="Result" ItemName="MicrosoftSourceBuildIntermediateInstallerVersionItem" />
|
||||
</XmlPeek>
|
||||
<Target Name="DetermineSourceBuiltSdkVersion">
|
||||
<PropertyGroup>
|
||||
<MicrosoftSourceBuildIntermediateInstallerVersion>@(MicrosoftSourceBuildIntermediateInstallerVersionItem)</MicrosoftSourceBuildIntermediateInstallerVersion>
|
||||
<MicrosoftSourceBuildIntermediateInstallerVersion Condition="'$(MicrosoftSourceBuildIntermediateInstallerVersion)' == ''">$(installerOutputPackageVersion)</MicrosoftSourceBuildIntermediateInstallerVersion>
|
||||
<SdkFilenamePrefix>dotnet-sdk-</SdkFilenamePrefix>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<SdkTarballItem Include="$(SourceBuiltAssetsDir)$(SdkFilenamePrefix)*$(ArchiveExtension)" />
|
||||
</ItemGroup>
|
||||
|
||||
<!--
|
||||
Extract SDK version from SDK tarball filename.
|
||||
|
||||
Example:
|
||||
dotnet-sdk-9.0.100-alpha.1.24057.1-fedora.38-x64.tar.gz
|
||||
dotnet-sdk-<SdkVersion>-<TargetRid><ArchiveExtension>
|
||||
-->
|
||||
<PropertyGroup>
|
||||
<SdkFilename>%(SdkTarballItem.Filename)%(SdkTarballItem.Extension)</SdkFilename>
|
||||
<SourceBuiltSdkVersion>$(SdkFilename.Replace('$(SdkFilenamePrefix)','').Replace('-$(TargetRid)$(ArchiveExtension)',''))</SourceBuiltSdkVersion>
|
||||
</PropertyGroup>
|
||||
</Target>
|
||||
|
||||
<Import Condition="'$(SkipArcadeSdkImport)' != 'true'" Project="Sdk.targets" Sdk="Microsoft.DotNet.Arcade.Sdk" />
|
||||
|
||||
</Project>
|
||||
|
|
|
@ -8,8 +8,9 @@
|
|||
<packageSources>
|
||||
<clear />
|
||||
<add key="dotnet-public" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public/nuget/v3/index.json" />
|
||||
<add key="dotnet-eng" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-eng/nuget/v3/index.json" />
|
||||
</packageSources>
|
||||
<disabledPackageSources>
|
||||
<clear />
|
||||
</disabledPackageSources>
|
||||
</configuration>
|
||||
</configuration>
|
||||
|
|
|
@ -12,7 +12,7 @@ In the VMR, you can find:
|
|||
- small customizations, in the form of [patches](https://github.com/dotnet/dotnet/tree/main/src/installer/src/SourceBuild/patches), applied on top of the original code to make the build possible,
|
||||
- *[in future]* E2E tests for the whole .NET product.
|
||||
|
||||
Just like the development repositories, the VMR will have a release branch for every feature band (e.g. `release/8.0.1xx-preview1`).
|
||||
Just like the development repositories, the VMR will have a release branch for every feature band (e.g. `release/8.0.1xx`).
|
||||
Similarly, VMR's `main` branch will follow `main` branches of product repositories (see [Synchronization Based on Declared Dependencies](src/arcade/Documentation/UnifiedBuild/VMR-Design-And-Operation.md#synchronization-based-on-declared-dependencies)).
|
||||
|
||||
More in-depth documentation about the VMR can be found in [VMR Design And Operation](src/arcade/Documentation/UnifiedBuild/VMR-Design-And-Operation.md#layout).
|
||||
|
@ -150,21 +150,11 @@ Alternatively, you can also provide a manifest file where this information can b
|
|||
|
||||
Sometimes you want to make a change in a repository and test that change in the VMR. You could of course make the change in the VMR directly (locally, as the VMR is read-only for now) but in case it's already available in your repository, you can synchronize it into the VMR (again locally).
|
||||
|
||||
To do this, you can start a [dotnet/dotnet](https://github.com/dotnet/dotnet) Codespace. You will see instructions right when the Codespace starts. Alternatively, you can clone the repository locally and use the `[eng/vmr-sync.sh](../../eng/vmr-sync.sh)` script to do that. Please refer to the documentation in the script for more details.
|
||||
To do this, you can either start a [dotnet/dotnet](https://github.com/dotnet/dotnet) Codespace - you will see instructions right after it starts. Alternatively, you can clone the repository locally and use the [eng/vmr-sync.sh](../../eng/vmr-sync.sh) script to pull your changes in. Please refer to the documentation in the script for more details.
|
||||
|
||||
## List of components
|
||||
|
||||
To enable full offline source-building of the VMR, we have no other choice than to synchronize all the necessary code into the VMR. This also includes any code referenced via git submodules. More details on why and how this is done can be found here:
|
||||
- [Strategy for managing external source dependencies](src/arcade/Documentation/UnifiedBuild/VMR-Strategy-For-External-Source.md)
|
||||
- [Source Synchronization Process](src/arcade/Documentation/UnifiedBuild/VMR-Design-And-Operation.md#source-synchronization-process)
|
||||
|
||||
### Detailed list
|
||||
|
||||
<!-- component list beginning -->
|
||||
|
||||
> Auto-generated list of components will go here
|
||||
|
||||
<!-- component list end -->
|
||||
The full list of components synchronized into the VMR is [here (Components.md)](./Components.md).
|
||||
|
||||
The repository also contains a [JSON manifest](https://github.com/dotnet/dotnet/blob/main/src/source-manifest.json) listing all components in a machine-readable format.
|
||||
|
9
src/SourceBuild/content/build.cmd
Normal file
9
src/SourceBuild/content/build.cmd
Normal file
|
@ -0,0 +1,9 @@
|
|||
@echo off
|
||||
setlocal
|
||||
|
||||
set _args=%*
|
||||
if "%~1"=="-?" set _args=-help
|
||||
if "%~1"=="/?" set _args=-help
|
||||
|
||||
powershell -ExecutionPolicy ByPass -NoProfile -Command "& '%~dp0eng\build.ps1'" %_args%
|
||||
exit /b %ERRORLEVEL%
|
|
@ -1,282 +1,24 @@
|
|||
<Project>
|
||||
<Import Project="Sdk.props" Sdk="Microsoft.NET.Sdk" />
|
||||
|
||||
<UsingTask AssemblyFile="$(LeakDetectionTasksAssembly)" TaskName="CheckForPoison" />
|
||||
<UsingTask AssemblyFile="$(XPlatSourceBuildTasksAssembly)" TaskName="WriteUsageBurndownData" />
|
||||
<UsingTask AssemblyFile="$(XPlatSourceBuildTasksAssembly)" TaskName="ReplaceTextInFile" />
|
||||
<UsingTask AssemblyFile="$(XPlatSourceBuildTasksAssembly)" TaskName="CreateSdkSymbolsLayout" />
|
||||
<PropertyGroup>
|
||||
<!-- Fake, to satisfy the SDK. -->
|
||||
<TargetFramework>netstandard2.0</TargetFramework>
|
||||
<DisableImplicitFrameworkReferences>true</DisableImplicitFrameworkReferences>
|
||||
</PropertyGroup>
|
||||
|
||||
<Import Project="Sdk.targets" Sdk="Microsoft.NET.Sdk" />
|
||||
|
||||
<PropertyGroup>
|
||||
<SkipErrorOnPrebuilts>true</SkipErrorOnPrebuilts>
|
||||
</PropertyGroup>
|
||||
<Target Name="Build">
|
||||
<Message Text="Build Environment: $(TargetArchitecture) $(Configuration) $(TargetOS) $(TargetRid)" Importance="high" />
|
||||
|
||||
<Target Name="Build" DependsOnTargets="PrepareOutput;InitBuild">
|
||||
<Message Text="Build Environment: $(Platform) $(Configuration) $(TargetOS) $(TargetRid)" />
|
||||
|
||||
<MSBuild Projects="$(RepoProjectsDir)$(RootRepo).proj" Targets="Build" BuildInParallel="$(BuildInParallel)" StopOnFirstFailure="true" />
|
||||
<MSBuild Projects="$(ToolsDir)init-build.proj;
|
||||
$(RepoProjectsDir)$(RootRepo).proj"
|
||||
Targets="Build"
|
||||
BuildInParallel="false"
|
||||
StopOnFirstFailure="true" />
|
||||
</Target>
|
||||
|
||||
<Target Name="PrepareOutput">
|
||||
<MakeDir Directories="$(OutputPath)" />
|
||||
<MakeDir Directories="$(LoggingDir)" />
|
||||
<MakeDir Directories="$(IntermediatePath)" />
|
||||
<MakeDir Directories="$(SourceBuiltBlobFeedDir)" />
|
||||
<MakeDir Directories="$(SourceBuiltPackagesPath)" />
|
||||
<MakeDir Directories="$(SourceBuiltAssetsDir)" />
|
||||
<MakeDir Directories="$(MSBuildDebugPathTargetDir)" />
|
||||
<MakeDir Directories="$(RoslynDebugPathTargetDir)" />
|
||||
<MakeDir Directories="$(AspNetRazorBuildServerLogDir)" />
|
||||
</Target>
|
||||
<Import Project="$(RepositoryEngineeringDir)build.sourcebuild.targets" Condition="'$(DotNetBuildSourceOnly)' == 'true'" />
|
||||
|
||||
<Target Name="InitBuild">
|
||||
<MSBuild Projects="$(ToolsDir)init-build.proj" />
|
||||
</Target>
|
||||
|
||||
<Target Name="Clean">
|
||||
<RemoveDir Directories="$(BaseOutputPath)" />
|
||||
</Target>
|
||||
|
||||
<!-- Copies the output assets of the builds to the output path. -->
|
||||
<Target Name="CopyBinariesToBinFolder"
|
||||
AfterTargets="Build"
|
||||
Inputs="$(MSBuildProjectFullPath)"
|
||||
Outputs="$(CompletedSemaphorePath)CopyBinariesToBinFolder.complete">
|
||||
<ItemGroup>
|
||||
<BinariesToCopy Include="$(SourceBuiltAssetsDir)*.*" Exclude="$(SourceBuiltAssetsDir)*.nupkg;$(SourceBuiltAssetsDir)*.requires_nupkg_signing" />
|
||||
</ItemGroup>
|
||||
|
||||
<Copy SourceFiles="@(BinariesToCopy)"
|
||||
DestinationFolder="$(OutputPath)"
|
||||
Condition="'@(BinariesToCopy)'!=''" />
|
||||
|
||||
<WriteLinesToFile File="$(CompletedSemaphorePath)CopyBinariesToBinFolder.complete" Overwrite="true" />
|
||||
</Target>
|
||||
|
||||
<!-- After building, generate a prebuilt usage report. -->
|
||||
<Target Name="ReportPrebuiltUsage"
|
||||
AfterTargets="Build"
|
||||
Condition="'$(SkipReportPrebuiltUsage)' != 'true'">
|
||||
<MSBuild Projects="$(RepoProjectsDir)$(RootRepo).proj" Targets="WritePrebuiltUsageData;ReportPrebuiltUsage" />
|
||||
</Target>
|
||||
|
||||
<Target Name="DiscoverSymbolsTarballs"
|
||||
AfterTargets="Build">
|
||||
<ItemGroup>
|
||||
<SymbolsTarball Include="$(OutputPath)Symbols.*.tar.gz" />
|
||||
</ItemGroup>
|
||||
</Target>
|
||||
|
||||
<Target Name="ExtractSymbolsTarballs"
|
||||
AfterTargets="Build"
|
||||
DependsOnTargets="DiscoverSymbolsTarballs"
|
||||
Outputs="%(SymbolsTarball.Identity)">
|
||||
|
||||
<PropertyGroup>
|
||||
<Filename>$([System.IO.Path]::GetFileName('%(SymbolsTarball.Identity)'))</Filename>
|
||||
<RepositoryName>$(Filename.Split('.')[1])</RepositoryName>
|
||||
<UnifiedSymbolsLayout>$(ArtifactsTmpDir)Symbols</UnifiedSymbolsLayout>
|
||||
<DestinationFolder>$(UnifiedSymbolsLayout)/$(RepositoryName)</DestinationFolder>
|
||||
</PropertyGroup>
|
||||
|
||||
<MakeDir Directories="$(DestinationFolder)" />
|
||||
<Exec Command="tar -xzf %(SymbolsTarball.Identity) -C $(DestinationFolder)"
|
||||
WorkingDirectory="$(SymbolsRoot)" />
|
||||
|
||||
<Delete Files="%(SymbolsTarball.Identity)" />
|
||||
</Target>
|
||||
|
||||
<!-- After building, repackage symbols into a single tarball. -->
|
||||
<Target Name="RepackageSymbols"
|
||||
AfterTargets="Build"
|
||||
DependsOnTargets="
|
||||
DetermineMicrosoftSourceBuildIntermediateInstallerVersion;
|
||||
DiscoverSymbolsTarballs;
|
||||
ExtractSymbolsTarballs">
|
||||
<PropertyGroup>
|
||||
<UnifiedSymbolsTarball>$(OutputPath)dotnet-symbols-all-$(MicrosoftSourceBuildIntermediateInstallerVersion)-$(TargetRid).tar.gz</UnifiedSymbolsTarball>
|
||||
</PropertyGroup>
|
||||
|
||||
<Exec Command="tar --numeric-owner -czf $(UnifiedSymbolsTarball) *"
|
||||
WorkingDirectory="$(UnifiedSymbolsLayout)" />
|
||||
|
||||
<Message Importance="High" Text="Packaged all symbols in '$(UnifiedSymbolsTarball)'" />
|
||||
</Target>
|
||||
|
||||
<!-- After building, create the sdk symbols tarball. -->
|
||||
<Target Name="CreateSdkSymbolsTarball"
|
||||
AfterTargets="Build"
|
||||
DependsOnTargets="RepackageSymbols">
|
||||
<ItemGroup>
|
||||
<SdkTarballItem Include="$(OutputPath)dotnet-sdk-*$(TarBallExtension)" />
|
||||
</ItemGroup>
|
||||
|
||||
<PropertyGroup>
|
||||
<SdkSymbolsLayout>$(ArtifactsTmpDir)SdkSymbols</SdkSymbolsLayout>
|
||||
<SdkSymbolsTarball>$(OutputPath)dotnet-symbols-sdk-$(MicrosoftSourceBuildIntermediateInstallerVersion)-$(TargetRid).tar.gz</SdkSymbolsTarball>
|
||||
<SdkLayout>$(ArtifactsTmpDir)Sdk</SdkLayout>
|
||||
<SdkTarball>%(SdkTarballItem.Identity)</SdkTarball>
|
||||
</PropertyGroup>
|
||||
|
||||
<MakeDir Directories="$(SdkLayout)" />
|
||||
<Exec Command="tar -xzf $(SdkTarball) -C $(SdkLayout)"
|
||||
WorkingDirectory="$(OutputPath)" />
|
||||
|
||||
<CreateSdkSymbolsLayout SdkLayoutPath="$(SdkLayout)"
|
||||
AllSymbolsPath="$(UnifiedSymbolsLayout)"
|
||||
SdkSymbolsLayoutPath="$(SdkSymbolsLayout)"
|
||||
FailOnMissingPDBs="false" />
|
||||
|
||||
<Exec Command="tar --numeric-owner -czf $(SdkSymbolsTarball) *"
|
||||
WorkingDirectory="$(SdkSymbolsLayout)" />
|
||||
|
||||
<Message Importance="High" Text="Packaged sdk symbols in '$(SdkSymbolsTarball)'" />
|
||||
|
||||
<RemoveDir Directories="$(UnifiedSymbolsLayout)" />
|
||||
<RemoveDir Directories="$(SdkSymbolsLayout)" />
|
||||
<RemoveDir Directories="$(SdkLayout)" />
|
||||
</Target>
|
||||
|
||||
<!--
|
||||
Dev scenario: rewrite a prebuilt-report. This makes it easy to add data to an existing
|
||||
prebuilt report without performing another full build. This doesn't reevalutate which packages
|
||||
are prebuilts or search the projects: it uses the existing usage.xml file to generate report
|
||||
XMLs based on the info put in artifacts/.
|
||||
-->
|
||||
<Target Name="RewritePrebuiltUsageReport">
|
||||
<MSBuild Projects="$(RepoProjectsDir)$(RootRepo).proj" Targets="ReportPrebuiltUsage" />
|
||||
</Target>
|
||||
|
||||
<Target Name="ReportPoisonUsage"
|
||||
AfterTargets="Build"
|
||||
Condition="'$(EnablePoison)' == 'true'"
|
||||
Inputs="$(MSBuildProjectFullPath)"
|
||||
Outputs="$(CompletedSemaphorePath)ReportPoisonUsage.complete" >
|
||||
<ItemGroup>
|
||||
<FinalCliTarball Include="$(SourceBuiltTarBallPath)**/*$(TarBallExtension)" />
|
||||
</ItemGroup>
|
||||
|
||||
<Message Importance="High" Text="[$([System.DateTime]::Now.ToString('HH:mm:ss.ff'))] Checking @(FinalCliTarball) for poisoned files." />
|
||||
|
||||
<ItemGroup>
|
||||
<NonShippingPackagesList Include="$(PackageListsDir)**/$(NonShippingPackagesListPrefix)*" />
|
||||
</ItemGroup>
|
||||
|
||||
<CheckForPoison FilesToCheck="@(FinalCliTarball)"
|
||||
ProjectDirPath="$(ProjectDir)"
|
||||
HashCatalogFilePath="$(PoisonReportDataFile)"
|
||||
MarkerFileName="$(PoisonMarkerFile)"
|
||||
PoisonReportOutputFilePath="$(PoisonUsageReportFile)"
|
||||
NonShippingPackagesListFiles="@(NonShippingPackagesList)" />
|
||||
|
||||
<WriteLinesToFile File="$(CompletedSemaphorePath)ReportPoisonUsage.complete" Overwrite="true" />
|
||||
<Message Importance="High" Text="[$([System.DateTime]::Now.ToString('HH:mm:ss.ff'))] Done checking for poison." />
|
||||
</Target>
|
||||
|
||||
<Target Name="GeneratePrebuiltBurndownData"
|
||||
Inputs="$(MSBuildProjectFullPath)"
|
||||
Outputs="$(CompletedSemaphorePath)GeneratePrebuiltBurndownData.complete" >
|
||||
<WriteUsageBurndownData RootDirectory="$(ProjectDir)"
|
||||
PrebuiltBaselineFile="$(BaselineDataFile)"
|
||||
OutputFilePath="$(PrebuiltBurndownDataFile)" />
|
||||
|
||||
<WriteLinesToFile File="$(CompletedSemaphorePath)GeneratePrebuiltBurndownData.complete" Overwrite="true" />
|
||||
</Target>
|
||||
|
||||
<Target Name="RunSmokeTest">
|
||||
<ItemGroup>
|
||||
<SdkTarballItem Include="$(SourceBuiltTarBallPath)**/dotnet-sdk*$(TarBallExtension)" />
|
||||
<SourceBuiltArtifactsItem Include="$(SourceBuiltTarBallPath)**/Private.SourceBuilt.Artifacts.*$(TarBallExtension)" />
|
||||
</ItemGroup>
|
||||
|
||||
<PropertyGroup>
|
||||
<CustomTestEnvVars Condition="'$(EnablePoison)' == 'true'">SMOKE_TESTS_POISON_REPORT_PATH=$(PoisonUsageReportFile);</CustomTestEnvVars>
|
||||
<SdkTarballPath>%(SdkTarballItem.Identity)</SdkTarballPath>
|
||||
<SourceBuiltArtifactsPath>%(SourceBuiltArtifactsItem.Identity)</SourceBuiltArtifactsPath>
|
||||
<SmokeTestConsoleVerbosity Condition="'$(SmokeTestConsoleVerbosity)' == ''">normal</SmokeTestConsoleVerbosity>
|
||||
</PropertyGroup>
|
||||
|
||||
<!-- Multiple loggers are specified so that results are captured in trx and pipelines can fail with AzDO pipeline warnings -->
|
||||
<Exec Command="$(DotnetToolCommand) test $(SmokeTestsDir) --logger:trx --logger:'console;verbosity=$(SmokeTestConsoleVerbosity)' -c $(Configuration)"
|
||||
IgnoreStandardErrorWarningFormat="true"
|
||||
EnvironmentVariables="
|
||||
SMOKE_TESTS_SDK_TARBALL_PATH=$(SdkTarballPath);
|
||||
SMOKE_TESTS_SOURCEBUILT_ARTIFACTS_PATH=$(SourceBuiltArtifactsPath);
|
||||
SMOKE_TESTS_TARGET_RID=$(TargetRid);
|
||||
SMOKE_TESTS_PORTABLE_RID=$(PortableRid);
|
||||
SMOKE_TESTS_CUSTOM_PACKAGES_PATH=$(CustomSourceBuiltPackagesPath);
|
||||
$(CustomTestEnvVars)" />
|
||||
</Target>
|
||||
|
||||
<Target Name="CreateSmokeTestPrereqsTarball"
|
||||
AfterTargets="RunSmokeTest"
|
||||
Condition="'$(SkipSmokeTestPrereqsTarballCreation)' != 'true'"
|
||||
DependsOnTargets="
|
||||
CheckIfCreateSmokeTestPrereqsExistToPack;
|
||||
CreateSmokeTestPrereqsTarballIfPrereqsExist"/>
|
||||
|
||||
<Target Name="CheckIfCreateSmokeTestPrereqsExistToPack">
|
||||
<PropertyGroup>
|
||||
<SmokeTestsArtifactsDir>$(SmokeTestsDir)bin/$(Configuration)/$(NetCurrent)/</SmokeTestsArtifactsDir>
|
||||
<SmokeTestsPackagesDir>$(SmokeTestsArtifactsDir)packages/</SmokeTestsPackagesDir>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<SmokeTestsPrereqs Include="$(SmokeTestsPackagesDir)**/*.nupkg" />
|
||||
</ItemGroup>
|
||||
|
||||
<Message Text="Found @(SmokeTestsPrereqs->Count()) prereqs in '$(SmokeTestsPackagesDir)'." Importance="High" />
|
||||
</Target>
|
||||
|
||||
<Target Name="CreateSmokeTestPrereqsTarballIfPrereqsExist"
|
||||
DependsOnTargets="DetermineMicrosoftSourceBuildIntermediateInstallerVersion"
|
||||
Condition="'@(SmokeTestsPrereqs->Count())' != '0'">
|
||||
<PropertyGroup>
|
||||
<SmokeTestPrereqsTarballName>$(OutputPath)dotnet-smoke-test-prereqs.$(MicrosoftSourceBuildIntermediateInstallerVersion).$(TargetRid).tar.gz</SmokeTestPrereqsTarballName>
|
||||
<SmokeTestsPrereqPackagesDir>$(SmokeTestsArtifactsDir)prereq-packages/</SmokeTestsPrereqPackagesDir>
|
||||
</PropertyGroup>
|
||||
|
||||
<Copy SourceFiles="@(SmokeTestsPrereqs)"
|
||||
DestinationFolder="$(SmokeTestsPrereqPackagesDir)" />
|
||||
|
||||
<Exec Command="tar --numeric-owner -czf $(SmokeTestPrereqsTarballName) ."
|
||||
WorkingDirectory="$(SmokeTestsPrereqPackagesDir)"/>
|
||||
|
||||
<Message Importance="High" Text="Packaged smoke-test prereqs in '$(SmokeTestPrereqsTarballName)'" />
|
||||
</Target>
|
||||
|
||||
<Target Name="CreatePrebuiltsTarball"
|
||||
AfterTargets="Build"
|
||||
DependsOnTargets="
|
||||
CheckIfPrebuiltsExistToPack;
|
||||
CreatePrebuiltsTarballIfPrebuiltsExist;
|
||||
ErrorOnPrebuilts"/>
|
||||
|
||||
<Target Name="CheckIfPrebuiltsExistToPack">
|
||||
<!-- Directory existence doesn't mean there are files inside. Use a pattern to find files. -->
|
||||
<ItemGroup>
|
||||
<PrebuiltFile Include="$(ResultingPrebuiltPackagesDir)**" />
|
||||
</ItemGroup>
|
||||
|
||||
<Message Text="Found @(PrebuiltFile->Count()) files in prebuilt packages dir." Importance="High" />
|
||||
</Target>
|
||||
|
||||
<Target Name="CreatePrebuiltsTarballIfPrebuiltsExist"
|
||||
DependsOnTargets="DetermineMicrosoftSourceBuildIntermediateInstallerVersion"
|
||||
Condition="'@(PrebuiltFile->Count())' != '0'">
|
||||
<PropertyGroup>
|
||||
<TarballFilePath>$(OutputPath)$(SourceBuiltPrebuiltsTarballName).$(MicrosoftSourceBuildIntermediateInstallerVersion).$(TargetRid).tar.gz</TarballFilePath>
|
||||
<TarballWorkingDir>$(ResultingPrebuiltPackagesDir)</TarballWorkingDir>
|
||||
</PropertyGroup>
|
||||
|
||||
<Exec Command="tar --numeric-owner -zcf $(TarballFilePath) -C $(TarballWorkingDir) ." />
|
||||
|
||||
<Message Text="Tarball '$(TarballFilePath)' was successfully created from '$(TarballWorkingDir)'" Importance="High" />
|
||||
</Target>
|
||||
|
||||
<Target Name="ErrorOnPrebuilts"
|
||||
Condition="'@(PrebuiltFile->Count())' != '0' AND '$(SkipErrorOnPrebuilts)' != 'true'">
|
||||
<Error Text="@(PrebuiltFile->Count()) Prebuilts Exist" />
|
||||
</Target>
|
||||
</Project>
|
||||
|
|
|
@ -1,82 +1,148 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
### Usage: $0 [options]
|
||||
###
|
||||
### Options:
|
||||
### --clean-while-building Cleans each repo after building (reduces disk space usage)
|
||||
### --online Build using online sources
|
||||
### --poison Build with poisoning checks
|
||||
### --run-smoke-test Don't build; run smoke tests
|
||||
### --source-repository <URL> Source Link repository URL, required when building from tarball
|
||||
### --source-version <SHA> Source Link revision, required when building from tarball
|
||||
### --release-manifest <FILE> A JSON file, an alternative source of Source Link metadata
|
||||
### --use-mono-runtime Output uses the mono runtime
|
||||
### --with-packages <DIR> Use the specified directory of previously-built packages
|
||||
### --with-sdk <DIR> Use the SDK in the specified directory for bootstrapping
|
||||
###
|
||||
### Use -- to send the remaining arguments to MSBuild
|
||||
# Stop script if unbound variable found (use ${var:-} if intentional)
|
||||
set -u
|
||||
|
||||
set -euo pipefail
|
||||
IFS=$'\n\t'
|
||||
# Stop script if command returns non-zero exit code.
|
||||
# Prevents hidden errors caused by missing error code propagation.
|
||||
set -e
|
||||
|
||||
source="${BASH_SOURCE[0]}"
|
||||
SCRIPT_ROOT="$(cd -P "$( dirname "$0" )" && pwd)"
|
||||
usage()
|
||||
{
|
||||
echo "Common settings:"
|
||||
echo " --binaryLog Create MSBuild binary log (short: -bl)"
|
||||
echo " --configuration <value> Build configuration: 'Debug' or 'Release' (short: -c)"
|
||||
echo " --verbosity <value> Msbuild verbosity: q[uiet], m[inimal], n[ormal], d[etailed], and diag[nostic] (short: -v)"
|
||||
echo ""
|
||||
|
||||
function print_help () {
|
||||
sed -n '/^### /,/^$/p' "$source" | cut -b 5-
|
||||
echo "Actions:"
|
||||
echo " --clean Clean the solution"
|
||||
echo " --help Print help and exit (short: -h)"
|
||||
echo " --test Run smoke tests (short: -t)"
|
||||
echo ""
|
||||
|
||||
echo "Source-only settings:"
|
||||
echo " --source-only Source-build the solution (short: -so)"
|
||||
echo " --online Build using online sources"
|
||||
echo " --poison Build with poisoning checks"
|
||||
echo " --release-manifest <FILE> A JSON file, an alternative source of Source Link metadata"
|
||||
echo " --source-repository <URL> Source Link repository URL, required when building from tarball"
|
||||
echo " --source-version <SHA> Source Link revision, required when building from tarball"
|
||||
echo " --use-mono-runtime Output uses the mono runtime"
|
||||
echo " --with-packages <DIR> Use the specified directory of previously-built packages"
|
||||
echo " --with-sdk <DIR> Use the SDK in the specified directory for bootstrapping"
|
||||
echo ""
|
||||
|
||||
echo "Advanced settings:"
|
||||
echo " --ci Set when running on CI server"
|
||||
echo " --clean-while-building Cleans each repo after building (reduces disk space usage, short: -cwb)"
|
||||
echo " --excludeCIBinarylog Don't output binary log (short: -nobl)"
|
||||
echo " --prepareMachine Prepare machine for CI run, clean up processes after build"
|
||||
echo ""
|
||||
echo "Command line arguments not listed above are passed thru to msbuild."
|
||||
echo "Arguments can also be passed in with a single hyphen."
|
||||
}
|
||||
|
||||
MSBUILD_ARGUMENTS=("-flp:v=detailed")
|
||||
CUSTOM_PACKAGES_DIR=''
|
||||
alternateTarget=false
|
||||
runningSmokeTests=false
|
||||
packagesDir="$SCRIPT_ROOT/prereqs/packages/"
|
||||
packagesArchiveDir="${packagesDir}archive/"
|
||||
packagesRestoredDir="${packagesDir}restored/"
|
||||
packagesPreviouslySourceBuiltDir="${packagesDir}previously-source-built/"
|
||||
CUSTOM_SDK_DIR=''
|
||||
source="${BASH_SOURCE[0]}"
|
||||
|
||||
# resolve $source until the file is no longer a symlink
|
||||
while [[ -h "$source" ]]; do
|
||||
scriptroot="$( cd -P "$( dirname "$source" )" && pwd )"
|
||||
source="$(readlink "$source")"
|
||||
# if $source was a relative symlink, we need to resolve it relative to the path where the
|
||||
# symlink file was located
|
||||
[[ $source != /* ]] && source="$scriptroot/$source"
|
||||
done
|
||||
scriptroot="$( cd -P "$( dirname "$source" )" && pwd )"
|
||||
|
||||
# Set the NUGET_PACKAGES dir so that we don't accidentally pull some packages from the global location,
|
||||
# They should be pulled from the local feeds.
|
||||
packagesDir="$scriptroot/prereqs/packages/"
|
||||
packagesRestoredDir="${packagesDir}restored/"
|
||||
export NUGET_PACKAGES=$packagesRestoredDir/
|
||||
|
||||
# Common settings
|
||||
binary_log=false
|
||||
configuration='Release'
|
||||
verbosity='minimal'
|
||||
|
||||
# Actions
|
||||
clean=false
|
||||
test=false
|
||||
|
||||
# Source-only settings
|
||||
sourceOnly=false
|
||||
releaseManifest=''
|
||||
sourceRepository=''
|
||||
sourceVersion=''
|
||||
releaseManifest=''
|
||||
CUSTOM_PACKAGES_DIR=''
|
||||
CUSTOM_SDK_DIR=''
|
||||
packagesArchiveDir="${packagesDir}archive/"
|
||||
packagesPreviouslySourceBuiltDir="${packagesDir}previously-source-built/"
|
||||
|
||||
while :; do
|
||||
if [ $# -le 0 ]; then
|
||||
break
|
||||
fi
|
||||
# Advanced settings
|
||||
ci=false
|
||||
exclude_ci_binary_log=false
|
||||
prepare_machine=false
|
||||
|
||||
lowerI="$(echo "$1" | awk '{print tolower($0)}')"
|
||||
case $lowerI in
|
||||
--clean-while-building)
|
||||
MSBUILD_ARGUMENTS+=( "-p:CleanWhileBuilding=true")
|
||||
properties=''
|
||||
while [[ $# > 0 ]]; do
|
||||
opt="$(echo "${1/#--/-}" | tr "[:upper:]" "[:lower:]")"
|
||||
case "$opt" in
|
||||
# Common settings
|
||||
-binarylog|-bl)
|
||||
binary_log=true
|
||||
;;
|
||||
--online)
|
||||
MSBUILD_ARGUMENTS+=( "-p:BuildWithOnlineSources=true")
|
||||
;;
|
||||
--poison)
|
||||
MSBUILD_ARGUMENTS+=( "-p:EnablePoison=true")
|
||||
;;
|
||||
--run-smoke-test)
|
||||
alternateTarget=true
|
||||
runningSmokeTests=true
|
||||
MSBUILD_ARGUMENTS+=( "-t:RunSmokeTest" )
|
||||
;;
|
||||
--source-repository)
|
||||
sourceRepository="$2"
|
||||
-configuration|-c)
|
||||
configuration=$2
|
||||
shift
|
||||
;;
|
||||
--source-version)
|
||||
sourceVersion="$2"
|
||||
-verbosity|-v)
|
||||
verbosity=$2
|
||||
shift
|
||||
;;
|
||||
--release-manifest)
|
||||
|
||||
# Actions
|
||||
-clean)
|
||||
clean=true
|
||||
;;
|
||||
-help|-h|-\?|/?)
|
||||
usage
|
||||
exit 0
|
||||
;;
|
||||
-test|-t)
|
||||
export NUGET_PACKAGES=$NUGET_PACKAGES/smoke-tests
|
||||
properties="$properties /t:RunSmokeTest"
|
||||
test=true
|
||||
;;
|
||||
|
||||
# Source-only settings
|
||||
-source-only|-so)
|
||||
sourceOnly=true
|
||||
properties="$properties /p:DotNetBuildSourceOnly=true"
|
||||
;;
|
||||
-online)
|
||||
properties="$properties /p:DotNetBuildWithOnlineSources=true"
|
||||
;;
|
||||
-poison)
|
||||
properties="$properties /p:EnablePoison=true"
|
||||
;;
|
||||
-release-manifest)
|
||||
releaseManifest="$2"
|
||||
shift
|
||||
;;
|
||||
--use-mono-runtime)
|
||||
MSBUILD_ARGUMENTS+=( "/p:SourceBuildUseMonoRuntime=true" )
|
||||
-source-repository)
|
||||
sourceRepository="$2"
|
||||
shift
|
||||
;;
|
||||
--with-packages)
|
||||
-source-version)
|
||||
sourceVersion="$2"
|
||||
shift
|
||||
;;
|
||||
-use-mono-runtime)
|
||||
properties="$properties /p:SourceBuildUseMonoRuntime=true"
|
||||
;;
|
||||
-with-packages)
|
||||
CUSTOM_PACKAGES_DIR="$(cd -P "$2" && pwd)"
|
||||
if [ ! -d "$CUSTOM_PACKAGES_DIR" ]; then
|
||||
echo "Custom prviously built packages directory '$CUSTOM_PACKAGES_DIR' does not exist"
|
||||
|
@ -84,7 +150,7 @@ while :; do
|
|||
fi
|
||||
shift
|
||||
;;
|
||||
--with-sdk)
|
||||
-with-sdk)
|
||||
CUSTOM_SDK_DIR="$(cd -P "$2" && pwd)"
|
||||
if [ ! -d "$CUSTOM_SDK_DIR" ]; then
|
||||
echo "Custom SDK directory '$CUSTOM_SDK_DIR' does not exist"
|
||||
|
@ -96,172 +162,192 @@ while :; do
|
|||
fi
|
||||
shift
|
||||
;;
|
||||
--)
|
||||
shift
|
||||
echo "Detected '--': passing remaining parameters '$@' as build.sh arguments."
|
||||
break
|
||||
|
||||
# Advanced settings
|
||||
-ci)
|
||||
ci=true
|
||||
;;
|
||||
'-?'|-h|--help)
|
||||
print_help
|
||||
exit 0
|
||||
-clean-while-building|-cwb)
|
||||
properties="$properties /p:CleanWhileBuilding=true"
|
||||
;;
|
||||
-excludecibinarylog|-nobl)
|
||||
exclude_ci_binary_log=true
|
||||
;;
|
||||
-preparemachine)
|
||||
prepare_machine=true
|
||||
;;
|
||||
|
||||
*)
|
||||
echo "Unrecognized argument '$1'"
|
||||
print_help
|
||||
exit 1
|
||||
properties="$properties $1"
|
||||
;;
|
||||
esac
|
||||
|
||||
shift
|
||||
done
|
||||
|
||||
# For build purposes, we need to make sure we have all the SourceLink information
|
||||
if [ "$alternateTarget" != "true" ]; then
|
||||
GIT_DIR="$SCRIPT_ROOT/.git"
|
||||
if [ -f "$GIT_DIR/index" ]; then # We check for index because if outside of git, we create config and HEAD manually
|
||||
if [ -n "$sourceRepository" ] || [ -n "$sourceVersion" ] || [ -n "$releaseManifest" ]; then
|
||||
echo "ERROR: Source Link arguments cannot be used in a git repository"
|
||||
exit 1
|
||||
. "$scriptroot/eng/common/tools.sh"
|
||||
|
||||
function Build {
|
||||
if [[ "$sourceOnly" != "true" ]]; then
|
||||
|
||||
InitializeToolset
|
||||
|
||||
local bl=""
|
||||
if [[ "$binary_log" == true ]]; then
|
||||
bl="/bl:\"$log_dir/Build.binlog\""
|
||||
fi
|
||||
|
||||
MSBuild "$scriptroot/build.proj" \
|
||||
$bl \
|
||||
/p:Configuration=$configuration \
|
||||
$properties
|
||||
|
||||
ExitWithExitCode 0
|
||||
|
||||
else
|
||||
if [ -z "$releaseManifest" ]; then
|
||||
if [ -z "$sourceRepository" ] || [ -z "$sourceVersion" ]; then
|
||||
echo "ERROR: $SCRIPT_ROOT is not a git repository, either --release-manifest or --source-repository and --source-version must be specified"
|
||||
|
||||
"$CLI_ROOT/dotnet" build-server shutdown
|
||||
|
||||
if [ "$test" == "true" ]; then
|
||||
"$CLI_ROOT/dotnet" msbuild "$scriptroot/build.proj" -bl:"$scriptroot/artifacts/log/$configuration/BuildTests.binlog" -flp:"LogFile=$scriptroot/artifacts/log/$configuration/BuildTests.log" -clp:v=m $properties
|
||||
else
|
||||
"$CLI_ROOT/dotnet" msbuild "$scriptroot/eng/tools/init-build.proj" -bl:"$scriptroot/artifacts/log/$configuration/BuildMSBuildSdkResolver.binlog" -flp:LogFile="$scriptroot/artifacts/log/$configuration/BuildMSBuildSdkResolver.log" /t:ExtractToolPackage,BuildMSBuildSdkResolver $properties
|
||||
|
||||
# kill off the MSBuild server so that on future invocations we pick up our custom SDK Resolver
|
||||
"$CLI_ROOT/dotnet" build-server shutdown
|
||||
|
||||
"$CLI_ROOT/dotnet" msbuild "$scriptroot/build.proj" -bl:"$scriptroot/artifacts/log/$configuration/Build.binlog" -flp:"LogFile=$scriptroot/artifacts/log/$configuration/Build.log" $properties
|
||||
fi
|
||||
|
||||
fi
|
||||
}
|
||||
|
||||
if [[ "$clean" == true ]]; then
|
||||
if [ -d "$artifacts_dir" ]; then
|
||||
rm -rf $artifacts_dir
|
||||
echo "Artifacts directory deleted."
|
||||
fi
|
||||
exit 0
|
||||
fi
|
||||
|
||||
# Initialize __DistroRid and __PortableTargetOS
|
||||
source $scriptroot/eng/common/native/init-os-and-arch.sh
|
||||
source $scriptroot/eng/common/native/init-distro-rid.sh
|
||||
initDistroRidGlobal "$os" "$arch" ""
|
||||
|
||||
# Source-only settings
|
||||
if [[ "$sourceOnly" == "true" ]]; then
|
||||
# For build purposes, we need to make sure we have all the SourceLink information
|
||||
if [ "$test" != "true" ]; then
|
||||
GIT_DIR="$scriptroot/.git"
|
||||
if [ -f "$GIT_DIR/index" ]; then # We check for index because if outside of git, we create config and HEAD manually
|
||||
if [ -n "$sourceRepository" ] || [ -n "$sourceVersion" ] || [ -n "$releaseManifest" ]; then
|
||||
echo "ERROR: Source Link arguments cannot be used in a git repository"
|
||||
exit 1
|
||||
fi
|
||||
else
|
||||
if [ -n "$sourceRepository" ] || [ -n "$sourceVersion" ]; then
|
||||
echo "ERROR: --release-manifest cannot be specified together with --source-repository and --source-version"
|
||||
exit 1
|
||||
if [ -z "$releaseManifest" ]; then
|
||||
if [ -z "$sourceRepository" ] || [ -z "$sourceVersion" ]; then
|
||||
echo "ERROR: $scriptroot is not a git repository, either --release-manifest or --source-repository and --source-version must be specified"
|
||||
exit 1
|
||||
fi
|
||||
else
|
||||
if [ -n "$sourceRepository" ] || [ -n "$sourceVersion" ]; then
|
||||
echo "ERROR: --release-manifest cannot be specified together with --source-repository and --source-version"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
get_property() {
|
||||
local json_file_path="$1"
|
||||
local property_name="$2"
|
||||
grep -oP '(?<="'$property_name'": ")[^"]*' "$json_file_path"
|
||||
}
|
||||
|
||||
sourceRepository=$(get_property "$releaseManifest" sourceRepository) \
|
||||
|| (echo "ERROR: Failed to find sourceRepository in $releaseManifest" && exit 1)
|
||||
sourceVersion=$(get_property "$releaseManifest" sourceVersion) \
|
||||
|| (echo "ERROR: Failed to find sourceVersion in $releaseManifest" && exit 1)
|
||||
|
||||
if [ -z "$sourceRepository" ] || [ -z "$sourceVersion" ]; then
|
||||
echo "ERROR: sourceRepository and sourceVersion must be specified in $releaseManifest"
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
get_property() {
|
||||
local json_file_path="$1"
|
||||
local property_name="$2"
|
||||
grep -oP '(?<="'$property_name'": ")[^"]*' "$json_file_path"
|
||||
}
|
||||
|
||||
sourceRepository=$(get_property "$releaseManifest" sourceRepository) \
|
||||
|| (echo "ERROR: Failed to find sourceRepository in $releaseManifest" && exit 1)
|
||||
sourceVersion=$(get_property "$releaseManifest" sourceVersion) \
|
||||
|| (echo "ERROR: Failed to find sourceVersion in $releaseManifest" && exit 1)
|
||||
|
||||
if [ -z "$sourceRepository" ] || [ -z "$sourceVersion" ]; then
|
||||
echo "ERROR: sourceRepository and sourceVersion must be specified in $releaseManifest"
|
||||
exit 1
|
||||
fi
|
||||
# We need to add "fake" .git/ files when not building from a git repository
|
||||
mkdir -p "$GIT_DIR"
|
||||
echo '[remote "origin"]' > "$GIT_DIR/config"
|
||||
echo "url=\"$sourceRepository\"" >> "$GIT_DIR/config"
|
||||
echo "$sourceVersion" > "$GIT_DIR/HEAD"
|
||||
fi
|
||||
fi
|
||||
|
||||
# We need to add "fake" .git/ files when not building from a git repository
|
||||
mkdir -p "$GIT_DIR"
|
||||
echo '[remote "origin"]' > "$GIT_DIR/config"
|
||||
echo "url=\"$sourceRepository\"" >> "$GIT_DIR/config"
|
||||
echo "$sourceVersion" > "$GIT_DIR/HEAD"
|
||||
# Support custom source built package locations
|
||||
if [ "$CUSTOM_PACKAGES_DIR" != "" ]; then
|
||||
if [ "$test" == "true" ]; then
|
||||
properties="$properties /p:CustomSourceBuiltPackagesPath=$CUSTOM_PACKAGES_DIR"
|
||||
else
|
||||
properties="$properties /p:CustomPrebuiltSourceBuiltPackagesPath=$CUSTOM_PACKAGES_DIR"
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ "$CUSTOM_PACKAGES_DIR" != "" ]; then
|
||||
if [ "$runningSmokeTests" == "true" ]; then
|
||||
MSBUILD_ARGUMENTS+=( "-p:CustomSourceBuiltPackagesPath=$CUSTOM_PACKAGES_DIR" )
|
||||
else
|
||||
MSBUILD_ARGUMENTS+=( "-p:CustomPrebuiltSourceBuiltPackagesPath=$CUSTOM_PACKAGES_DIR" )
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ -f "${packagesArchiveDir}archiveArtifacts.txt" ]; then
|
||||
ARCHIVE_ERROR=0
|
||||
if [ ! -d "$SCRIPT_ROOT/.dotnet" ] && [ "$CUSTOM_SDK_DIR" == "" ]; then
|
||||
echo "ERROR: SDK not found at '$SCRIPT_ROOT/.dotnet'. Either run prep.sh to acquire one or specify one via the --with-sdk parameter."
|
||||
ARCHIVE_ERROR=1
|
||||
fi
|
||||
if [ ! -f ${packagesArchiveDir}Private.SourceBuilt.Artifacts*.tar.gz ] && [ "$CUSTOM_PACKAGES_DIR" == "" ]; then
|
||||
echo "ERROR: Private.SourceBuilt.Artifacts artifact not found at '$packagesArchiveDir'. Either run prep.sh to acquire it or specify one via the --with-packages parameter."
|
||||
ARCHIVE_ERROR=1
|
||||
fi
|
||||
if [ $ARCHIVE_ERROR == 1 ]; then
|
||||
if [ ! -d "$scriptroot/.git" ]; then
|
||||
echo "ERROR: $scriptroot is not a git repository. Please run prep.sh add initialize Source Link metadata."
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ ! -d "$SCRIPT_ROOT/.git" ]; then
|
||||
echo "ERROR: $SCRIPT_ROOT is not a git repository. Please run prep.sh add initialize Source Link metadata."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if [ -d "$CUSTOM_SDK_DIR" ]; then
|
||||
export SDK_VERSION=$("$CUSTOM_SDK_DIR/dotnet" --version)
|
||||
export CLI_ROOT="$CUSTOM_SDK_DIR"
|
||||
export _InitializeDotNetCli="$CLI_ROOT/dotnet"
|
||||
export CustomDotNetSdkDir="$CLI_ROOT"
|
||||
echo "Using custom bootstrap SDK from '$CLI_ROOT', version '$SDK_VERSION'"
|
||||
else
|
||||
sdkLine=$(grep -m 1 'dotnet' "$SCRIPT_ROOT/global.json")
|
||||
sdkPattern="\"dotnet\" *: *\"(.*)\""
|
||||
if [[ $sdkLine =~ $sdkPattern ]]; then
|
||||
export SDK_VERSION=${BASH_REMATCH[1]}
|
||||
export CLI_ROOT="$SCRIPT_ROOT/.dotnet"
|
||||
# Allow a custom SDK directory to be specified
|
||||
if [ -d "$CUSTOM_SDK_DIR" ]; then
|
||||
export SDK_VERSION=$("$CUSTOM_SDK_DIR/dotnet" --version)
|
||||
export CLI_ROOT="$CUSTOM_SDK_DIR"
|
||||
export _InitializeDotNetCli="$CLI_ROOT/dotnet"
|
||||
export DOTNET_INSTALL_DIR="$CLI_ROOT"
|
||||
echo "Using custom bootstrap SDK from '$CLI_ROOT', version '$SDK_VERSION'"
|
||||
else
|
||||
sdkLine=$(grep -m 1 'dotnet' "$scriptroot/global.json")
|
||||
sdkPattern="\"dotnet\" *: *\"(.*)\""
|
||||
if [[ $sdkLine =~ $sdkPattern ]]; then
|
||||
export SDK_VERSION=${BASH_REMATCH[1]}
|
||||
export CLI_ROOT="$scriptroot/.dotnet"
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
packageVersionsPath=''
|
||||
# Find the Arcade SDK version and set env vars for the msbuild sdk resolver
|
||||
packageVersionsPath=''
|
||||
|
||||
if [[ "$CUSTOM_PACKAGES_DIR" != "" && -f "$CUSTOM_PACKAGES_DIR/PackageVersions.props" ]]; then
|
||||
packageVersionsPath="$CUSTOM_PACKAGES_DIR/PackageVersions.props"
|
||||
elif [ -d "$packagesArchiveDir" ]; then
|
||||
sourceBuiltArchive=$(find "$packagesArchiveDir" -maxdepth 1 -name 'Private.SourceBuilt.Artifacts*.tar.gz')
|
||||
if [ -f "${packagesPreviouslySourceBuiltDir}}PackageVersions.props" ]; then
|
||||
packageVersionsPath=${packagesPreviouslySourceBuiltDir}PackageVersions.props
|
||||
elif [ -f "$sourceBuiltArchive" ]; then
|
||||
tar -xzf "$sourceBuiltArchive" -C /tmp PackageVersions.props
|
||||
packageVersionsPath=/tmp/PackageVersions.props
|
||||
if [[ "$CUSTOM_PACKAGES_DIR" != "" && -f "$CUSTOM_PACKAGES_DIR/PackageVersions.props" ]]; then
|
||||
packageVersionsPath="$CUSTOM_PACKAGES_DIR/PackageVersions.props"
|
||||
elif [ -d "$packagesArchiveDir" ]; then
|
||||
sourceBuiltArchive=$(find "$packagesArchiveDir" -maxdepth 1 -name 'Private.SourceBuilt.Artifacts*.tar.gz')
|
||||
if [ -f "${packagesPreviouslySourceBuiltDir}}PackageVersions.props" ]; then
|
||||
packageVersionsPath=${packagesPreviouslySourceBuiltDir}PackageVersions.props
|
||||
elif [ -f "$sourceBuiltArchive" ]; then
|
||||
tar -xzf "$sourceBuiltArchive" -C /tmp PackageVersions.props
|
||||
packageVersionsPath=/tmp/PackageVersions.props
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ ! -f "$packageVersionsPath" ]; then
|
||||
echo "Cannot find PackagesVersions.props. Debugging info:"
|
||||
echo " Attempted archive path: $packagesArchiveDir"
|
||||
echo " Attempted custom PVP path: $CUSTOM_PACKAGES_DIR/PackageVersions.props"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
arcadeSdkLine=$(grep -m 1 'MicrosoftDotNetArcadeSdkVersion' "$packageVersionsPath")
|
||||
versionPattern="<MicrosoftDotNetArcadeSdkVersion>(.*)</MicrosoftDotNetArcadeSdkVersion>"
|
||||
if [[ $arcadeSdkLine =~ $versionPattern ]]; then
|
||||
export ARCADE_BOOTSTRAP_VERSION=${BASH_REMATCH[1]}
|
||||
|
||||
# Ensure that by default, the bootstrap version of the Arcade SDK is used. Source-build infra
|
||||
# projects use bootstrap Arcade SDK, and would fail to find it in the build. The repo
|
||||
# projects overwrite this so that they use the source-built Arcade SDK instad.
|
||||
export SOURCE_BUILT_SDK_ID_ARCADE=Microsoft.DotNet.Arcade.Sdk
|
||||
export SOURCE_BUILT_SDK_VERSION_ARCADE=$ARCADE_BOOTSTRAP_VERSION
|
||||
export SOURCE_BUILT_SDK_DIR_ARCADE=$packagesRestoredDir/ArcadeBootstrapPackage/microsoft.dotnet.arcade.sdk/$ARCADE_BOOTSTRAP_VERSION
|
||||
fi
|
||||
|
||||
echo "Found bootstrap SDK $SDK_VERSION, bootstrap Arcade $ARCADE_BOOTSTRAP_VERSION"
|
||||
fi
|
||||
|
||||
if [ ! -f "$packageVersionsPath" ]; then
|
||||
echo "Cannot find PackagesVersions.props. Debugging info:"
|
||||
echo " Attempted archive path: $packagesArchiveDir"
|
||||
echo " Attempted custom PVP path: $CUSTOM_PACKAGES_DIR/PackageVersions.props"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
arcadeSdkLine=$(grep -m 1 'MicrosoftDotNetArcadeSdkVersion' "$packageVersionsPath")
|
||||
versionPattern="<MicrosoftDotNetArcadeSdkVersion>(.*)</MicrosoftDotNetArcadeSdkVersion>"
|
||||
if [[ $arcadeSdkLine =~ $versionPattern ]]; then
|
||||
export ARCADE_BOOTSTRAP_VERSION=${BASH_REMATCH[1]}
|
||||
|
||||
# Ensure that by default, the bootstrap version of the Arcade SDK is used. Source-build infra
|
||||
# projects use bootstrap Arcade SDK, and would fail to find it in the build. The repo
|
||||
# projects overwrite this so that they use the source-built Arcade SDK instad.
|
||||
export SOURCE_BUILT_SDK_ID_ARCADE=Microsoft.DotNet.Arcade.Sdk
|
||||
export SOURCE_BUILT_SDK_VERSION_ARCADE=$ARCADE_BOOTSTRAP_VERSION
|
||||
export SOURCE_BUILT_SDK_DIR_ARCADE=$packagesRestoredDir/ArcadeBootstrapPackage/microsoft.dotnet.arcade.sdk/$ARCADE_BOOTSTRAP_VERSION
|
||||
fi
|
||||
|
||||
sourceLinkLine=$(grep -m 1 'MicrosoftSourceLinkCommonVersion' "$packageVersionsPath")
|
||||
versionPattern="<MicrosoftSourceLinkCommonVersion>(.*)</MicrosoftSourceLinkCommonVersion>"
|
||||
if [[ $sourceLinkLine =~ $versionPattern ]]; then
|
||||
export SOURCE_LINK_BOOTSTRAP_VERSION=${BASH_REMATCH[1]}
|
||||
fi
|
||||
|
||||
echo "Found bootstrap SDK $SDK_VERSION, bootstrap Arcade $ARCADE_BOOTSTRAP_VERSION, bootstrap SourceLink $SOURCE_LINK_BOOTSTRAP_VERSION"
|
||||
|
||||
export DOTNET_CLI_TELEMETRY_OPTOUT=1
|
||||
export NUGET_PACKAGES=$packagesRestoredDir/
|
||||
|
||||
source $SCRIPT_ROOT/eng/common/native/init-os-and-arch.sh
|
||||
source $SCRIPT_ROOT/eng/common/native/init-distro-rid.sh
|
||||
initDistroRidGlobal "$os" "$arch" ""
|
||||
|
||||
LogDateStamp=$(date +"%m%d%H%M%S")
|
||||
|
||||
"$CLI_ROOT/dotnet" build-server shutdown
|
||||
|
||||
if [ "$alternateTarget" == "true" ]; then
|
||||
export NUGET_PACKAGES=$NUGET_PACKAGES/smoke-tests
|
||||
"$CLI_ROOT/dotnet" msbuild "$SCRIPT_ROOT/build.proj" -bl:"$SCRIPT_ROOT/artifacts/log/Debug/BuildTests_$LogDateStamp.binlog" -flp:"LogFile=$SCRIPT_ROOT/artifacts/logs/BuildTests_$LogDateStamp.log" -clp:v=m ${MSBUILD_ARGUMENTS[@]} "$@"
|
||||
else
|
||||
"$CLI_ROOT/dotnet" msbuild "$SCRIPT_ROOT/eng/tools/init-build.proj" -bl:"$SCRIPT_ROOT/artifacts/log/Debug/BuildXPlatTasks_$LogDateStamp.binlog" -flp:LogFile="$SCRIPT_ROOT/artifacts/logs/BuildXPlatTasks_$LogDateStamp.log" -t:PrepareOfflineLocalTools ${MSBUILD_ARGUMENTS[@]} "$@"
|
||||
# kill off the MSBuild server so that on future invocations we pick up our custom SDK Resolver
|
||||
"$CLI_ROOT/dotnet" build-server shutdown
|
||||
|
||||
"$CLI_ROOT/dotnet" msbuild "$SCRIPT_ROOT/build.proj" -bl:"$SCRIPT_ROOT/artifacts/log/Debug/Build_$LogDateStamp.binlog" -flp:"LogFile=$SCRIPT_ROOT/artifacts/logs/Build_$LogDateStamp.log" ${MSBUILD_ARGUMENTS[@]} "$@"
|
||||
fi
|
||||
Build
|
||||
|
|
|
@ -1,17 +1,7 @@
|
|||
<Project>
|
||||
|
||||
<ItemGroup Condition="'$(SkipProductionBuild)' != 'true'">
|
||||
<ItemGroup>
|
||||
<ProjectToBuild Include="$(RepoRoot)build.proj" />
|
||||
</ItemGroup>
|
||||
|
||||
<!-- Prevent Arcade from trying to find something to build, if we want to build nothing. -->
|
||||
<ItemGroup Condition="'@(ProjectToBuild)' == ''">
|
||||
<ProjectToBuild Include="$(MSBuildThisFileDirectory)No.proj" />
|
||||
</ItemGroup>
|
||||
|
||||
<Import Project="$([MSBuild]::GetPathOfFileAbove(Directory.Build.props, $(MSBuildThisFileDirectory)))" />
|
||||
<Import Project="$([MSBuild]::GetPathOfFileAbove(Directory.Build.targets, $(MSBuildThisFileDirectory)))" />
|
||||
|
||||
<Import Project="$(MSBuildThisFileDirectory)SourceBuild.Tarball.targets" />
|
||||
|
||||
</Project>
|
||||
|
|
|
@ -1,9 +0,0 @@
|
|||
<!--
|
||||
This project intentionally does nothing. It is a stub used to avoid building while preventing
|
||||
Arcade from searching the repo root to find something to do.
|
||||
-->
|
||||
<Project>
|
||||
|
||||
<Target Name="Build" />
|
||||
|
||||
</Project>
|
11
src/SourceBuild/content/eng/Version.Details.xml
Normal file
11
src/SourceBuild/content/eng/Version.Details.xml
Normal file
|
@ -0,0 +1,11 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Dependencies>
|
||||
<ProductDependencies>
|
||||
</ProductDependencies>
|
||||
<ToolsetDependencies>
|
||||
<Dependency Name="Microsoft.DotNet.Arcade.Sdk" Version="9.0.0-beta.24075.2">
|
||||
<Uri>https://github.com/dotnet/arcade</Uri>
|
||||
<Sha>1d8f27f89c3b167f63e28e73a3d9ab345e81d310</Sha>
|
||||
</Dependency>
|
||||
</ToolsetDependencies>
|
||||
</Dependencies>
|
|
@ -1,15 +1,9 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<Project>
|
||||
<!-- Repo Version Information -->
|
||||
<PropertyGroup>
|
||||
<VersionPrefix>0.1.0</VersionPrefix>
|
||||
<PreReleaseVersionLabel>alpha.1</PreReleaseVersionLabel>
|
||||
</PropertyGroup>
|
||||
<!-- Humanizer expects us to tell the version it's building -->
|
||||
<PropertyGroup>
|
||||
<HumanizerCorePackageVersion>2.2.0</HumanizerCorePackageVersion>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup>
|
||||
<!--
|
||||
Building .NET from source depends on several archives, depending on the branch's current
|
||||
|
@ -28,8 +22,10 @@
|
|||
of a .NET major or minor release, prebuilts may be needed. When the release is mature, prebuilts
|
||||
are not necessary, and this property is removed from the file.
|
||||
-->
|
||||
<PrivateSourceBuiltSdkVersion>8.0.100-rc.2.23502.1</PrivateSourceBuiltSdkVersion>
|
||||
<PrivateSourceBuiltArtifactsVersion>8.0.100-rc.2.23502.1</PrivateSourceBuiltArtifactsVersion>
|
||||
<PrivateSourceBuiltPrebuiltsVersion>0.1.0-9.0.100-3</PrivateSourceBuiltPrebuiltsVersion>
|
||||
<PrivateSourceBuiltSdkVersion>9.0.100-alpha.1.24067.1</PrivateSourceBuiltSdkVersion>
|
||||
<PrivateSourceBuiltArtifactsVersion>9.0.100-alpha.1.24067.1</PrivateSourceBuiltArtifactsVersion>
|
||||
<PrivateSourceBuiltPrebuiltsVersion>0.1.0-9.0.100-9</PrivateSourceBuiltPrebuiltsVersion>
|
||||
<!-- msbuild -->
|
||||
<MicrosoftBuildVersion>15.7.179</MicrosoftBuildVersion>
|
||||
</PropertyGroup>
|
||||
</Project>
|
||||
|
|
|
@ -5,21 +5,5 @@
|
|||
<NonshippingRuntimeVersionFor700>7.0.4-servicing.23107.6</NonshippingRuntimeVersionFor700>
|
||||
|
||||
<MicrosoftNETCoreTestHostVersion>$(NonshippingRuntimeVersionFor700)</MicrosoftNETCoreTestHostVersion>
|
||||
|
||||
<Msft80RC2RuntimeVersion>8.0.0-rc.2.23479.6</Msft80RC2RuntimeVersion>
|
||||
<MicrosoftNETCoreAppCrossgen2Version>$(Msft80RC2RuntimeVersion)</MicrosoftNETCoreAppCrossgen2Version>
|
||||
<MicrosoftNETCoreAppHostPackageVersion>$(Msft80RC2RuntimeVersion)</MicrosoftNETCoreAppHostPackageVersion>
|
||||
<MicrosoftNETCoreAppRefVersion>$(Msft80RC2RuntimeVersion)</MicrosoftNETCoreAppRefVersion>
|
||||
<MicrosoftNETCoreAppRuntimeVersion>$(Msft80RC2RuntimeVersion)</MicrosoftNETCoreAppRuntimeVersion>
|
||||
<MicrosoftNETILLinkTasksVersion>$(Msft80RC2RuntimeVersion)</MicrosoftNETILLinkTasksVersion>
|
||||
<MicrosoftDotNetILCompilerVersion>$(Msft80RC2RuntimeVersion)</MicrosoftDotNetILCompilerVersion>
|
||||
<MicrosoftNETCoreDotNetAppHostVersion>$(Msft80RC2RuntimeVersion)</MicrosoftNETCoreDotNetAppHostVersion>
|
||||
<MicrosoftNETCoreDotNetHostVersion>$(Msft80RC2RuntimeVersion)</MicrosoftNETCoreDotNetHostVersion>
|
||||
<MicrosoftNETCoreDotNetHostPolicyVersion>$(Msft80RC2RuntimeVersion)</MicrosoftNETCoreDotNetHostPolicyVersion>
|
||||
<MicrosoftNETCoreDotNetHostResolverVersion>$(Msft80RC2RuntimeVersion)</MicrosoftNETCoreDotNetHostResolverVersion>
|
||||
<MicrosoftNETCoreILAsmVersion>$(Msft80RC2RuntimeVersion)</MicrosoftNETCoreILAsmVersion>
|
||||
<MicrosoftNETCoreILDAsmVersion>$(Msft80RC2RuntimeVersion)</MicrosoftNETCoreILDAsmVersion>
|
||||
<RuntimeNativeSystemIOPortsVersion>$(Msft80RC2RuntimeVersion)</RuntimeNativeSystemIOPortsVersion>
|
||||
|
||||
</PropertyGroup>
|
||||
</Project>
|
||||
|
|
|
@ -36,9 +36,6 @@
|
|||
|
||||
<PortablePackage Include="Microsoft.DotNet.ILCompiler" Version="[$(MicrosoftDotNetILCompilerVersion)]" />
|
||||
<PortablePackage Include="Microsoft.NETCore.DotNetAppHost" Version="[$(MicrosoftNETCoreDotNetAppHostVersion)]" />
|
||||
<PortablePackage Include="Microsoft.NETCore.DotNetHost" Version="[$(MicrosoftNETCoreDotNetHostVersion)]" />
|
||||
<PortablePackage Include="Microsoft.NETCore.DotNetHostPolicy" Version="[$(MicrosoftNETCoreDotNetHostPolicyVersion)]" />
|
||||
<PortablePackage Include="Microsoft.NETCore.DotNetHostResolver" Version="[$(MicrosoftNETCoreDotNetHostResolverVersion)]" />
|
||||
<PortablePackage Include="Microsoft.NETCore.ILAsm" Version="[$(MicrosoftNETCoreILAsmVersion)]" />
|
||||
<PortablePackage Include="Microsoft.NETCore.ILDAsm" Version="[$(MicrosoftNETCoreILDAsmVersion)]" />
|
||||
<PortablePackage Include="Microsoft.NETCore.TestHost" Version="[$(MicrosoftNETCoreTestHostVersion)]" />
|
||||
|
@ -47,9 +44,6 @@
|
|||
<!-- These packages don't actually exist -->
|
||||
<ExcludedPackage Include="runtime.linux-musl-x64.runtime.native.System.IO.Ports" />
|
||||
<ExcludedPackage Include="runtime.linux-musl-arm64.runtime.native.System.IO.Ports" />
|
||||
|
||||
<PackageDownload Include="Microsoft.NET.ILLink.Tasks" Version="[$(MicrosoftNETILLinkTasksVersion)]" />
|
||||
<PackageDownload Include="Microsoft.NETCore.App.Ref" Version="[$(MicrosoftNETCoreAppRefVersion)]" />
|
||||
</ItemGroup>
|
||||
|
||||
<Target Name="GetPackagesToDownload"
|
||||
|
|
87
src/SourceBuild/content/eng/build.ps1
Normal file
87
src/SourceBuild/content/eng/build.ps1
Normal file
|
@ -0,0 +1,87 @@
|
|||
[CmdletBinding(PositionalBinding=$false)]
|
||||
Param(
|
||||
# Common settings
|
||||
[switch][Alias('bl')]$binaryLog,
|
||||
[string][Alias('c')]$configuration = "Release",
|
||||
[string][Alias('v')]$verbosity = "minimal",
|
||||
|
||||
# Actions
|
||||
[switch]$clean,
|
||||
[switch][Alias('h')]$help,
|
||||
|
||||
# Advanced settings
|
||||
[switch]$ci,
|
||||
[switch][Alias('cwb')]$cleanWhileBuilding,
|
||||
[switch][Alias('nobl')]$excludeCIBinarylog,
|
||||
[switch] $prepareMachine,
|
||||
[Parameter(ValueFromRemainingArguments=$true)][String[]]$properties
|
||||
)
|
||||
|
||||
function Get-Usage() {
|
||||
Write-Host "Common settings:"
|
||||
Write-Host " -binaryLog Output binary log (short: -bl)"
|
||||
Write-Host " -configuration <value> Build configuration: 'Debug' or 'Release' (short: -c). [Default: Release]"
|
||||
Write-Host " -verbosity <value> Msbuild verbosity: q[uiet], m[inimal], n[ormal], d[etailed], and diag[nostic] (short: -v)"
|
||||
Write-Host ""
|
||||
|
||||
Write-Host "Actions:"
|
||||
Write-Host " -clean Clean the solution"
|
||||
Write-Host " -help Print help and exit (short: -h)"
|
||||
Write-Host ""
|
||||
|
||||
Write-Host "Advanced settings:"
|
||||
Write-Host " -ci Set when running on CI server"
|
||||
Write-Host " -cleanWhileBuilding Cleans each repo after building (reduces disk space usage, short: -cwb)"
|
||||
Write-Host " -excludeCIBinarylog Don't output binary log (short: -nobl)"
|
||||
Write-Host " -prepareMachine Prepare machine for CI run, clean up processes after build"
|
||||
Write-Host ""
|
||||
}
|
||||
|
||||
. $PSScriptRoot\common\tools.ps1
|
||||
|
||||
# Set the NUGET_PACKAGES dir so that we don't accidentally pull some packages from the global location,
|
||||
# They should be pulled from the local feeds.
|
||||
$env:NUGET_PACKAGES="$RepoRoot\prereqs\packages\restored\"
|
||||
|
||||
if ($help) {
|
||||
Get-Usage
|
||||
exit 0
|
||||
}
|
||||
|
||||
$arguments=""
|
||||
if ($cleanWhileBuilding) {
|
||||
$arguments += " /p:CleanWhileBuilding=true"
|
||||
}
|
||||
|
||||
function Build {
|
||||
InitializeToolset
|
||||
|
||||
$bl = if ($binaryLog) { '/bl:' + (Join-Path $LogDir 'Build.binlog') } else { '' }
|
||||
$buildProj = Join-Path $RepoRoot 'build.proj'
|
||||
|
||||
MSBuild $buildProj `
|
||||
$bl `
|
||||
/p:Configuration=$configuration `
|
||||
$arguments `
|
||||
@properties
|
||||
}
|
||||
|
||||
try {
|
||||
if ($clean) {
|
||||
if (Test-Path $ArtifactsDir) {
|
||||
Remove-Item -Recurse -Force $ArtifactsDir
|
||||
Write-Host 'Artifacts directory deleted.'
|
||||
}
|
||||
exit 0
|
||||
}
|
||||
|
||||
|
||||
Build
|
||||
}
|
||||
catch {
|
||||
Write-Host $_.ScriptStackTrace
|
||||
Write-PipelineTelemetryError -Category 'Build' -Message $_
|
||||
ExitWithExitCode 1
|
||||
}
|
||||
|
||||
ExitWithExitCode 0
|
268
src/SourceBuild/content/eng/build.sourcebuild.targets
Normal file
268
src/SourceBuild/content/eng/build.sourcebuild.targets
Normal file
|
@ -0,0 +1,268 @@
|
|||
<Project>
|
||||
|
||||
<PropertyGroup>
|
||||
<SkipErrorOnPrebuilts>true</SkipErrorOnPrebuilts>
|
||||
<SmokeTestsDir>$([MSBuild]::NormalizeDirectory('$(RepoRoot)', 'test', 'Microsoft.DotNet.SourceBuild.SmokeTests'))</SmokeTestsDir>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup Condition="'$(EnablePoison)' == 'true'">
|
||||
<PoisonUsageReportFile>$(PackageReportDir)poison-usage.xml</PoisonUsageReportFile>
|
||||
</PropertyGroup>
|
||||
|
||||
<!-- Copies the output assets of the builds to the output path. -->
|
||||
<Target Name="CopyBinariesToBinFolder"
|
||||
AfterTargets="Build">
|
||||
<ItemGroup>
|
||||
<BinariesToCopy Include="$(SourceBuiltAssetsDir)*.*"
|
||||
Exclude="$(SourceBuiltAssetsDir)*.nupkg;$(SourceBuiltAssetsDir)*.requires_nupkg_signing" />
|
||||
</ItemGroup>
|
||||
|
||||
<Copy SourceFiles="@(BinariesToCopy)"
|
||||
DestinationFolder="$(SharedOutputPath)"
|
||||
SkipUnchangedFiles="true"
|
||||
Condition="'@(BinariesToCopy)'!=''" />
|
||||
</Target>
|
||||
|
||||
<!-- After building, generate a prebuilt usage report. -->
|
||||
<Target Name="ReportPrebuiltUsage"
|
||||
AfterTargets="Build"
|
||||
Condition="'$(SkipReportPrebuiltUsage)' != 'true'">
|
||||
<MSBuild Projects="$(RepoProjectsDir)$(RootRepo).proj" Targets="WritePrebuiltUsageData;ReportPrebuiltUsage" />
|
||||
</Target>
|
||||
|
||||
<Target Name="DiscoverSymbolsTarballs"
|
||||
AfterTargets="Build">
|
||||
<ItemGroup>
|
||||
<SymbolsTarball Include="$(SharedOutputPath)Symbols.*$(ArchiveExtension)" />
|
||||
</ItemGroup>
|
||||
</Target>
|
||||
|
||||
<Target Name="ExtractSymbolsTarballs"
|
||||
AfterTargets="Build"
|
||||
DependsOnTargets="DiscoverSymbolsTarballs"
|
||||
Outputs="%(SymbolsTarball.Identity)">
|
||||
|
||||
<PropertyGroup>
|
||||
<Filename>$([System.IO.Path]::GetFileName('%(SymbolsTarball.Identity)'))</Filename>
|
||||
<RepositoryName>$(Filename.Split('.')[1])</RepositoryName>
|
||||
<UnifiedSymbolsLayout>$(ArtifactsTmpDir)Symbols</UnifiedSymbolsLayout>
|
||||
<DestinationFolder>$(UnifiedSymbolsLayout)/$(RepositoryName)</DestinationFolder>
|
||||
</PropertyGroup>
|
||||
|
||||
<MakeDir Directories="$(DestinationFolder)" />
|
||||
<Exec Command="tar -xzf %(SymbolsTarball.Identity) -C $(DestinationFolder)"
|
||||
WorkingDirectory="$(SymbolsRoot)" />
|
||||
|
||||
<Delete Files="%(SymbolsTarball.Identity)" />
|
||||
</Target>
|
||||
|
||||
<!-- After building, repackage symbols into a single tarball. -->
|
||||
<Target Name="RepackageSymbols"
|
||||
AfterTargets="Build"
|
||||
DependsOnTargets="
|
||||
DetermineSourceBuiltSdkVersion;
|
||||
DiscoverSymbolsTarballs;
|
||||
ExtractSymbolsTarballs">
|
||||
<PropertyGroup>
|
||||
<UnifiedSymbolsTarball>$(SharedOutputPath)dotnet-symbols-all-$(SourceBuiltSdkVersion)-$(TargetRid)$(ArchiveExtension)</UnifiedSymbolsTarball>
|
||||
</PropertyGroup>
|
||||
|
||||
<Exec Command="tar --numeric-owner -czf $(UnifiedSymbolsTarball) *"
|
||||
WorkingDirectory="$(UnifiedSymbolsLayout)" />
|
||||
|
||||
<Message Importance="High" Text="Packaged all symbols in '$(UnifiedSymbolsTarball)'" />
|
||||
</Target>
|
||||
|
||||
<!-- After building, create the sdk symbols tarball. -->
|
||||
<UsingTask AssemblyFile="$(XPlatSourceBuildTasksAssembly)" TaskName="CreateSdkSymbolsLayout" />
|
||||
<Target Name="CreateSdkSymbolsTarball"
|
||||
AfterTargets="Build"
|
||||
DependsOnTargets="RepackageSymbols">
|
||||
<ItemGroup>
|
||||
<SdkTarballItem Include="$(SharedOutputPath)dotnet-sdk-*$(ArchiveExtension)" />
|
||||
</ItemGroup>
|
||||
|
||||
<PropertyGroup>
|
||||
<SdkSymbolsLayout>$(ArtifactsTmpDir)SdkSymbols</SdkSymbolsLayout>
|
||||
<SdkSymbolsTarball>$(SharedOutputPath)dotnet-symbols-sdk-$(SourceBuiltSdkVersion)-$(TargetRid)$(ArchiveExtension)</SdkSymbolsTarball>
|
||||
<SdkLayout>$(ArtifactsTmpDir)Sdk</SdkLayout>
|
||||
<SdkTarball>%(SdkTarballItem.Identity)</SdkTarball>
|
||||
</PropertyGroup>
|
||||
|
||||
<MakeDir Directories="$(SdkLayout)" />
|
||||
<Exec Command="tar -xzf $(SdkTarball) -C $(SdkLayout)"
|
||||
WorkingDirectory="$(SharedOutputPath)" />
|
||||
|
||||
<CreateSdkSymbolsLayout SdkLayoutPath="$(SdkLayout)"
|
||||
AllSymbolsPath="$(UnifiedSymbolsLayout)"
|
||||
SdkSymbolsLayoutPath="$(SdkSymbolsLayout)"
|
||||
FailOnMissingPDBs="false" />
|
||||
|
||||
<Exec Command="tar --numeric-owner -czf $(SdkSymbolsTarball) *"
|
||||
WorkingDirectory="$(SdkSymbolsLayout)" />
|
||||
|
||||
<Message Importance="High" Text="Packaged sdk symbols in '$(SdkSymbolsTarball)'" />
|
||||
|
||||
<RemoveDir Directories="$(UnifiedSymbolsLayout)" />
|
||||
<RemoveDir Directories="$(SdkSymbolsLayout)" />
|
||||
<RemoveDir Directories="$(SdkLayout)" />
|
||||
</Target>
|
||||
|
||||
<!--
|
||||
Dev scenario: rewrite a prebuilt-report. This makes it easy to add data to an existing
|
||||
prebuilt report without performing another full build. This doesn't reevalutate which packages
|
||||
are prebuilts or search the projects: it uses the existing usage.xml file to generate report
|
||||
XMLs based on the info put in artifacts/.
|
||||
-->
|
||||
<Target Name="RewritePrebuiltUsageReport">
|
||||
<MSBuild Projects="$(RepoProjectsDir)$(RootRepo).proj"
|
||||
Targets="ReportPrebuiltUsage" />
|
||||
</Target>
|
||||
|
||||
<UsingTask AssemblyFile="$(LeakDetectionTasksAssembly)" TaskName="CheckForPoison" Condition="'$(EnablePoison)' == 'true'" />
|
||||
<Target Name="ReportPoisonUsage"
|
||||
AfterTargets="Build"
|
||||
Condition="'$(EnablePoison)' == 'true'"
|
||||
Inputs="$(MSBuildProjectFullPath)"
|
||||
Outputs="$(BaseIntermediateOutputPath)ReportPoisonUsage.complete" >
|
||||
<ItemGroup>
|
||||
<FinalCliTarball Include="$(SharedOutputPath)**/*$(ArchiveExtension)" />
|
||||
</ItemGroup>
|
||||
|
||||
<Message Importance="High" Text="[$([System.DateTime]::Now.ToString('HH:mm:ss.ff'))] Checking @(FinalCliTarball) for poisoned files." />
|
||||
|
||||
<ItemGroup>
|
||||
<NonShippingPackagesList Include="$(PackageListsDir)**/$(NonShippingPackagesListPrefix)*" />
|
||||
</ItemGroup>
|
||||
|
||||
<CheckForPoison FilesToCheck="@(FinalCliTarball)"
|
||||
ProjectDirPath="$(RepoRoot)"
|
||||
HashCatalogFilePath="$(PoisonReportDataFile)"
|
||||
MarkerFileName="$(PoisonMarkerFile)"
|
||||
PoisonReportOutputFilePath="$(PoisonUsageReportFile)"
|
||||
NonShippingPackagesListFiles="@(NonShippingPackagesList)" />
|
||||
|
||||
<Message Importance="High" Text="[$([System.DateTime]::Now.ToString('HH:mm:ss.ff'))] Done checking for poison." />
|
||||
|
||||
<MakeDir Directories="$(BaseIntermediateOutputPath)" />
|
||||
<Touch Files="$(BaseIntermediateOutputPath)ReportPoisonUsage.complete" AlwaysCreate="true">
|
||||
<Output TaskParameter="TouchedFiles" ItemName="FileWrites" />
|
||||
</Touch>
|
||||
</Target>
|
||||
|
||||
<UsingTask AssemblyFile="$(XPlatSourceBuildTasksAssembly)" TaskName="WriteUsageBurndownData" />
|
||||
<Target Name="GeneratePrebuiltBurndownData"
|
||||
Inputs="$(MSBuildProjectFullPath)"
|
||||
Outputs="$(BaseIntermediateOutputPath)GeneratePrebuiltBurndownData.complete" >
|
||||
<PropertyGroup>
|
||||
<PrebuiltBurndownDataFile>$(PackageReportDir)PrebuiltBurndownData.csv</PrebuiltBurndownDataFile>
|
||||
</PropertyGroup>
|
||||
|
||||
<WriteUsageBurndownData RootDirectory="$(RepoRoot)"
|
||||
PrebuiltBaselineFile="$(BaselineDataFile)"
|
||||
OutputFilePath="$(PrebuiltBurndownDataFile)" />
|
||||
|
||||
<MakeDir Directories="$(BaseIntermediateOutputPath)" />
|
||||
<Touch Files="$(BaseIntermediateOutputPath)GeneratePrebuiltBurndownData.complete" AlwaysCreate="true">
|
||||
<Output TaskParameter="TouchedFiles" ItemName="FileWrites" />
|
||||
</Touch>
|
||||
</Target>
|
||||
|
||||
<Target Name="RunSmokeTest">
|
||||
<ItemGroup>
|
||||
<SdkTarballItem Include="$(SharedOutputPath)**/dotnet-sdk*$(ArchiveExtension)" />
|
||||
<SourceBuiltArtifactsItem Include="$(SharedOutputPath)**/$(SourceBuiltArtifactsTarballName).*$(ArchiveExtension)" />
|
||||
</ItemGroup>
|
||||
|
||||
<PropertyGroup>
|
||||
<CustomTestEnvVars Condition="'$(EnablePoison)' == 'true'">SMOKE_TESTS_POISON_REPORT_PATH=$(PoisonUsageReportFile);</CustomTestEnvVars>
|
||||
<SdkTarballPath>%(SdkTarballItem.Identity)</SdkTarballPath>
|
||||
<SourceBuiltArtifactsPath>%(SourceBuiltArtifactsItem.Identity)</SourceBuiltArtifactsPath>
|
||||
<SmokeTestConsoleVerbosity Condition="'$(SmokeTestConsoleVerbosity)' == ''">normal</SmokeTestConsoleVerbosity>
|
||||
</PropertyGroup>
|
||||
|
||||
<!-- Multiple loggers are specified so that results are captured in trx and pipelines can fail with AzDO pipeline warnings -->
|
||||
<!-- Workaround https://github.com/dotnet/source-build/issues/4003 by disabling VSTestUseMSBuildOutput -->
|
||||
<Exec Command="$(DotnetTool) test $(SmokeTestsDir) --logger:trx --logger:'console;verbosity=$(SmokeTestConsoleVerbosity)' -c $(Configuration) -p:VSTestUseMSBuildOutput=false"
|
||||
IgnoreStandardErrorWarningFormat="true"
|
||||
EnvironmentVariables="
|
||||
SMOKE_TESTS_SDK_TARBALL_PATH=$(SdkTarballPath);
|
||||
SMOKE_TESTS_SOURCEBUILT_ARTIFACTS_PATH=$(SourceBuiltArtifactsPath);
|
||||
SMOKE_TESTS_TARGET_RID=$(TargetRid);
|
||||
SMOKE_TESTS_PORTABLE_RID=$(PortableRid);
|
||||
SMOKE_TESTS_CUSTOM_PACKAGES_PATH=$(CustomSourceBuiltPackagesPath);
|
||||
$(CustomTestEnvVars)" />
|
||||
</Target>
|
||||
|
||||
<Target Name="CreateSmokeTestPrereqsTarball"
|
||||
AfterTargets="RunSmokeTest"
|
||||
Condition="'$(SkipSmokeTestPrereqsTarballCreation)' != 'true'"
|
||||
DependsOnTargets="
|
||||
CheckIfCreateSmokeTestPrereqsExistToPack;
|
||||
CreateSmokeTestPrereqsTarballIfPrereqsExist"/>
|
||||
|
||||
<Target Name="CheckIfCreateSmokeTestPrereqsExistToPack">
|
||||
<PropertyGroup>
|
||||
<SmokeTestsArtifactsDir>$(SmokeTestsDir)bin/$(Configuration)/$(NetCurrent)/</SmokeTestsArtifactsDir>
|
||||
<SmokeTestsPackagesDir>$(SmokeTestsArtifactsDir)packages/</SmokeTestsPackagesDir>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<SmokeTestsPrereqs Include="$(SmokeTestsPackagesDir)**/*.nupkg" />
|
||||
</ItemGroup>
|
||||
|
||||
<Message Text="Found @(SmokeTestsPrereqs->Count()) prereqs in '$(SmokeTestsPackagesDir)'." Importance="High" />
|
||||
</Target>
|
||||
|
||||
<Target Name="CreateSmokeTestPrereqsTarballIfPrereqsExist"
|
||||
DependsOnTargets="DetermineSourceBuiltSdkVersion"
|
||||
Condition="'@(SmokeTestsPrereqs->Count())' != '0'">
|
||||
<PropertyGroup>
|
||||
<SmokeTestPrereqsTarballName>$(SharedOutputPath)dotnet-smoke-test-prereqs.$(SourceBuiltSdkVersion).$(TargetRid)$(ArchiveExtension)</SmokeTestPrereqsTarballName>
|
||||
<SmokeTestsPrereqPackagesDir>$(SmokeTestsArtifactsDir)prereq-packages/</SmokeTestsPrereqPackagesDir>
|
||||
</PropertyGroup>
|
||||
|
||||
<Copy SourceFiles="@(SmokeTestsPrereqs)"
|
||||
DestinationFolder="$(SmokeTestsPrereqPackagesDir)" />
|
||||
|
||||
<Exec Command="tar --numeric-owner -czf $(SmokeTestPrereqsTarballName) ."
|
||||
WorkingDirectory="$(SmokeTestsPrereqPackagesDir)"/>
|
||||
|
||||
<Message Importance="High" Text="Packaged smoke-test prereqs in '$(SmokeTestPrereqsTarballName)'" />
|
||||
</Target>
|
||||
|
||||
<Target Name="CreatePrebuiltsTarball"
|
||||
AfterTargets="Build"
|
||||
DependsOnTargets="
|
||||
CheckIfPrebuiltsExistToPack;
|
||||
CreatePrebuiltsTarballIfPrebuiltsExist;
|
||||
ErrorOnPrebuilts"/>
|
||||
|
||||
<Target Name="CheckIfPrebuiltsExistToPack">
|
||||
<!-- Directory existence doesn't mean there are files inside. Use a pattern to find files. -->
|
||||
<ItemGroup>
|
||||
<PrebuiltFile Include="$(ResultingPrebuiltPackagesDir)**" />
|
||||
</ItemGroup>
|
||||
|
||||
<Message Text="Found @(PrebuiltFile->Count()) files in prebuilt packages dir." Importance="High" />
|
||||
</Target>
|
||||
|
||||
<Target Name="CreatePrebuiltsTarballIfPrebuiltsExist"
|
||||
DependsOnTargets="DetermineSourceBuiltSdkVersion"
|
||||
Condition="'@(PrebuiltFile->Count())' != '0'">
|
||||
<PropertyGroup>
|
||||
<TarballFilePath>$(SharedOutputPath)$(SourceBuiltPrebuiltsTarballName).$(SourceBuiltSdkVersion).$(TargetRid)$(ArchiveExtension)</TarballFilePath>
|
||||
<TarballWorkingDir>$(ResultingPrebuiltPackagesDir)</TarballWorkingDir>
|
||||
</PropertyGroup>
|
||||
|
||||
<Exec Command="tar --numeric-owner -zcf $(TarballFilePath) -C $(TarballWorkingDir) ." />
|
||||
|
||||
<Message Text="Tarball '$(TarballFilePath)' was successfully created from '$(TarballWorkingDir)'" Importance="High" />
|
||||
</Target>
|
||||
|
||||
<Target Name="ErrorOnPrebuilts"
|
||||
Condition="'@(PrebuiltFile->Count())' != '0' AND '$(SkipErrorOnPrebuilts)' != 'true'">
|
||||
<Error Text="@(PrebuiltFile->Count()) Prebuilts Exist" />
|
||||
</Target>
|
||||
|
||||
</Project>
|
|
@ -1,41 +0,0 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
# This script installs the NuGet Credential Provider. It is intended for use on CI machines only.
|
||||
|
||||
# Originally copied from https://github.com/dotnet/core-setup/blob/aa28510afc9b986c6837db6784d816fe4a66c7d0/eng/install-nuget-credprovider.sh
|
||||
|
||||
set -e
|
||||
|
||||
# Install curl if necessary. Dependency exists inside downloaded script.
|
||||
if command -v curl > /dev/null; then
|
||||
echo "curl found."
|
||||
else
|
||||
echo "curl not found, trying to install..."
|
||||
(
|
||||
set +e
|
||||
set -x
|
||||
|
||||
apt update && apt install -y curl
|
||||
|
||||
apk update && apk upgrade && apk add curl
|
||||
|
||||
exit 0
|
||||
)
|
||||
fi
|
||||
|
||||
# Install. Ported from https://gist.github.com/shubham90/ad85f2546a72caa20d57bce03ec3890f
|
||||
install_credprovider() {
|
||||
# Download the provider and install.
|
||||
cred_provider_url='https://raw.githubusercontent.com/Microsoft/artifacts-credprovider/master/helpers/installcredprovider.sh'
|
||||
curl "$cred_provider_url" -s -S -L | bash
|
||||
|
||||
# Environment variable to enable session token cache. More on this here: https://github.com/Microsoft/artifacts-credprovider#help
|
||||
export NUGET_CREDENTIALPROVIDER_SESSIONTOKENCACHE_ENABLED=true
|
||||
}
|
||||
|
||||
install_credprovider
|
||||
|
||||
# Additional setup to try to avoid flakiness: https://github.com/dotnet/arcade/issues/3932
|
||||
export DOTNET_SYSTEM_NET_HTTP_USESOCKETSHTTPHANDLER=0
|
||||
export NUGET_PLUGIN_HANDSHAKE_TIMEOUT_IN_SECONDS=20
|
||||
export NUGET_PLUGIN_REQUEST_TIMEOUT_IN_SECONDS=20
|
27
src/SourceBuild/content/eng/pipelines/ci-crossbuild.yml
Normal file
27
src/SourceBuild/content/eng/pipelines/ci-crossbuild.yml
Normal file
|
@ -0,0 +1,27 @@
|
|||
# This is the dotnet/dotnet pipeline that is triggered every weekday at midnight PST (08:00 UTC) for "main" and when changes are pushed to release/* and internal/release/* branches.
|
||||
|
||||
schedules:
|
||||
- cron: '0 8 * * Mon-Fri'
|
||||
displayName: Weekday midnight build
|
||||
branches:
|
||||
include:
|
||||
- main
|
||||
batch: true
|
||||
|
||||
trigger:
|
||||
batch: true
|
||||
branches:
|
||||
include:
|
||||
- release/*
|
||||
- internal/release/*
|
||||
|
||||
pr: none
|
||||
|
||||
stages:
|
||||
- ${{ if ne(variables['Build.Reason'], 'Schedule') }}:
|
||||
- template: templates/stages/vmr-scan.yml
|
||||
|
||||
- template: /src/installer/eng/pipelines/templates/stages/vmr-cross-build.yml
|
||||
parameters:
|
||||
isBuiltFromVmr: true
|
||||
isLiteBuild: false
|
|
@ -18,8 +18,7 @@ trigger:
|
|||
pr: none
|
||||
|
||||
stages:
|
||||
- ${{ if ne(variables['Build.Reason'], 'Schedule') }}:
|
||||
- template: templates/stages/vmr-scan.yml
|
||||
- template: templates/stages/vmr-scan.yml
|
||||
|
||||
- template: /src/installer/eng/pipelines/templates/stages/vmr-build.yml
|
||||
parameters:
|
||||
|
|
|
@ -28,7 +28,7 @@ stages:
|
|||
- script: |
|
||||
set -e
|
||||
sha=`./.dotnet/dotnet darc vmr get-version --vmr "$(Build.SourcesDirectory)" installer`
|
||||
echo "##vso[build.addbuildtag]installer-$sha"
|
||||
echo "##vso[build.addbuildtag]$sha"
|
||||
displayName: Tag the build
|
||||
workingDirectory: $(Build.SourcesDirectory)/src/installer
|
||||
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
<!--
|
||||
Do not import the Arcade SDK for the local tooling projects. This lets us
|
||||
build them with just the .NET Core SDK, simplifying the build.
|
||||
build them with just the .NET SDK, simplifying the build.
|
||||
-->
|
||||
<PropertyGroup>
|
||||
<SkipArcadeSdkImport>true</SkipArcadeSdkImport>
|
||||
|
|
|
@ -1,47 +1,49 @@
|
|||
<Project>
|
||||
<Import Project="Sdk.props" Sdk="Microsoft.NET.Sdk" />
|
||||
<Project Sdk="Microsoft.Build.NoTargets">
|
||||
|
||||
<Target Name="Build">
|
||||
<PropertyGroup>
|
||||
<TargetFramework>$(NetCurrent)</TargetFramework>
|
||||
</PropertyGroup>
|
||||
|
||||
<Target Name="GenerateGraphViz"
|
||||
AfterTargets="Build">
|
||||
<ItemGroup>
|
||||
<AllRepoProjects
|
||||
Include="$(ProjectDir)repo-projects\*.proj"
|
||||
Exclude="$(ProjectDir)repo-projects\dotnet.proj" />
|
||||
<RepoProject Include="$(RepoProjectsDir)*.proj"
|
||||
Exclude="$(RepoProjectsDir)dotnet.proj;
|
||||
$(RepoProjectsDir)package-source-build.proj" />
|
||||
</ItemGroup>
|
||||
|
||||
<MSBuild
|
||||
Projects="@(AllRepoProjects)"
|
||||
Targets="GetRepositoryReferences">
|
||||
<Output TaskParameter="TargetOutputs" ItemName="RepoReferences" />
|
||||
<MSBuild Projects="@(RepoProject)"
|
||||
Targets="GetRepositoryReferences">
|
||||
<Output TaskParameter="TargetOutputs" ItemName="RepoReference" />
|
||||
</MSBuild>
|
||||
|
||||
<ItemGroup>
|
||||
<RepoLink Include="%(RepoReferences.MSBuildSourceProjectFile)" SourceRepo="%(RepoReferences.Identity)" />
|
||||
<RepoLink Include="%(RepoReference.MSBuildSourceProjectFile)" SourceRepo="%(RepoReference.Identity)" />
|
||||
<RepoLink TargetRepo="%(Filename)" />
|
||||
<RepoLink Text=""%(SourceRepo)" -> "%(TargetRepo)"" />
|
||||
</ItemGroup>
|
||||
|
||||
<PropertyGroup>
|
||||
<GraphVizFile>$(BaseIntermediatePath)graphviz.dot</GraphVizFile>
|
||||
<GraphVizPngFile>$(BaseIntermediatePath)graphviz.png</GraphVizPngFile>
|
||||
<GraphVizFile>$(BaseIntermediateOutputPath)graphviz.dot</GraphVizFile>
|
||||
<GraphVizPngFile>$(BaseIntermediateOutputPath)graphviz.png</GraphVizPngFile>
|
||||
<GraphVizContent>digraph {
|
||||
graph [ dpi = 150 ]
|
||||
@(RepoLink -> '%(Text)')
|
||||
}</GraphVizContent>
|
||||
</PropertyGroup>
|
||||
|
||||
<WriteLinesToFile
|
||||
Lines="$(GraphVizContent)"
|
||||
File="$(GraphVizFile)"
|
||||
Overwrite="True" />
|
||||
<WriteLinesToFile Lines="$(GraphVizContent)"
|
||||
File="$(GraphVizFile)"
|
||||
Overwrite="True" />
|
||||
|
||||
<Message Importance="High" Text="$(MSBuildProjectName) -> $(GraphVizFile)" />
|
||||
<Message Text="$(MSBuildProjectName) -> $(GraphVizFile)" Importance="High" />
|
||||
|
||||
<Exec
|
||||
Condition="'$(GraphVizDir)' != ''"
|
||||
Command="$([MSBuild]::NormalizePath('$(GraphVizDir)', 'dot')) $(GraphVizFile) -Tpng:cairo -o $(GraphVizPngFile)" />
|
||||
<Exec Command="$([MSBuild]::NormalizePath('$(GraphVizDir)', 'dot')) $(GraphVizFile) -Tpng:cairo -o $(GraphVizPngFile)"
|
||||
Condition="'$(GraphVizDir)' != ''" />
|
||||
|
||||
<Message Condition="'$(GraphVizDir)' != ''" Importance="High" Text="$(MSBuildProjectName) -> $(GraphVizPngFile)" />
|
||||
<Message Text="$(MSBuildProjectName) -> $(GraphVizPngFile)"
|
||||
Importance="High"
|
||||
Condition="'$(GraphVizDir)' != ''" />
|
||||
</Target>
|
||||
|
||||
<Import Project="Sdk.targets" Sdk="Microsoft.NET.Sdk" />
|
||||
</Project>
|
||||
|
|
|
@ -1,47 +1,35 @@
|
|||
<Project>
|
||||
|
||||
<Import Project="Sdk.props" Sdk="Microsoft.NET.Sdk" />
|
||||
|
||||
<PropertyGroup>
|
||||
<!-- Fake, to satisfy the SDK. -->
|
||||
<TargetFramework>netstandard2.0</TargetFramework>
|
||||
<DisableImplicitFrameworkReferences>true</DisableImplicitFrameworkReferences>
|
||||
</PropertyGroup>
|
||||
|
||||
<Import Project="Sdk.targets" Sdk="Microsoft.NET.Sdk" />
|
||||
|
||||
<Import Project="$(GitInfoAllRepoPropsFile)" />
|
||||
|
||||
<UsingTask AssemblyFile="$(LeakDetectionTasksAssembly)" TaskName="MarkAndCatalogPackages" />
|
||||
<UsingTask AssemblyFile="$(XPlatSourceBuildTasksAssembly)" TaskName="ZipFileExtractToDirectory" />
|
||||
<UsingTask AssemblyFile="$(XPlatSourceBuildTasksAssembly)" TaskName="ReplaceTextInFile" />
|
||||
|
||||
<ItemGroup>
|
||||
<BuildTasksTarget Include="Restore;Build;InstallResolver" />
|
||||
</ItemGroup>
|
||||
|
||||
<PropertyGroup>
|
||||
<BuildTasksOfflineSources>$(ReferencePackagesDir)%3B$(PrebuiltPackagesPath)%3B$(PrebuiltSourceBuiltPackagesPath)</BuildTasksOfflineSources>
|
||||
</PropertyGroup>
|
||||
|
||||
<Target Name="Build">
|
||||
<CallTarget Targets="
|
||||
<Target Name="Build"
|
||||
DependsOnTargets="
|
||||
UnpackTarballs;
|
||||
BuildXPlatTasks;
|
||||
BuildMSBuildSdkResolver;
|
||||
BuildLeakDetection;
|
||||
ExtractToolPackage;
|
||||
GenerateRootFs;
|
||||
PoisonPrebuiltPackages" />
|
||||
</Target>
|
||||
|
||||
<Target Name="PrepareOfflineLocalTools"
|
||||
DependsOnTargets="
|
||||
ExtractToolPackage;
|
||||
BuildXPlatTasks" />
|
||||
|
||||
<Target Name="Clean">
|
||||
<Delete Files="$(CompletedSemaphorePath)*.*" />
|
||||
</Target>
|
||||
|
||||
<Target Name="UnpackTarballs"
|
||||
Condition="'$(DotNetBuildSourceOnly)' == 'true'"
|
||||
Inputs="$(MSBuildProjectFullPath)"
|
||||
Outputs="$(CompletedSemaphorePath)UnpackTarballs.complete" >
|
||||
Outputs="$(BaseIntermediateOutputPath)UnpackTarballs.complete" >
|
||||
<PropertyGroup>
|
||||
<ExternalTarballsDir>$([MSBuild]::NormalizeDirectory('$(PrereqsPackagesDir)', 'archive'))</ExternalTarballsDir>
|
||||
</PropertyGroup>
|
||||
|
||||
<MakeDir Directories="$(PrebuiltSourceBuiltPackagesPath)" Condition="'$(CustomPrebuiltSourceBuiltPackagesPath)' == ''" />
|
||||
<Exec Command="tar -xzf $(ExternalTarballsDir)$(SourceBuiltArtifactsTarballName).*.tar.gz"
|
||||
<Exec Command="tar -xzf $(ExternalTarballsDir)$(SourceBuiltArtifactsTarballName).*$(ArchiveExtension)"
|
||||
WorkingDirectory="$(PrebuiltSourceBuiltPackagesPath)"
|
||||
Condition="'$(CustomPrebuiltSourceBuiltPackagesPath)' == ''" />
|
||||
|
||||
|
@ -50,99 +38,124 @@
|
|||
the build to be working without prebuilts.
|
||||
-->
|
||||
<ItemGroup>
|
||||
<SourceBuiltPrebuiltsTarballFile Include="$(ExternalTarballsDir)$(SourceBuiltPrebuiltsTarballName).*.tar.gz" />
|
||||
<SourceBuiltPrebuiltsTarballFile Include="$(ExternalTarballsDir)$(SourceBuiltPrebuiltsTarballName).*$(ArchiveExtension)" />
|
||||
</ItemGroup>
|
||||
<Exec Command="tar -xzf %(SourceBuiltPrebuiltsTarballFile.FullPath)"
|
||||
WorkingDirectory="$(PrebuiltPackagesPath)"
|
||||
Condition="'@(SourceBuiltPrebuiltsTarballFile)' != ''" />
|
||||
|
||||
<!-- Copy SBRP packages to reference packages location -->
|
||||
<MakeDir Directories="$(ReferencePackagesDir)" />
|
||||
<ItemGroup>
|
||||
<UnpackedSourceBuildReferencePackages Include="$(PrebuiltSourceBuiltPackagesPath)SourceBuildReferencePackages/*"/>
|
||||
</ItemGroup>
|
||||
|
||||
<Copy SourceFiles="@(UnpackedSourceBuildReferencePackages)" DestinationFiles="$(ReferencePackagesDir)%(Filename)%(Extension)" />
|
||||
|
||||
<WriteLinesToFile File="$(CompletedSemaphorePath)UnpackTarballs.complete" Overwrite="true" />
|
||||
<MakeDir Directories="$(BaseIntermediateOutputPath)" />
|
||||
<Touch Files="$(BaseIntermediateOutputPath)UnpackTarballs.complete" AlwaysCreate="true">
|
||||
<Output TaskParameter="TouchedFiles" ItemName="FileWrites" />
|
||||
</Touch>
|
||||
</Target>
|
||||
|
||||
<Target Name="BuildXPlatTasks"
|
||||
<!-- Build the custom msbuild sdk resolver. -->
|
||||
<Target Name="BuildMSBuildSdkResolver"
|
||||
DependsOnTargets="UnpackTarballs"
|
||||
Inputs="$(MSBuildProjectFullPath)"
|
||||
Outputs="$(CompletedSemaphorePath)BuildXPlatTasks.complete">
|
||||
<PropertyGroup>
|
||||
<XPlatTaskProjects>tasks\Microsoft.DotNet.SourceBuild.Tasks.XPlat\Microsoft.DotNet.SourceBuild.Tasks.XPlat.csproj;tasks\SourceBuild.MSBuildSdkResolver\SourceBuild.MSBuildSdkResolver.csproj</XPlatTaskProjects>
|
||||
</PropertyGroup>
|
||||
<MSBuild
|
||||
Projects="$(XPlatTaskProjects)"
|
||||
Targets="%(BuildTasksTarget.Identity)"
|
||||
SkipNonexistentTargets="true"
|
||||
Properties="
|
||||
RestoreSources=$(BuildTasksOfflineSources);
|
||||
__ToolInitPhase=%(BuildTasksTarget.Identity)" />
|
||||
Outputs="$(BaseIntermediateOutputPath)BuildMSBuildSdkResolver.complete">
|
||||
<MSBuild Projects="tasks\SourceBuild.MSBuildSdkResolver\SourceBuild.MSBuildSdkResolver.csproj"
|
||||
Targets="Restore"
|
||||
Properties="MSBuildRestoreSessionId=$([System.Guid]::NewGuid())" />
|
||||
|
||||
<WriteLinesToFile File="$(CompletedSemaphorePath)BuildXPlatTasks.complete" Overwrite="true" />
|
||||
<MSBuild Projects="tasks\SourceBuild.MSBuildSdkResolver\SourceBuild.MSBuildSdkResolver.csproj"
|
||||
Targets="Build;InstallResolver" />
|
||||
|
||||
<MakeDir Directories="$(BaseIntermediateOutputPath)" />
|
||||
<Touch Files="$(BaseIntermediateOutputPath)BuildMSBuildSdkResolver.complete" AlwaysCreate="true">
|
||||
<Output TaskParameter="TouchedFiles" ItemName="FileWrites" />
|
||||
</Touch>
|
||||
</Target>
|
||||
|
||||
<!-- Build msbuild tasks. -->
|
||||
<Target Name="BuildXPlatTasks"
|
||||
DependsOnTargets="UnpackTarballs;BuildMSBuildSdkResolver"
|
||||
Inputs="$(MSBuildProjectFullPath)"
|
||||
Outputs="$(BaseIntermediateOutputPath)BuildXPlatTasks.complete">
|
||||
<MSBuild Projects="tasks\Microsoft.DotNet.SourceBuild.Tasks.XPlat\Microsoft.DotNet.SourceBuild.Tasks.XPlat.csproj"
|
||||
Targets="Restore"
|
||||
Properties="MSBuildRestoreSessionId=$([System.Guid]::NewGuid())" />
|
||||
|
||||
<MSBuild Projects="tasks\Microsoft.DotNet.SourceBuild.Tasks.XPlat\Microsoft.DotNet.SourceBuild.Tasks.XPlat.csproj"
|
||||
Targets="Build" />
|
||||
|
||||
<MakeDir Directories="$(BaseIntermediateOutputPath)" />
|
||||
<Touch Files="$(BaseIntermediateOutputPath)BuildXPlatTasks.complete" AlwaysCreate="true">
|
||||
<Output TaskParameter="TouchedFiles" ItemName="FileWrites" />
|
||||
</Touch>
|
||||
</Target>
|
||||
|
||||
<!-- Build msbuild tasks for the poisoning feature. -->
|
||||
<Target Name="BuildLeakDetection"
|
||||
DependsOnTargets="ExtractToolPackage"
|
||||
DependsOnTargets="ExtractToolPackage;BuildMSBuildSdkResolver"
|
||||
Inputs="$(MSBuildProjectFullPath)"
|
||||
Outputs="$(CompletedSemaphorePath)BuildLeakDetection.complete"
|
||||
Outputs="$(BaseIntermediateOutputPath)BuildLeakDetection.complete"
|
||||
Condition="'$(EnablePoison)' == 'true'">
|
||||
<MSBuild Projects="tasks\Microsoft.DotNet.SourceBuild.Tasks.LeakDetection\Microsoft.DotNet.SourceBuild.Tasks.LeakDetection.csproj"
|
||||
Targets="Restore"
|
||||
Properties="MSBuildRestoreSessionId=$([System.Guid]::NewGuid())" />
|
||||
|
||||
<MSBuild Projects="tasks\Microsoft.DotNet.SourceBuild.Tasks.LeakDetection\Microsoft.DotNet.SourceBuild.Tasks.LeakDetection.csproj"
|
||||
Targets="Build" />
|
||||
|
||||
<MakeDir Directories="$(BaseIntermediateOutputPath)" />
|
||||
<Touch Files="$(BaseIntermediateOutputPath)BuildLeakDetection.complete" AlwaysCreate="true">
|
||||
<Output TaskParameter="TouchedFiles" ItemName="FileWrites" />
|
||||
</Touch>
|
||||
</Target>
|
||||
|
||||
<Target Name="GenerateRootFs"
|
||||
Condition="'$(BuildOS)' != 'windows' and '$(CrossBuild)' == 'true' and '$(ROOTFS_DIR)' == ''">
|
||||
<PropertyGroup>
|
||||
<LeakDetectionProjects>tasks\Microsoft.DotNet.SourceBuild.Tasks.LeakDetection\Microsoft.DotNet.SourceBuild.Tasks.LeakDetection.csproj</LeakDetectionProjects>
|
||||
<ArmEnvironmentVariables Condition="'$(ArmEnvironmentVariables)' == ''">ROOTFS_DIR=$(ArtifactsObjDir)crossrootfs/arm</ArmEnvironmentVariables>
|
||||
<ArmEnvironmentVariables Condition="'$(Platform)' == 'armel'">ROOTFS_DIR=$(ArtifactsObjDir)crossrootfs/armel</ArmEnvironmentVariables>
|
||||
</PropertyGroup>
|
||||
<MSBuild
|
||||
Projects="$(LeakDetectionProjects)"
|
||||
Targets="%(BuildTasksTarget.Identity)"
|
||||
SkipNonexistentTargets="true"
|
||||
Properties="
|
||||
RestoreSources=$(BuildTasksOfflineSources);
|
||||
__ToolInitPhase=%(BuildTasksTarget.Identity)" />
|
||||
|
||||
<WriteLinesToFile File="$(CompletedSemaphorePath)BuildLeakDetection.complete" Overwrite="true" />
|
||||
</Target>
|
||||
|
||||
<Target Name="GenerateRootFs" Condition="'$(OS)' != 'Windows_NT'">
|
||||
<Exec Condition="$(Platform.Contains('arm')) AND '$(Platform)' != 'armel' AND '$(BuildArchitecture)' != 'arm64' AND '$(BuildArchitecture)' != 'arm'" Command="$(ArmEnvironmentVariables) $(ProjectDir)cross/build-rootfs.sh" />
|
||||
<Exec Condition="'$(Platform)' == 'armel'" Command="$(ArmEnvironmentVariables) $(ProjectDir)cross/armel/tizen-build-rootfs.sh" />
|
||||
<Exec Command="$(ArmEnvironmentVariables) $(RepositoryEngineeringDir)common/cross/build-rootfs.sh"
|
||||
Condition="'$(TargetArchitecture)' != 'armel' and '$(BuildArchitecture)' != '$(TargetArchitecture)'" />
|
||||
<Exec Command="$(ArmEnvironmentVariables) $(RepositoryEngineeringDir)common/cross/armel/tizen-build-rootfs.sh"
|
||||
Condition="'$(TargetArchitecture)' == 'armel'" />
|
||||
</Target>
|
||||
|
||||
<!-- Extract Arcade prebuilt package into the bootstrap folder and prepare it. -->
|
||||
<Target Name="ExtractToolPackage"
|
||||
DependsOnTargets="UnpackTarballs;BuildXPlatTasks"
|
||||
Condition="'$(DotNetBuildSourceOnly)' == 'true'"
|
||||
DependsOnTargets="UnpackTarballs"
|
||||
Inputs="$(MSBuildProjectFullPath)"
|
||||
Outputs="$(CompletedSemaphorePath)ExtractToolPackage.complete">
|
||||
<ZipFileExtractToDirectory SourceArchive="$(PrebuiltSourceBuiltPackagesPath)Microsoft.DotNet.Arcade.Sdk.$(ARCADE_BOOTSTRAP_VERSION).nupkg"
|
||||
DestinationDirectory="$(ArcadeBootstrapPackageDir)microsoft.dotnet.arcade.sdk/$(ARCADE_BOOTSTRAP_VERSION)/"
|
||||
OverwriteDestination="true" />
|
||||
Outputs="$(BaseIntermediateOutputPath)ExtractToolPackage.complete">
|
||||
<Unzip SourceFiles="$(PrebuiltSourceBuiltPackagesPath)Microsoft.DotNet.Arcade.Sdk.$(ARCADE_BOOTSTRAP_VERSION).nupkg"
|
||||
DestinationFolder="$(ArcadeBootstrapPackageDir)microsoft.dotnet.arcade.sdk/$(ARCADE_BOOTSTRAP_VERSION)/"
|
||||
SkipUnchangedFiles="true" />
|
||||
|
||||
<!-- TODO: When unpacking using ZipFileExtractToDirectory, this executable file has the wrong
|
||||
permissions. See https://github.com/dotnet/source-build/issues/2259 -->
|
||||
<!-- When unpacking, this executable file has the wrong permissions on
|
||||
non-windows systems: https://github.com/NuGet/Home/issues/13121. -->
|
||||
<Exec Command="chmod 755 git-clone-to-dir.sh"
|
||||
WorkingDirectory="$(ArcadeBootstrapPackageDir)microsoft.dotnet.arcade.sdk/$(ARCADE_BOOTSTRAP_VERSION)/tools/SourceBuild/" />
|
||||
|
||||
<ReplaceTextInFile InputFile="$(ArcadeBootstrapPackageDir)microsoft.dotnet.arcade.sdk/$(ARCADE_BOOTSTRAP_VERSION)/tools/SourceBuild/SourceBuildArcadeTools.targets"
|
||||
OldText="%3CReadSourceBuildIntermediateNupkgDependencies"
|
||||
NewText="%3CReadSourceBuildIntermediateNupkgDependencies Condition="'%24%28DotNetBuildOffline%29' != 'true'"" />
|
||||
|
||||
<!-- Allow overriding of Arcade targets for SourceBuild to enable quicker
|
||||
dev turnaround for Preview 6 -->
|
||||
<ItemGroup>
|
||||
<OverrideArcadeFiles Include="$(ArcadeOverridesDir)**/*" />
|
||||
</ItemGroup>
|
||||
|
||||
<Copy
|
||||
SourceFiles="@(OverrideArcadeFiles)"
|
||||
DestinationFiles="$(ArcadeBootstrapPackageDir)microsoft.dotnet.arcade.sdk/$(ARCADE_BOOTSTRAP_VERSION)/tools/SourceBuild/%(RecursiveDir)%(Filename)%(Extension)" />
|
||||
|
||||
<WriteLinesToFile File="$(CompletedSemaphorePath)ExtractToolPackage.complete" Overwrite="true" />
|
||||
<MakeDir Directories="$(BaseIntermediateOutputPath)" />
|
||||
<Touch Files="$(BaseIntermediateOutputPath)ExtractToolPackage.complete" AlwaysCreate="true">
|
||||
<Output TaskParameter="TouchedFiles" ItemName="FileWrites" />
|
||||
</Touch>
|
||||
</Target>
|
||||
|
||||
<UsingTask AssemblyFile="$(LeakDetectionTasksAssembly)" TaskName="MarkAndCatalogPackages" Condition="'$(EnablePoison)' == 'true'" />
|
||||
<Target Name="PoisonPrebuiltPackages"
|
||||
Condition="'$(EnablePoison)' == 'true'"
|
||||
Inputs="$(MSBuildProjectFullPath)"
|
||||
Outputs="$(CompletedSemaphorePath)PoisonPrebuiltPackages.complete">
|
||||
Outputs="$(BaseIntermediateOutputPath)PoisonPrebuiltPackages.complete">
|
||||
<PropertyGroup>
|
||||
<SourceBuiltPoisonMarkerFile>.source-built.xml</SourceBuiltPoisonMarkerFile>
|
||||
<SourceBuiltPoisonReportDataFile>$(PackageReportDir)poison-source-built-catalog.xml</SourceBuiltPoisonReportDataFile>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PrebuiltPackages Include="$(PrebuiltPackagesPath)**/*.nupkg" />
|
||||
<PrebuiltSourceBuiltPackages Include="$(PrebuiltSourceBuiltPackagesPath)**/*.nupkg" />
|
||||
|
@ -153,8 +166,12 @@
|
|||
<MarkAndCatalogPackages PackagesToMark="@(PrebuiltPackages)" CatalogOutputFilePath="$(PoisonReportDataFile)" MarkerFileName="$(PoisonMarkerFile)" />
|
||||
<MarkAndCatalogPackages PackagesToMark="@(PrebuiltSourceBuiltPackages)" CatalogOutputFilePath="$(SourceBuiltPoisonReportDataFile)" MarkerFileName="$(SourceBuiltPoisonMarkerFile)" />
|
||||
|
||||
<WriteLinesToFile File="$(CompletedSemaphorePath)PoisonPrebuiltPackages.complete" Overwrite="true" />
|
||||
<Message Importance="High" Text="[$([System.DateTime]::Now.ToString('HH:mm:ss.ff'))] Done poisoning." />
|
||||
|
||||
<MakeDir Directories="$(BaseIntermediateOutputPath)" />
|
||||
<Touch Files="$(BaseIntermediateOutputPath)PoisonPrebuiltPackages.complete" AlwaysCreate="true">
|
||||
<Output TaskParameter="TouchedFiles" ItemName="FileWrites" />
|
||||
</Touch>
|
||||
</Target>
|
||||
|
||||
</Project>
|
||||
|
|
|
@ -1,29 +1,21 @@
|
|||
<Project>
|
||||
|
||||
<Import Project="$([MSBuild]::GetPathOfFileAbove(Directory.Build.props, $(MSBuildThisFileDirectory)..))" />
|
||||
|
||||
<PropertyGroup>
|
||||
<!-- Build all tasks as AnyCPU to match NuGet DLLs in the SDK: avoid warnings. -->
|
||||
<Platform>AnyCPU</Platform>
|
||||
<RestoreSources Condition="'$(DotNetBuildSourceOnly)' == 'true'">$(ReferencePackagesDir);$(PrebuiltPackagesPath);$(PrebuiltSourceBuiltPackagesPath)</RestoreSources>
|
||||
</PropertyGroup>
|
||||
|
||||
<!--
|
||||
Use some assemblies from the SDK, instead of package references. This ensures they match what's
|
||||
found when the task is loaded by the SDK's MSBuild.
|
||||
Reference NuGet assemblies, except a command line assembly that causes warnings such as:
|
||||
MSB3277: Found conflicts between different versions of "System.Collections" that could not be resolved.
|
||||
-->
|
||||
<ItemGroup>
|
||||
<SdkAssembly Include="$(SdkReferenceDir)Newtonsoft.Json.dll" />
|
||||
|
||||
<!--
|
||||
Reference NuGet assemblies, except a command line assembly that causes warnings such as:
|
||||
MSB3277: Found conflicts between different versions of "System.Collections" that could not be resolved.
|
||||
-->
|
||||
<SdkAssembly
|
||||
Include="$(SdkReferenceDir)NuGet.*.dll"
|
||||
Exclude="$(SdkReferenceDir)NuGet.CommandLine.XPlat.dll" />
|
||||
|
||||
<SdkAssemblyReference
|
||||
Include="@(SdkAssembly -> '%(FileName)')"
|
||||
HintPath="$(SdkReferenceDir)%(Identity).dll" />
|
||||
<SdkAssembly Include="$([MSBuild]::NormalizePath('$(NetCoreRoot)', 'sdk', '$(NETCoreSdkVersion)', 'Newtonsoft.Json.dll'));
|
||||
$([MSBuild]::NormalizeDirectory('$(NetCoreRoot)', 'sdk', '$(NETCoreSdkVersion)'))NuGet.*.dll"
|
||||
Exclude="$([MSBuild]::NormalizePath('$(NetCoreRoot)', 'sdk', '$(NETCoreSdkVersion)', 'NuGet.CommandLine.XPlat.dll'))" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
|
|
|
@ -347,7 +347,8 @@ namespace Microsoft.DotNet.SourceBuild.Tasks.LeakDetection
|
|||
using var peReader = new PEReader(stream);
|
||||
|
||||
MetadataReader reader = peReader.GetMetadataReader();
|
||||
return reader.CustomAttributes.Select(attrHandle => reader.GetCustomAttribute(attrHandle))
|
||||
return reader.CustomAttributes
|
||||
.Select(attrHandle => reader.GetCustomAttribute(attrHandle))
|
||||
.Any(attr => IsAttributeSbrp(reader, attr));
|
||||
}
|
||||
|
||||
|
@ -357,13 +358,23 @@ namespace Microsoft.DotNet.SourceBuild.Tasks.LeakDetection
|
|||
|
||||
if (attr.Constructor.Kind == HandleKind.MemberReference)
|
||||
{
|
||||
MemberReference mref = reader.GetMemberReference((MemberReferenceHandle)attr.Constructor);
|
||||
|
||||
var mref = reader.GetMemberReference((MemberReferenceHandle)attr.Constructor);
|
||||
if (mref.Parent.Kind == HandleKind.TypeReference)
|
||||
{
|
||||
TypeReference tref = reader.GetTypeReference((TypeReferenceHandle)mref.Parent);
|
||||
var tref = reader.GetTypeReference((TypeReferenceHandle)mref.Parent);
|
||||
attributeType = $"{reader.GetString(tref.Namespace)}.{reader.GetString(tref.Name)}";
|
||||
}
|
||||
else if (mref.Parent.Kind == HandleKind.TypeDefinition)
|
||||
{
|
||||
var tdef = reader.GetTypeDefinition((TypeDefinitionHandle)mref.Parent);
|
||||
attributeType = $"{reader.GetString(tdef.Namespace)}.{reader.GetString(tdef.Name)}";
|
||||
}
|
||||
}
|
||||
else if (attr.Constructor.Kind == HandleKind.MethodDefinition)
|
||||
{
|
||||
var mdef = reader.GetMethodDefinition((MethodDefinitionHandle)attr.Constructor);
|
||||
var tdef = reader.GetTypeDefinition(mdef.GetDeclaringType());
|
||||
attributeType = $"{reader.GetString(tdef.Namespace)}.{reader.GetString(tdef.Name)}";
|
||||
}
|
||||
|
||||
if (attributeType == SbrpAttributeType)
|
||||
|
@ -371,7 +382,7 @@ namespace Microsoft.DotNet.SourceBuild.Tasks.LeakDetection
|
|||
var decodedValue = attr.DecodeValue(DummyAttributeTypeProvider.Instance);
|
||||
try
|
||||
{
|
||||
return decodedValue.FixedArguments[0].Value.ToString() == "source" && decodedValue.FixedArguments[1].Value.ToString() == "source-build-reference-packages";
|
||||
return decodedValue.FixedArguments[0].Value?.ToString() == "source" && decodedValue.FixedArguments[1].Value?.ToString() == "source-build-reference-packages";
|
||||
}
|
||||
catch
|
||||
{
|
||||
|
|
|
@ -7,28 +7,31 @@ using System.Reflection;
|
|||
using System.Reflection.Metadata;
|
||||
using System.Reflection.Metadata.Ecma335;
|
||||
|
||||
#nullable enable
|
||||
|
||||
namespace Microsoft.DotNet.SourceBuild.Tasks.LeakDetection
|
||||
{
|
||||
|
||||
// An empty ICustomAttributeTypeProvider implementation is necessary to read metadata attribute values.
|
||||
internal class DummyAttributeTypeProvider : ICustomAttributeTypeProvider<Type>
|
||||
internal class DummyAttributeTypeProvider : ICustomAttributeTypeProvider<Type?>
|
||||
{
|
||||
public static readonly DummyAttributeTypeProvider Instance = new();
|
||||
|
||||
public Type GetPrimitiveType(PrimitiveTypeCode typeCode) => default(Type);
|
||||
public Type? GetPrimitiveType(PrimitiveTypeCode typeCode) => default(Type);
|
||||
|
||||
public Type GetSystemType() => default(Type);
|
||||
public Type? GetSystemType() => default(Type);
|
||||
|
||||
public Type GetSZArrayType(Type elementType) => default(Type);
|
||||
public Type? GetSZArrayType(Type? elementType) => default(Type);
|
||||
|
||||
public Type GetTypeFromDefinition(MetadataReader reader, TypeDefinitionHandle handle, byte rawTypeKind) => default(Type);
|
||||
public Type? GetTypeFromDefinition(MetadataReader reader, TypeDefinitionHandle handle, byte rawTypeKind) => default(Type);
|
||||
|
||||
public Type GetTypeFromReference(MetadataReader reader, TypeReferenceHandle handle, byte rawTypeKind) => default(Type);
|
||||
public Type? GetTypeFromReference(MetadataReader reader, TypeReferenceHandle handle, byte rawTypeKind) => default(Type);
|
||||
|
||||
public Type GetTypeFromSerializedName(string name) => default(Type);
|
||||
public Type? GetTypeFromSerializedName(string name) => default(Type);
|
||||
|
||||
public PrimitiveTypeCode GetUnderlyingEnumType(Type type) => default(PrimitiveTypeCode);
|
||||
public PrimitiveTypeCode GetUnderlyingEnumType(Type? type) => default(PrimitiveTypeCode);
|
||||
|
||||
public bool IsSystemType(Type type) => default(bool);
|
||||
public bool IsSystemType(Type? type) => default(bool);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -3,25 +3,19 @@
|
|||
<PropertyGroup>
|
||||
<TargetFramework>$(NetCurrent)</TargetFramework>
|
||||
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
|
||||
<OutputPath>$(LeakDetectionTasksBinDir)</OutputPath>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Microsoft.Build">
|
||||
<Version>15.7.179</Version>
|
||||
</PackageReference>
|
||||
<PackageReference Include="Microsoft.Build.Utilities.Core">
|
||||
<Version>15.7.179</Version>
|
||||
</PackageReference>
|
||||
<PackageReference Include="Microsoft.Build" Version="$(MicrosoftBuildVersion)" />
|
||||
<PackageReference Include="Microsoft.Build.Utilities.Core" Version="$(MicrosoftBuildVersion)" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="../Microsoft.DotNet.SourceBuild.Tasks.XPlat/Microsoft.DotNet.SourceBuild.Tasks.XPlat.csproj" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<Reference Include="@(SdkAssemblyReference)" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<Compile Include="*.cs" />
|
||||
<ReferencePath Include="@(SdkAssembly)" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
|
|
|
@ -1,94 +0,0 @@
|
|||
// Licensed to the .NET Foundation under one or more agreements.
|
||||
// The .NET Foundation licenses this file to you under the MIT license.
|
||||
// See the LICENSE file in the project root for more information.
|
||||
|
||||
using System;
|
||||
using System.IO;
|
||||
using System.Text;
|
||||
using Microsoft.Build.Framework;
|
||||
using Microsoft.Build.Utilities;
|
||||
using NuGet.Packaging;
|
||||
using NuGet.Packaging.Core;
|
||||
using Newtonsoft.Json;
|
||||
using Newtonsoft.Json.Linq;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using NuGet.Versioning;
|
||||
|
||||
namespace Microsoft.DotNet.Build.Tasks
|
||||
{
|
||||
public class AddRidToRuntimeJson:Task
|
||||
{
|
||||
/// <summary>
|
||||
/// [OS name].[version]-[architecture]
|
||||
/// </summary>
|
||||
[Required]
|
||||
public string Rid { get; set; }
|
||||
|
||||
[Required]
|
||||
public string RuntimeJson { get; set; }
|
||||
|
||||
private string runtimesIdentifier = "runtimes";
|
||||
|
||||
public override bool Execute()
|
||||
{
|
||||
string[] ridParts = Rid.Split('-');
|
||||
string osNameAndVersion = ridParts[0];
|
||||
string[] osParts = osNameAndVersion.Split(new char[] { '.' }, 2);
|
||||
|
||||
if (ridParts.Length < 1 || osParts.Length < 2)
|
||||
{
|
||||
throw new System.InvalidOperationException($"Unknown rid format {Rid}.");
|
||||
}
|
||||
|
||||
// Acquire Rid parts:
|
||||
// osName
|
||||
// version
|
||||
// arch
|
||||
string arch = ridParts[1];
|
||||
string osName = osParts[0];
|
||||
string version = osParts[1];
|
||||
|
||||
JObject projectRoot = ReadProject(RuntimeJson);
|
||||
|
||||
if (projectRoot.SelectToken($"{runtimesIdentifier}.{osName}") == null)
|
||||
{
|
||||
AddRidToRuntimeGraph(projectRoot, osName, "linux");
|
||||
AddRidToRuntimeGraph(projectRoot, $"{osName}-{arch}", osName, $"linux-{arch}");
|
||||
}
|
||||
if(projectRoot.SelectToken($"{runtimesIdentifier}.{osName}.{version}") == null)
|
||||
{
|
||||
AddRidToRuntimeGraph(projectRoot, $"{osName}.{version}", osName);
|
||||
AddRidToRuntimeGraph(projectRoot, $"{osName}.{version}-{arch}", $"{osName}.{version}", $"{osName}-{arch}");
|
||||
}
|
||||
|
||||
WriteProject(projectRoot, RuntimeJson);
|
||||
return true;
|
||||
}
|
||||
|
||||
private void AddRidToRuntimeGraph(JObject projectRoot, string name, params string[] imports)
|
||||
{
|
||||
projectRoot[runtimesIdentifier][name] = new JObject(new JProperty("#import", new JArray(imports)));
|
||||
}
|
||||
|
||||
private static JObject ReadProject(string projectJsonPath)
|
||||
{
|
||||
using (TextReader projectFileReader = File.OpenText(projectJsonPath))
|
||||
{
|
||||
var projectJsonReader = new JsonTextReader(projectFileReader);
|
||||
var serializer = new JsonSerializer();
|
||||
return serializer.Deserialize<JObject>(projectJsonReader);
|
||||
}
|
||||
}
|
||||
private static void WriteProject(JObject projectRoot, string projectJsonPath)
|
||||
{
|
||||
string projectJson = JsonConvert.SerializeObject(projectRoot, Formatting.Indented) + Environment.NewLine;
|
||||
|
||||
if (!File.Exists(projectJsonPath) || !projectJson.Equals(File.ReadAllText(projectJsonPath)))
|
||||
{
|
||||
Directory.CreateDirectory(Path.GetDirectoryName(projectJsonPath));
|
||||
File.WriteAllText(projectJsonPath, projectJson);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,86 +0,0 @@
|
|||
// Licensed to the .NET Foundation under one or more agreements.
|
||||
// The .NET Foundation licenses this file to you under the MIT license.
|
||||
// See the LICENSE file in the project root for more information.
|
||||
|
||||
using System.Collections.Generic;
|
||||
using System.IO;
|
||||
using System.Linq;
|
||||
using System.Xml.Linq;
|
||||
using Microsoft.Build.Framework;
|
||||
using Microsoft.Build.Utilities;
|
||||
|
||||
namespace Microsoft.DotNet.Build.Tasks
|
||||
{
|
||||
/*
|
||||
* This task replaces both types of path separators ('/' and '\') with the separator for the current
|
||||
* platform. This workaround a NuGet issue where `nuget pack` does not translate path separators causing
|
||||
* packages that don't appear to have the right assets in them.
|
||||
*/
|
||||
public class FixPathSeparator : Task
|
||||
{
|
||||
[Required]
|
||||
public ITaskItem[] NuSpecFiles { get; set; }
|
||||
|
||||
public override bool Execute()
|
||||
{
|
||||
foreach (ITaskItem item in NuSpecFiles)
|
||||
{
|
||||
string pathToNuSpec = item.GetMetadata("FullPath");
|
||||
|
||||
XDocument doc = XDocument.Load(pathToNuSpec);
|
||||
|
||||
XElement contentFilesElement = doc.ElementIgnoringNamespace("package").ElementIgnoringNamespace("metadata").ElementIgnoringNamespace("contentFiles");
|
||||
XElement filesElement = doc.ElementIgnoringNamespace("package").ElementIgnoringNamespace("files");
|
||||
|
||||
if (contentFilesElement != null)
|
||||
{
|
||||
foreach (XElement element in contentFilesElement.ElementsIgnroingNamespace("files"))
|
||||
{
|
||||
UpdateDirectorySeperatorInAttribute(element, "include");
|
||||
UpdateDirectorySeperatorInAttribute(element, "exclude");
|
||||
}
|
||||
}
|
||||
|
||||
if (filesElement != null)
|
||||
{
|
||||
foreach (XElement element in filesElement.ElementsIgnroingNamespace("file"))
|
||||
{
|
||||
UpdateDirectorySeperatorInAttribute(element, "src");
|
||||
UpdateDirectorySeperatorInAttribute(element, "target");
|
||||
UpdateDirectorySeperatorInAttribute(element, "exclude");
|
||||
}
|
||||
}
|
||||
|
||||
using (FileStream fs = File.Open(pathToNuSpec, FileMode.Truncate))
|
||||
{
|
||||
doc.Save(fs);
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
private static void UpdateDirectorySeperatorInAttribute(XElement element, XName name)
|
||||
{
|
||||
XAttribute attribute = element.Attribute(name);
|
||||
|
||||
if (attribute != null)
|
||||
{
|
||||
element.SetAttributeValue(name, attribute.Value.Replace('/', Path.DirectorySeparatorChar).Replace('\\', Path.DirectorySeparatorChar));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static class XContainerExtensions
|
||||
{
|
||||
public static IEnumerable<XElement> ElementsIgnroingNamespace(this XContainer container, XName elementName)
|
||||
{
|
||||
return container.Elements().Where(e => e.Name.LocalName == elementName.LocalName);
|
||||
}
|
||||
|
||||
public static XElement ElementIgnoringNamespace(this XContainer container, XName elementName)
|
||||
{
|
||||
return container.ElementsIgnroingNamespace(elementName).FirstOrDefault();
|
||||
}
|
||||
}
|
||||
}
|
|
@ -2,26 +2,17 @@
|
|||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>$(NetCurrent)</TargetFramework>
|
||||
<OutputPath>$(XPlatTasksBinDir)</OutputPath>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Microsoft.Build">
|
||||
<Version>15.7.179</Version>
|
||||
</PackageReference>
|
||||
<PackageReference Include="Microsoft.Build.Framework">
|
||||
<Version>15.7.179</Version>
|
||||
</PackageReference>
|
||||
<PackageReference Include="Microsoft.Build.Tasks.Core">
|
||||
<Version>15.7.179</Version>
|
||||
</PackageReference>
|
||||
<PackageReference Include="Microsoft.Build.Utilities.Core">
|
||||
<Version>15.7.179</Version>
|
||||
</PackageReference>
|
||||
<PackageReference Include="Microsoft.Build" Version="$(MicrosoftBuildVersion)" />
|
||||
<PackageReference Include="Microsoft.Build.Framework" Version="$(MicrosoftBuildVersion)" />
|
||||
<PackageReference Include="Microsoft.Build.Tasks.Core" Version="$(MicrosoftBuildVersion)" />
|
||||
<PackageReference Include="Microsoft.Build.Utilities.Core" Version="$(MicrosoftBuildVersion)" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<Reference Include="@(SdkAssemblyReference)" />
|
||||
<ReferencePath Include="@(SdkAssembly)" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
|
|
|
@ -1,37 +0,0 @@
|
|||
// Licensed to the .NET Foundation under one or more agreements.
|
||||
// The .NET Foundation licenses this file to you under the MIT license.
|
||||
// See the LICENSE file in the project root for more information.
|
||||
|
||||
using Microsoft.Build.Framework;
|
||||
using Microsoft.Build.Utilities;
|
||||
|
||||
namespace Microsoft.DotNet.Build.Tasks.Packaging
|
||||
{
|
||||
public abstract partial class PackagingTask : ITask
|
||||
{
|
||||
private Log _log = null;
|
||||
|
||||
internal Log Log
|
||||
{
|
||||
get { return _log ?? (_log = new Log(new TaskLoggingHelper(this))); }
|
||||
}
|
||||
|
||||
public PackagingTask()
|
||||
{
|
||||
}
|
||||
|
||||
public IBuildEngine BuildEngine
|
||||
{
|
||||
get;
|
||||
set;
|
||||
}
|
||||
|
||||
public ITaskHost HostObject
|
||||
{
|
||||
get;
|
||||
set;
|
||||
}
|
||||
|
||||
public abstract bool Execute();
|
||||
}
|
||||
}
|
|
@ -1,36 +0,0 @@
|
|||
// Licensed to the .NET Foundation under one or more agreements.
|
||||
// The .NET Foundation licenses this file to you under the MIT license.
|
||||
// See the LICENSE file in the project root for more information.
|
||||
|
||||
using System;
|
||||
using System.IO;
|
||||
using Microsoft.Build.Framework;
|
||||
using Microsoft.Build.Utilities;
|
||||
|
||||
namespace Microsoft.DotNet.Build.Tasks
|
||||
{
|
||||
public class ReplaceTextInFile : Task
|
||||
{
|
||||
[Required]
|
||||
public string InputFile { get; set; }
|
||||
|
||||
[Required]
|
||||
public string OldText { get; set; }
|
||||
|
||||
[Required]
|
||||
public string NewText { get; set; }
|
||||
|
||||
|
||||
public override bool Execute()
|
||||
{
|
||||
string fileContents = File.ReadAllText(InputFile);
|
||||
string newLineChars = FileUtilities.DetectNewLineChars(fileContents);
|
||||
|
||||
fileContents = fileContents.Replace(OldText, NewText);
|
||||
|
||||
File.WriteAllText(InputFile, FileUtilities.NormalizeNewLineChars(fileContents, newLineChars));
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,38 +0,0 @@
|
|||
// Licensed to the .NET Foundation under one or more agreements.
|
||||
// The .NET Foundation licenses this file to you under the MIT license.
|
||||
// See the LICENSE file in the project root for more information.
|
||||
|
||||
using System;
|
||||
using System.IO;
|
||||
using Microsoft.Build.Framework;
|
||||
using Microsoft.Build.Utilities;
|
||||
|
||||
namespace Microsoft.DotNet.Build.Tasks
|
||||
{
|
||||
public class ReplaceTextInFiles : Task
|
||||
{
|
||||
[Required]
|
||||
public string[] InputFiles { get; set; }
|
||||
|
||||
[Required]
|
||||
public string OldText { get; set; }
|
||||
|
||||
[Required]
|
||||
public string NewText { get; set; }
|
||||
|
||||
public override bool Execute()
|
||||
{
|
||||
foreach (string file in InputFiles)
|
||||
{
|
||||
string fileContents = File.ReadAllText(file);
|
||||
string newLineChars = FileUtilities.DetectNewLineChars(fileContents);
|
||||
|
||||
fileContents = fileContents.Replace(OldText, NewText);
|
||||
|
||||
File.WriteAllText(file, FileUtilities.NormalizeNewLineChars(fileContents, newLineChars));
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1,139 +0,0 @@
|
|||
// Copyright (c) .NET Foundation. All rights reserved.
|
||||
// Licensed under the Apache License, Version 2.0. See License.txt in the project root for license information.
|
||||
|
||||
// Copied from https://github.com/aspnet/Universe/blob/1f8f30a1e834eff147ced0c669cef8828f9511c8/build/tasks/JoinItems.cs.
|
||||
// When this task is available in https://github.com/dotnet/Arcade, switch to use that version.
|
||||
// Modified to allow multiple Right matches using GroupJoin.
|
||||
|
||||
using Microsoft.Build.Framework;
|
||||
using Microsoft.Build.Utilities;
|
||||
using System;
|
||||
using System.Linq;
|
||||
|
||||
namespace RepoTasks
|
||||
{
|
||||
public class JoinItems : Task
|
||||
{
|
||||
[Required]
|
||||
public ITaskItem[] Left { get; set; }
|
||||
|
||||
[Required]
|
||||
public ITaskItem[] Right { get; set; }
|
||||
|
||||
// The metadata to use as the new item spec. If not specified, LeftKey is used.
|
||||
public string LeftItemSpec { get; set; }
|
||||
|
||||
// LeftKey and RightKey: The metadata to join on. If not set, then use the ItemSpec
|
||||
public string LeftKey { get; set; }
|
||||
|
||||
public string RightKey { get; set; }
|
||||
|
||||
|
||||
// LeftMetadata and RightMetadata: The metadata names to include in the result. Specify "*" to include all metadata
|
||||
public string[] LeftMetadata { get; set; }
|
||||
|
||||
public string[] RightMetadata { get; set; }
|
||||
|
||||
|
||||
[Output]
|
||||
public ITaskItem[] JoinResult { get; private set; }
|
||||
|
||||
public override bool Execute()
|
||||
{
|
||||
bool useAllLeftMetadata = LeftMetadata != null && LeftMetadata.Length == 1 && LeftMetadata[0] == "*";
|
||||
bool useAllRightMetadata = RightMetadata != null && RightMetadata.Length == 1 && RightMetadata[0] == "*";
|
||||
var newItemSpec = string.IsNullOrEmpty(LeftItemSpec)
|
||||
? LeftKey
|
||||
: LeftItemSpec;
|
||||
|
||||
JoinResult = Left.GroupJoin(Right,
|
||||
item => GetKeyValue(LeftKey, item),
|
||||
item => GetKeyValue(RightKey, item),
|
||||
(left, rights) =>
|
||||
{
|
||||
// If including all metadata from left items and none from right items, just return left items directly
|
||||
if (useAllLeftMetadata &&
|
||||
string.IsNullOrEmpty(LeftKey) &&
|
||||
string.IsNullOrEmpty(LeftItemSpec) &&
|
||||
(RightMetadata == null || RightMetadata.Length == 0))
|
||||
{
|
||||
return left;
|
||||
}
|
||||
|
||||
// If including all metadata from all right items and none from left items, just return the right items directly
|
||||
if (useAllRightMetadata &&
|
||||
string.IsNullOrEmpty(RightKey) &&
|
||||
string.IsNullOrEmpty(LeftItemSpec) &&
|
||||
(LeftMetadata == null || LeftMetadata.Length == 0))
|
||||
{
|
||||
return rights.Aggregate(
|
||||
new TaskItem(),
|
||||
(agg, next) =>
|
||||
{
|
||||
CopyAllMetadata(next, agg);
|
||||
return agg;
|
||||
});
|
||||
}
|
||||
|
||||
var ret = new TaskItem(GetKeyValue(newItemSpec, left));
|
||||
|
||||
// Weird ordering here is to prefer left metadata in all cases, as CopyToMetadata doesn't overwrite any existing metadata
|
||||
if (useAllLeftMetadata)
|
||||
{
|
||||
CopyAllMetadata(left, ret);
|
||||
}
|
||||
|
||||
if (!useAllRightMetadata && RightMetadata != null)
|
||||
{
|
||||
foreach (string name in RightMetadata)
|
||||
{
|
||||
foreach (var right in rights)
|
||||
{
|
||||
ret.SetMetadata(name, right.GetMetadata(name));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (!useAllLeftMetadata && LeftMetadata != null)
|
||||
{
|
||||
foreach (string name in LeftMetadata)
|
||||
{
|
||||
ret.SetMetadata(name, left.GetMetadata(name));
|
||||
}
|
||||
}
|
||||
|
||||
if (useAllRightMetadata)
|
||||
{
|
||||
foreach (var right in rights)
|
||||
{
|
||||
CopyAllMetadata(right, ret);
|
||||
}
|
||||
}
|
||||
|
||||
return (ITaskItem)ret;
|
||||
},
|
||||
StringComparer.OrdinalIgnoreCase).ToArray();
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
static void CopyAllMetadata(ITaskItem source, ITaskItem dest)
|
||||
{
|
||||
// CopyMetadata adds an OriginalItemSpec, which we don't want. So we subsequently remove it
|
||||
source.CopyMetadataTo(dest);
|
||||
dest.RemoveMetadata("OriginalItemSpec");
|
||||
}
|
||||
|
||||
static string GetKeyValue(string key, ITaskItem item)
|
||||
{
|
||||
if (string.IsNullOrEmpty(key))
|
||||
{
|
||||
return item.ItemSpec;
|
||||
}
|
||||
else
|
||||
{
|
||||
return item.GetMetadata(key);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -23,21 +23,25 @@ namespace Microsoft.DotNet.Build.Tasks
|
|||
[Required]
|
||||
public string PathToAttribute { get; set; }
|
||||
|
||||
[Required]
|
||||
// New attribute value. May be null. If null,
|
||||
// the token is removed.
|
||||
public string NewAttributeValue { get; set; }
|
||||
|
||||
public bool SkipUpdateIfMissingKey { get; set; }
|
||||
|
||||
public override bool Execute()
|
||||
{
|
||||
// Using a character that isn't allowed in the package id
|
||||
const char Delimiter = ':';
|
||||
|
||||
string json = File.ReadAllText(JsonFilePath);
|
||||
string newLineChars = FileUtilities.DetectNewLineChars(json);
|
||||
JObject jsonObj = JObject.Parse(json);
|
||||
|
||||
string[] escapedPathToAttributeParts = PathToAttribute.Replace("\\.", "\x1F").Split('.');
|
||||
string[] escapedPathToAttributeParts = PathToAttribute.Split(Delimiter);
|
||||
for (int i = 0; i < escapedPathToAttributeParts.Length; ++i)
|
||||
{
|
||||
escapedPathToAttributeParts[i] = escapedPathToAttributeParts[i].Replace("\x1F", ".");
|
||||
escapedPathToAttributeParts[i] = escapedPathToAttributeParts[i];
|
||||
}
|
||||
UpdateAttribute(jsonObj, escapedPathToAttributeParts, NewAttributeValue);
|
||||
|
||||
|
@ -61,7 +65,14 @@ namespace Microsoft.DotNet.Build.Tasks
|
|||
|
||||
if (path.Length == 1)
|
||||
{
|
||||
jsonObj[pathItem] = newValue;
|
||||
if (newValue == null)
|
||||
{
|
||||
jsonObj[pathItem].Parent.Remove();
|
||||
}
|
||||
else
|
||||
{
|
||||
jsonObj[pathItem] = newValue;
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
|
|
|
@ -1,86 +0,0 @@
|
|||
// Licensed to the .NET Foundation under one or more agreements.
|
||||
// The .NET Foundation licenses this file to you under the MIT license.
|
||||
// See the LICENSE file in the project root for more information.
|
||||
|
||||
using Microsoft.Build.Framework;
|
||||
using System;
|
||||
using System.IO;
|
||||
using System.IO.Compression;
|
||||
|
||||
namespace Microsoft.DotNet.Build.Tasks
|
||||
{
|
||||
public sealed class ZipFileExtractToDirectory : BuildTask
|
||||
{
|
||||
/// <summary>
|
||||
/// The path to the archive to be extracted.
|
||||
/// </summary>
|
||||
[Required]
|
||||
public string SourceArchive { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// The path of the directory to extract into.
|
||||
/// </summary>
|
||||
[Required]
|
||||
public string DestinationDirectory { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// Indicates if the destination directory should be overwritten if it already exists.
|
||||
/// </summary>
|
||||
public bool OverwriteDestination { get; set; }
|
||||
|
||||
/// <summary>
|
||||
/// File entries to include in the extraction. Entries are relative
|
||||
/// paths inside the archive. If null or empty, all files are extracted.
|
||||
/// </summary>
|
||||
public ITaskItem[] Include { get; set; }
|
||||
|
||||
public override bool Execute()
|
||||
{
|
||||
try
|
||||
{
|
||||
if (Directory.Exists(DestinationDirectory))
|
||||
{
|
||||
if (OverwriteDestination)
|
||||
{
|
||||
Log.LogMessage(MessageImportance.Low, $"'{DestinationDirectory}' already exists, trying to delete before unzipping...");
|
||||
Directory.Delete(DestinationDirectory, recursive: true);
|
||||
}
|
||||
else
|
||||
{
|
||||
Log.LogWarning($"'{DestinationDirectory}' already exists. Did you forget to set '{nameof(OverwriteDestination)}' to true?");
|
||||
}
|
||||
}
|
||||
|
||||
Log.LogMessage(MessageImportance.High, "Decompressing '{0}' into '{1}'...", SourceArchive, DestinationDirectory);
|
||||
Directory.CreateDirectory(Path.GetDirectoryName(DestinationDirectory));
|
||||
|
||||
using (ZipArchive archive = ZipFile.OpenRead(SourceArchive))
|
||||
{
|
||||
if (Include?.Length > 0)
|
||||
{
|
||||
foreach (ITaskItem entryItem in Include)
|
||||
{
|
||||
ZipArchiveEntry entry = archive.GetEntry(entryItem.ItemSpec);
|
||||
string destinationPath = Path.Combine(DestinationDirectory, entryItem.ItemSpec);
|
||||
|
||||
Directory.CreateDirectory(Path.GetDirectoryName(destinationPath));
|
||||
entry.ExtractToFile(destinationPath, overwrite: false);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
archive.ExtractToDirectory(DestinationDirectory);
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
// We have 2 log calls because we want a nice error message but we also want to capture the callstack in the log.
|
||||
Log.LogError("An exception has occurred while trying to decompress '{0}' into '{1}'.", SourceArchive, DestinationDirectory);
|
||||
Log.LogErrorFromException(e, /*show stack=*/ true, /*show detail=*/ true, DestinationDirectory);
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
|
@ -2,19 +2,22 @@
|
|||
|
||||
<PropertyGroup>
|
||||
<TargetFramework>netstandard2.0</TargetFramework>
|
||||
<SourceBuildMSBuildSdkResolverPath>$(DotNetSdkResolversDir)$(MSBuildProjectName)\$(MSBuildProjectName).dll</SourceBuildMSBuildSdkResolverPath>
|
||||
</PropertyGroup>
|
||||
|
||||
<Target Name="InstallResolver">
|
||||
<PropertyGroup>
|
||||
<SourceBuildMSBuildSdkResolverPath>$([MSBuild]::NormalizePath('$(DotNetRoot)', 'sdk', '$(NETCoreSdkVersion)', 'SdkResolvers', '$(MSBuildProjectName)', '$(MSBuildProjectName).dll'))</SourceBuildMSBuildSdkResolverPath>
|
||||
</PropertyGroup>
|
||||
|
||||
<Copy SourceFiles="$(TargetPath)" DestinationFiles="$(SourceBuildMSBuildSdkResolverPath)" />
|
||||
<Message Importance="High" Text="Adding resolver to SDK: $(MSBuildProjectName) -> $(SourceBuildMSBuildSdkResolverPath)" />
|
||||
<Message Text="Adding resolver to SDK: $(MSBuildProjectName) -> $(SourceBuildMSBuildSdkResolverPath)" Importance="High" />
|
||||
</Target>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="Microsoft.Build" Version="15.7.179" />
|
||||
<PackageReference Include="Microsoft.Build.Framework" Version="15.7.179" />
|
||||
<PackageReference Include="Microsoft.Build.Tasks.Core" Version="15.7.179" />
|
||||
<PackageReference Include="Microsoft.Build.Utilities.Core" Version="15.7.179" />
|
||||
<PackageReference Include="Microsoft.Build" Version="$(MicrosoftBuildVersion)" />
|
||||
<PackageReference Include="Microsoft.Build.Framework" Version="$(MicrosoftBuildVersion)" />
|
||||
<PackageReference Include="Microsoft.Build.Tasks.Core" Version="$(MicrosoftBuildVersion)" />
|
||||
<PackageReference Include="Microsoft.Build.Utilities.Core" Version="$(MicrosoftBuildVersion)" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
|
|
|
@ -1,12 +1,9 @@
|
|||
{
|
||||
"tools": {
|
||||
"dotnet": "9.0.100-alpha.1.23524.3"
|
||||
"dotnet": "9.0.100-alpha.1.24067.4"
|
||||
},
|
||||
"msbuild-sdks": {
|
||||
"Microsoft.Build.CentralPackageVersions": "2.0.1",
|
||||
"Microsoft.Build.Traversal": "2.0.2",
|
||||
"Microsoft.NET.Sdk.IL": "3.0.0-preview-27107-01",
|
||||
"Microsoft.DotNet.Arcade.Sdk": "6.0.0-beta.21304.1",
|
||||
"Yarn.MSBuild": "1.15.2"
|
||||
"Microsoft.Build.NoTargets": "3.7.0",
|
||||
"Microsoft.DotNet.Arcade.Sdk": "9.0.0-beta.24075.2"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -165,7 +165,7 @@ function BootstrapArtifacts {
|
|||
fi
|
||||
|
||||
# Run restore on project to initiate download of bootstrap packages
|
||||
"$DOTNET_SDK_PATH/dotnet" restore "$workingDir/buildBootstrapPreviouslySB.csproj" /bl:artifacts/prep/bootstrap.binlog /fileLoggerParameters:LogFile=artifacts/prep/bootstrap.log /p:ArchiveDir="$packagesArchiveDir" /p:BootstrapOverrideVersionsProps="$SCRIPT_ROOT/eng/bootstrap/OverrideBootstrapVersions.props"
|
||||
"$DOTNET_SDK_PATH/dotnet" restore "$workingDir/buildBootstrapPreviouslySB.csproj" /bl:artifacts/log/prep-bootstrap.binlog /fileLoggerParameters:LogFile=artifacts/log/prep-bootstrap.log /p:ArchiveDir="$packagesArchiveDir" /p:BootstrapOverrideVersionsProps="$SCRIPT_ROOT/eng/bootstrap/OverrideBootstrapVersions.props"
|
||||
|
||||
# Remove working directory
|
||||
rm -rf "$workingDir"
|
||||
|
@ -174,6 +174,7 @@ function BootstrapArtifacts {
|
|||
# Check for the version of dotnet to install
|
||||
if [ "$installDotnet" == true ]; then
|
||||
echo " Installing dotnet..."
|
||||
use_installed_dotnet_cli=false
|
||||
(source ./eng/common/tools.sh && InitializeDotNetCli true)
|
||||
|
||||
# TODO: Remove once runtime dependency is gone (https://github.com/dotnet/runtime/issues/93666)
|
||||
|
|
|
@ -1,82 +1,107 @@
|
|||
<Project>
|
||||
|
||||
<Import Project="$([MSBuild]::GetPathOfFileAbove(Directory.Build.props, $(MSBuildThisFileDirectory)..))" />
|
||||
|
||||
<PropertyGroup>
|
||||
<RepositoryName>$(MSBuildProjectName)</RepositoryName>
|
||||
<GitInfoRepoPropsFile>$(GitInfoDir)$(RepositoryName).props</GitInfoRepoPropsFile>
|
||||
</PropertyGroup>
|
||||
|
||||
<Import Project="$([MSBuild]::GetPathOfFileAbove(Directory.Build.props, $(MSBuildThisFileDirectory)..))" />
|
||||
|
||||
<Import Project="$(GitInfoRepoPropsFile)" Condition="Exists('$(GitInfoRepoPropsFile)')" />
|
||||
|
||||
<PropertyGroup>
|
||||
<SourceDirectory Condition="'$(SourceDirectory)' == ''">$(RepositoryName)</SourceDirectory>
|
||||
<ProjectDirectory Condition="'$(ProjectDirectory)' == ''">$(SubmoduleDirectory)$(SourceDirectory)/</ProjectDirectory>
|
||||
<MinimalConsoleLogOutput Condition="'$(MinimalConsoleLogOutput)' == ''">true</MinimalConsoleLogOutput>
|
||||
<RepoConsoleLogFile>$(LoggingDir)$(RepositoryName).log</RepoConsoleLogFile>
|
||||
<RedirectRepoOutputToLog Condition="'$(MinimalConsoleLogOutput)' == 'true'">>> $(RepoConsoleLogFile) 2>&1</RedirectRepoOutputToLog>
|
||||
<!-- Fake, to satisfy the SDK. -->
|
||||
<TargetFramework>netstandard2.0</TargetFramework>
|
||||
<DisableImplicitFrameworkReferences>true</DisableImplicitFrameworkReferences>
|
||||
|
||||
<PackagesOutput>$(ProjectDirectory)artifacts/packages/$(Configuration)/NonShipping/</PackagesOutput>
|
||||
|
||||
<!--
|
||||
Repo specific semaphore path for incremental build
|
||||
-->
|
||||
<RepoCompletedSemaphorePath>$(CompletedSemaphorePath)$(RepositoryName)/</RepoCompletedSemaphorePath>
|
||||
<ProjectDirectory>$([MSBuild]::NormalizeDirectory('$(SrcDir)', '$(RepositoryName)'))</ProjectDirectory>
|
||||
<PackagesOutput>$([MSBuild]::NormalizeDirectory('$(ProjectDirectory)', 'artifacts', 'packages', '$(Configuration)', 'NonShipping'))</PackagesOutput>
|
||||
|
||||
<!-- Paths to the version props files -->
|
||||
<CurrentSourceBuiltPackageVersionPropsPath>$(IntermediatePath)PackageVersions.$(RepositoryName).Current.props</CurrentSourceBuiltPackageVersionPropsPath>
|
||||
<PreviouslySourceBuiltPackageVersionPropsPath>$(IntermediatePath)PackageVersions.$(RepositoryName).Previous.props</PreviouslySourceBuiltPackageVersionPropsPath>
|
||||
<SnapshotPackageVersionPropsPath>$(IntermediatePath)PackageVersions.$(RepositoryName).Snapshot.props</SnapshotPackageVersionPropsPath>
|
||||
<PackageVersionPropsPath>$(IntermediatePath)PackageVersions.$(RepositoryName).props</PackageVersionPropsPath>
|
||||
<PackageVersionPropsPath>$(SharedIntermediateOutputPath)PackageVersions.$(RepositoryName).props</PackageVersionPropsPath>
|
||||
<CurrentSourceBuiltPackageVersionPropsPath>$(SharedIntermediateOutputPath)PackageVersions.$(RepositoryName).Current.props</CurrentSourceBuiltPackageVersionPropsPath>
|
||||
<PreviouslySourceBuiltPackageVersionPropsPath>$(SharedIntermediateOutputPath)PackageVersions.$(RepositoryName).Previous.props</PreviouslySourceBuiltPackageVersionPropsPath>
|
||||
<SnapshotPackageVersionPropsPath>$(SharedIntermediateOutputPath)PackageVersions.$(RepositoryName).Snapshot.props</SnapshotPackageVersionPropsPath>
|
||||
<PackageVersionPropsFlowType>DependenciesOnly</PackageVersionPropsFlowType>
|
||||
|
||||
<EngCommonToolsShFile Condition="Exists('$(ProjectDirectory)eng/common/tools.sh')">$(ProjectDirectory)eng/common/tools.sh</EngCommonToolsShFile>
|
||||
<EngCommonBuildShFile Condition="Exists('$(ProjectDirectory)eng/common/build.sh')">$(ProjectDirectory)eng/common/build.sh</EngCommonBuildShFile>
|
||||
<GlobalJsonFile Condition="'$(GlobalJsonFile)' == '' and Exists('$(ProjectDirectory)global.json')">$(ProjectDirectory)global.json</GlobalJsonFile>
|
||||
<NuGetConfigFile Condition="'$(NuGetConfigFile)' == '' and Exists('$(ProjectDirectory)NuGet.config')">$(ProjectDirectory)NuGet.config</NuGetConfigFile>
|
||||
<NuGetConfigFile Condition="'$(NuGetConfigFile)' == '' and Exists('$(ProjectDirectory)NuGet.Config')">$(ProjectDirectory)NuGet.Config</NuGetConfigFile>
|
||||
|
||||
<SourceBuiltSdksDir>$([MSBuild]::NormalizeDirectory('$(ArtifactsDir)', 'source-built-sdks'))</SourceBuiltSdksDir>
|
||||
|
||||
<!-- Set the bootstrap version to the VMR's version if empty. (no bootstrap set). -->
|
||||
<ArcadeBootstrapVersion>$([MSBuild]::ValueOrDefault('$(ARCADE_BOOTSTRAP_VERSION)', '$(ArcadeSdkVersion)'))</ArcadeBootstrapVersion>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup Condition="'$(OS)' == 'Windows_NT'">
|
||||
<PropertyGroup Condition="'$(BuildOS)' == 'windows'">
|
||||
<FlagParameterPrefix>-</FlagParameterPrefix>
|
||||
<ArcadeFalseBoolBuildArg>0</ArcadeFalseBoolBuildArg>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition="'$(OS)' != 'Windows_NT'">
|
||||
<PropertyGroup Condition="'$(BuildOS)' != 'windows'">
|
||||
<FlagParameterPrefix>--</FlagParameterPrefix>
|
||||
<ArcadeFalseBoolBuildArg>false</ArcadeFalseBoolBuildArg>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup>
|
||||
<GitCommitDateNoDashes>$(GitCommitDate.Replace('-', ''))</GitCommitDateNoDashes>
|
||||
<!-- By default, use the eng/common/build.cmd/sh script -->
|
||||
<BuildScript>$([MSBuild]::NormalizePath('$(ProjectDirectory)', 'eng', 'common', 'build$(ShellExtension)'))</BuildScript>
|
||||
|
||||
<BuildActions>$(FlagParameterPrefix)restore</BuildActions>
|
||||
<BuildActions>$(BuildActions) $(FlagParameterPrefix)build</BuildActions>
|
||||
<BuildActions>$(BuildActions) $(FlagParameterPrefix)pack</BuildActions>
|
||||
<BuildActions>$(BuildActions) $(FlagParameterPrefix)publish</BuildActions>
|
||||
|
||||
<BuildArgs>$(FlagParameterPrefix)ci</BuildArgs>
|
||||
<BuildArgs>$(BuildArgs) $(FlagParameterPrefix)configuration $(Configuration)</BuildArgs>
|
||||
<BuildArgs>$(BuildArgs) -bl</BuildArgs>
|
||||
<BuildArgs>$(BuildArgs) /p:DotNetBuildRepo=true</BuildArgs>
|
||||
<!-- Indicate that the build is being run from the orchestrator -->
|
||||
<BuildArgs>$(BuildArgs) /p:DotNetBuildOrchestrator=true</BuildArgs>
|
||||
<BuildArgs Condition="'$(CrossBuild)' == 'true'">$(BuildArgs) /p:CrossBuild=true</BuildArgs>
|
||||
<BuildArgs Condition="'$(DotNetBuildSkipTests)' == 'true'">$(BuildArgs) /p:DotNetBuildSkipTests=true</BuildArgs>
|
||||
</PropertyGroup>
|
||||
|
||||
<!-- A human-readable description of what's building and why. -->
|
||||
<PropertyGroup>
|
||||
<ProjectBuildReason>'$(RepositoryName)'</ProjectBuildReason>
|
||||
<PropertyGroup Condition="'$(DotNetBuildSourceOnly)' != 'true'">
|
||||
<BuildArgs>$(BuildArgs) /p:ArcadeBuildVertical=true</BuildArgs>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup Condition="'$(DotNetBuildSourceOnly)' == 'true'">
|
||||
<BuildArgs>$(BuildArgs) /p:ArcadeBuildFromSource=true</BuildArgs>
|
||||
<BuildArgs>$(BuildArgs) /p:PreviouslySourceBuiltNupkgCacheDir="$(PrebuiltSourceBuiltPackagesPath)"</BuildArgs>
|
||||
<BuildArgs>$(BuildArgs) /p:ReferencePackageNupkgCacheDir="$(ReferencePackagesDir)"</BuildArgs>
|
||||
<BuildArgs Condition="'$(SourceBuildUseMonoRuntime)' == 'true'">$(BuildArgs) /p:SourceBuildUseMonoRuntime=$(SourceBuildUseMonoRuntime)</BuildArgs>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup Condition="'$(EnableExtraDebugging)' == 'true'">
|
||||
<MSBuildDebugPathTargetDir>$([MSBuild]::NormalizeDirectory('$(ArtifactsDir)', 'msbuild-debug'))</MSBuildDebugPathTargetDir>
|
||||
<RoslynDebugPathTargetDir>$([MSBuild]::NormalizeDirectory('$(ArtifactsDir)', 'roslyn-debug'))</RoslynDebugPathTargetDir>
|
||||
|
||||
<AspNetRazorBuildServerLogDir>$([MSBuild]::NormalizeDirectory('$(ArtifactsDir)', 'aspnet-debug'))</AspNetRazorBuildServerLogDir>
|
||||
<AspNetRazorBuildServerLogFile>$(AspNetRazorBuildServerLogDir)razor-build-server.log</AspNetRazorBuildServerLogFile>
|
||||
</PropertyGroup>
|
||||
|
||||
<!-- Cross-build property setting from OverrideTargetRid -->
|
||||
<PropertyGroup Condition="'$(OverrideTargetRid)' != ''">
|
||||
<OverrideTargetOS>$(OverrideTargetRid.Substring(0, $(OverrideTargetRid.LastIndexOf('-'))))</OverrideTargetOS>
|
||||
<OverrideTargetArch>$(OverrideTargetRid.Substring($(OverrideTargetRid.LastIndexOf('-'))).TrimStart('-'))</OverrideTargetArch>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<EnvironmentVariables Include="DotNetBuildFromSource=true" />
|
||||
<EnvironmentVariables Include="DotNetBuildFromSourceFlavor=Product" />
|
||||
<EnvironmentVariables Include="DotNetPackageVersionPropsPath=$(PackageVersionPropsPath)" />
|
||||
<EnvironmentVariables Include="DotNetRestorePackagesPath=$(PackagesDir)" />
|
||||
<EnvironmentVariables Include="DotNetBuildOffline=true" />
|
||||
|
||||
<!-- Ensure the SDK (Core-SDK/Installer) doesn't add an online source. -->
|
||||
<EnvironmentVariables Include="AddDotnetfeedProjectSource=false" />
|
||||
|
||||
<!-- Arcade tools.sh picks up DotNetCoreSdkDir, but we can pass DOTNET_INSTALL_DIR directly. -->
|
||||
<EnvironmentVariables Include="DOTNET_INSTALL_DIR=$(DotNetCliToolDir)" />
|
||||
<EnvironmentVariables Include="DOTNET_PATH=$(DotNetCliToolDir)" />
|
||||
<EnvironmentVariables Include="DOTNET_HOST_PATH=$(DotNetCliToolDir)dotnet" />
|
||||
<EnvironmentVariables Include="DOTNET_INSTALL_DIR=$(DotNetRoot)" />
|
||||
<EnvironmentVariables Include="DOTNET_PATH=$(DotNetRoot)" />
|
||||
<EnvironmentVariables Include="DOTNET_HOST_PATH=$(DotNetTool)" />
|
||||
|
||||
<!-- _InitializeDotNetCli is used by websdk and templating to decide whether to init the SDK -->
|
||||
<EnvironmentVariables Include="_InitializeDotNetCli=$(DotNetCliToolDir)" />
|
||||
<EnvironmentVariables Include="_DotNetInstallDir=$(DotNetCliToolDir)" />
|
||||
<EnvironmentVariables Include="_InitializeToolset=$(SourceBuiltSdksDir)Microsoft.DotNet.Arcade.Sdk/tools/Build.proj" Condition="'$(UseBootstrapArcade)' != 'true'" />
|
||||
<EnvironmentVariables Include="_InitializeDotNetCli=$(DotNetRoot)" />
|
||||
<EnvironmentVariables Include="_DotNetInstallDir=$(DotNetRoot)" />
|
||||
<EnvironmentVariables Include="_InitializeToolset=$(SourceBuiltSdksDir)Microsoft.DotNet.Arcade.Sdk/tools/Build.proj"
|
||||
Condition="'$(UseBootstrapArcade)' != 'true'" />
|
||||
<!-- TODO: Remove when all repos use a consistent set of eng/common files: https://github.com/dotnet/source-build/issues/3710. -->
|
||||
<EnvironmentVariables Include="_OverrideArcadeInitializeBuildToolFramework=$(NetCurrent)" />
|
||||
|
||||
<EnvironmentVariables Include="DotNetUseShippingVersions=true" />
|
||||
|
||||
<EnvironmentVariables Include="PreReleaseVersionLabel=$(PreReleaseVersionLabel)" />
|
||||
<EnvironmentVariables Include="PackageVersionStamp=$(PreReleaseVersionLabel)" />
|
||||
|
||||
|
@ -109,9 +134,15 @@
|
|||
<EnvironmentVariables Include="DeterministicSourcePaths=false" Condition="'$(DeterministicBuildOptOut)' == 'true'" />
|
||||
|
||||
<EnvironmentVariables Include="SourceRoot=$(ProjectDirectory)" />
|
||||
<EnvironmentVariables Include="DotNetBuildFromSourceFlavor=Product" />
|
||||
|
||||
<!-- https://github.com/dotnet/source-build/issues/3081 -->
|
||||
<EnvironmentVariables Include="CheckEolTargetFramework=false" />
|
||||
<!-- Need to be passed in as an env var so that custom Exec tasks in the repo's SourceBuild.props receive this setting. -->
|
||||
<EnvironmentVariables Include="DotNetPackageVersionPropsPath=$(PackageVersionPropsPath)" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<EnvironmentVariables Include="DotNetBuildFromSource=true" Condition="'$(DotNetBuildSourceOnly)' == 'true'" />
|
||||
<EnvironmentVariables Include="DotNetBuildVertical=true" Condition="'$(DotNetBuildSourceOnly)' != 'true'" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup Condition="'$(EnableExtraDebugging)' == 'true'">
|
||||
|
@ -134,46 +165,62 @@
|
|||
<EnvironmentVariables Include="RAZORBUILDSERVER_LOG=$(AspNetRazorBuildServerLogFile)" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<!-- The Arcade SDK is automatically registered while the others are opt-in for the repo projects. -->
|
||||
<ArcadeSdkOverride Include="Microsoft.DotNet.Arcade.Sdk" Group="ARCADE" Version="$(arcadeOutputPackageVersion)" />
|
||||
<SourceBuiltSdkOverride Include="@(ArcadeSdkOverride)" Condition="'$(UseBootstrapArcade)' != 'true'" />
|
||||
<SourceBuiltSdkOverride Include="@(ArcadeSdkOverride)"
|
||||
Version="$(ArcadeBootstrapVersion)"
|
||||
Location="$(ArcadeBootstrapPackageDir)microsoft.dotnet.arcade.sdk/$(ArcadeBootstrapVersion)"
|
||||
Condition="'$(UseBootstrapArcade)' == 'true'" />
|
||||
|
||||
<ArcadeSharedFrameworkSdkOverride Include="Microsoft.DotNet.SharedFramework.Sdk" Group="ARCADE_SHARED_FX_SDK" Version="$(arcadeOutputPackageVersion)" />
|
||||
<WindowsDesktopSdkOverride Include="Microsoft.Net.Sdk.WindowsDesktop" Group="WINDOWS_DESKTOP" Location="$(ToolsDir)EmptySdk" Condition="'$(DotNetBuildSourceOnly)' == 'true'" />
|
||||
</ItemGroup>
|
||||
|
||||
<!-- CLI internal version is statically set by us to a version that will never show up in the wild.
|
||||
This ensures we will never restore a public version instead of our source-built version. We
|
||||
invlude the version number because it is used both by CLI.proj and the core-sdk build and they
|
||||
have to be synced up. ExtraPackageVersionPropsPackageInfo doesn't work in cli.proj because
|
||||
toolset is between CLI and core-sdk, and the extra package version info is lost. -->
|
||||
<PropertyGroup>
|
||||
<ArcadeBootstrapDir>$(ArcadeBootstrapPackageDir)</ArcadeBootstrapDir>
|
||||
<ArcadeBootstrapVersion>$(ARCADE_BOOTSTRAP_VERSION)</ArcadeBootstrapVersion>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup>
|
||||
<StandardSourceBuildArgs> $(FlagParameterPrefix)ci</StandardSourceBuildArgs>
|
||||
<StandardSourceBuildArgs>$(StandardSourceBuildArgs) $(FlagParameterPrefix)configuration $(Configuration)</StandardSourceBuildArgs>
|
||||
<StandardSourceBuildArgs>$(StandardSourceBuildArgs) $(FlagParameterPrefix)restore</StandardSourceBuildArgs>
|
||||
<StandardSourceBuildArgs>$(StandardSourceBuildArgs) $(FlagParameterPrefix)build</StandardSourceBuildArgs>
|
||||
<StandardSourceBuildArgs>$(StandardSourceBuildArgs) $(FlagParameterPrefix)pack</StandardSourceBuildArgs>
|
||||
<StandardSourceBuildArgs>$(StandardSourceBuildArgs) $(FlagParameterPrefix)publish</StandardSourceBuildArgs>
|
||||
<StandardSourceBuildArgs>$(StandardSourceBuildArgs) -bl</StandardSourceBuildArgs>
|
||||
|
||||
<StandardSourceBuildArgs>$(StandardSourceBuildArgs) /p:ArcadeBuildFromSource=true</StandardSourceBuildArgs>
|
||||
<StandardSourceBuildArgs>$(StandardSourceBuildArgs) /p:CopyWipIntoInnerSourceBuildRepo=true</StandardSourceBuildArgs>
|
||||
<StandardSourceBuildArgs>$(StandardSourceBuildArgs) /p:DotNetBuildOffline=true</StandardSourceBuildArgs>
|
||||
<StandardSourceBuildArgs>$(StandardSourceBuildArgs) /p:CopySrcInsteadOfClone=true</StandardSourceBuildArgs>
|
||||
<StandardSourceBuildArgs>$(StandardSourceBuildArgs) /p:DotNetPackageVersionPropsPath="$(PackageVersionPropsPath)"</StandardSourceBuildArgs>
|
||||
<StandardSourceBuildArgs>$(StandardSourceBuildArgs) /p:AdditionalSourceBuiltNupkgCacheDir="$(SourceBuiltPackagesPath)"</StandardSourceBuildArgs>
|
||||
<StandardSourceBuildArgs>$(StandardSourceBuildArgs) /p:ReferencePackageNupkgCacheDir="$(ReferencePackagesDir)"</StandardSourceBuildArgs>
|
||||
<StandardSourceBuildArgs>$(StandardSourceBuildArgs) /p:PreviouslySourceBuiltNupkgCacheDir="$(PrebuiltSourceBuiltPackagesPath)"</StandardSourceBuildArgs>
|
||||
<StandardSourceBuildArgs>$(StandardSourceBuildArgs) /p:SourceBuildUseMonoRuntime=$(SourceBuildUseMonoRuntime)</StandardSourceBuildArgs>
|
||||
|
||||
<StandardSourceBuildCommand>$(ProjectDirectory)\build$(ShellExtension)</StandardSourceBuildCommand>
|
||||
<CliInternalReleaseTag>source</CliInternalReleaseTag>
|
||||
<CliInternalBuildVersion>30000001-1</CliInternalBuildVersion>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<ArcadeSdkOverride Include="Microsoft.DotNet.Arcade.Sdk" Group="ARCADE" Version="$(arcadeOutputPackageVersion)"/>
|
||||
<ArcadeBootstrapSdkOverride Include="Microsoft.DotNet.Arcade.Sdk" Group="ARCADE" Version="$(ArcadeBootstrapVersion)" Location="$(ArcadeBootstrapDir)microsoft.dotnet.arcade.sdk/$(ArcadeBootstrapVersion)" />
|
||||
<ArcadePackagingOverride Include="Microsoft.DotNet.Build.Tasks.Packaging" Group="ARCADE_PACKAGING" Version="$(arcadeOutputPackageVersion)"/>
|
||||
<ArcadeTargetFrameworkOverride Include="Microsoft.DotNet.Build.Tasks.TargetFramework" Group="ARCADE_TGT_FX" Version="$(arcadeOutputPackageVersion)"/>
|
||||
<ArcadeSharedFrameworkSdkOverride Include="Microsoft.DotNet.SharedFramework.Sdk" Group="ARCADE_SHARED_FX_SDK" Version="$(arcadeOutputPackageVersion)"/>
|
||||
<ILSdkOverride Include="Microsoft.NET.Sdk.IL" Group="IL" />
|
||||
<MsBuildTraversalSdkOverride Include="Microsoft.Build.Traversal" Group="MSBUILD_TRAVERSAL" Version="2.0.2"/>
|
||||
<WindowsDesktopSdkOverride Include="Microsoft.Net.Sdk.WindowsDesktop" Group="WINDOWS_DESKTOP" Location="$(ToolsDir)EmptySdk"/>
|
||||
<ExtraPackageVersionPropsPackageInfo Include="DotnetCliInternalVersion" Version="3.0.100-$(CliInternalReleaseTag)-$(CliInternalBuildVersion)" />
|
||||
</ItemGroup>
|
||||
|
||||
<!-- Additional pseudo-versions that some repos depend on -->
|
||||
<ItemGroup>
|
||||
<UseSourceBuiltSdkOverride Condition="'$(UseBootstrapArcade)' != 'true'" Include="@(ArcadeSdkOverride)" />
|
||||
<UseSourceBuiltSdkOverride Condition="'$(UseBootstrapArcade)' == 'true'" Include="@(ArcadeBootstrapSdkOverride)" />
|
||||
<!-- we don't produce the Windows version of this package but that's the one core-sdk keys off of for the ASP.NET version -->
|
||||
<ExtraPackageVersionPropsPackageInfo Include="MicrosoftAspNetCoreAppRuntimewinx64PackageVersion" Version="$(aspnetcoreOutputPackageVersion)" />
|
||||
<!-- same thing here for CLI -->
|
||||
<ExtraPackageVersionPropsPackageInfo Include="MicrosoftNETCoreAppRuntimewinx64Version" Version="%24(MicrosoftNETCoreAppRefPackageVersion)" />
|
||||
<!-- same thing here for toolset -->
|
||||
<ExtraPackageVersionPropsPackageInfo Include="MicrosoftNETCoreAppRuntimewinx64PackageVersion" Version="%24(MicrosoftNETCoreAppRefPackageVersion)" />
|
||||
<!-- same thing here for core-sdk -->
|
||||
<ExtraPackageVersionPropsPackageInfo Include="MicrosoftNETCoreAppRuntimePackageVersion" Version="%24(MicrosoftNETCoreAppRefPackageVersion)" />
|
||||
<ExtraPackageVersionPropsPackageInfo Include="MicrosoftNETCoreAppRuntimeVersion" Version="%24(MicrosoftNETCoreAppRefPackageVersion)" />
|
||||
<ExtraPackageVersionPropsPackageInfo Include="MicrosoftNETCoreAppHostPackageVersion" Version="%24(MicrosoftNETCoreAppRefPackageVersion)" />
|
||||
<!-- core-sdk uses this property for ASP.NET blob directory -->
|
||||
<ExtraPackageVersionPropsPackageInfo Include="VSRedistCommonAspNetCoreTargetingPackx6430PackageVersion" Version="$(aspnetcoreOutputPackageVersion)" />
|
||||
|
||||
<!-- Used by installer to determine sdk version -->
|
||||
<ExtraPackageVersionPropsPackageInfo Include="MicrosoftDotnetToolsetInternalPackageVersion" Version="%24(MicrosoftNETSdkPackageVersion)" />
|
||||
|
||||
<!-- Used by sdk to determine msbuild version for fsharp -->
|
||||
<ExtraPackageVersionPropsPackageInfo Include="FSharpBuildVersion" Version="%24(MicrosoftBuildPackageVersion)" />
|
||||
|
||||
<!-- property used by Arcade to determine what version of SourceLink to use -->
|
||||
<!-- if MicrosoftSourceLinkCommonPackageVersion is non-empty, then we've already built SourceLink, regardless of whether
|
||||
this is the production or offline build, so we should use that version. -->
|
||||
<ExtraPackageVersionPropsPackageInfo Include="MicrosoftSourceLinkVersion" Version="%24(MicrosoftSourceLinkCommonPackageVersion)" />
|
||||
|
||||
<!-- non-rid-specific versions of RID-specific version variables to use for bootstrapping -->
|
||||
<ExtraPackageVersionPropsPackageInfo Include="MicrosoftAspNetCoreAppRuntimeVersion" Version="%24(MicrosoftAspNetCoreAppRefPackageVersion)" />
|
||||
<ExtraPackageVersionPropsPackageInfo Include="MicrosoftNETCoreAppCrossgen2Version" Version="%24(MicrosoftNETCoreAppRefPackageVersion)" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
|
|
|
@ -1,8 +1,48 @@
|
|||
<Project InitialTargets="SetNuGetPackagesEnvironment">
|
||||
<Project>
|
||||
|
||||
<ItemGroup>
|
||||
<EnvironmentVariables Include="LatestCommit=$(GitCommitHash)" />
|
||||
<EnvironmentVariables Include="OfficialBuildId=$(OfficialBuildId)" />
|
||||
<Import Project="$([MSBuild]::GetPathOfFileAbove(Directory.Build.targets, $(MSBuildThisFileDirectory)..))" />
|
||||
|
||||
<PropertyGroup Condition="'$(UseInnerClone)' == 'true'">
|
||||
<BuildArgs>$(BuildArgs) /p:UseInnerClone=true</BuildArgs>
|
||||
<BuildArgs>$(BuildArgs) /p:CopySrcInsteadOfClone=true</BuildArgs>
|
||||
<BuildArgs>$(BuildArgs) /p:CopyWipIntoInnerSourceBuildRepo=true</BuildArgs>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup>
|
||||
<BuildCommand Condition="'$(BuildCommand)' == '' and '$(IsUtilityProject)' != 'true'">$(BuildScript) $(BuildActions) $(BuildArgs)</BuildCommand>
|
||||
|
||||
<!-- The default PackageVersionPropsFlowType behavior (DependenciesOnly) triggers logic that looks for a
|
||||
Version.Details.xml file. Setting the type to AllPackages will skip that logic. -->
|
||||
<PackageVersionPropsFlowType Condition="'$(IsUtilityProject)' == 'true'">AllPackages</PackageVersionPropsFlowType>
|
||||
|
||||
<!-- MinimalConsoleLogOutput determines if the repository build should be logged to a separate file or directly to the console. -->
|
||||
<RepoConsoleLogFile>$(ArtifactsLogDir)$(RepositoryName).log</RepoConsoleLogFile>
|
||||
<MinimalConsoleLogOutput Condition="'$(MinimalConsoleLogOutput)' == '' and '$(ContinuousIntegrationBuild)' == 'true'">true</MinimalConsoleLogOutput>
|
||||
|
||||
<PackageReportDataFile>$(PackageReportDir)prebuilt-usage.xml</PackageReportDataFile>
|
||||
<ProjectAssetsJsonArchiveFile>$(PackageReportDir)all-project-assets-json-files.zip</ProjectAssetsJsonArchiveFile>
|
||||
<ProdConManifestFile>$(PackageReportDir)prodcon-build.xml</ProdConManifestFile>
|
||||
<RepoManifestFile>$([MSBuild]::NormalizePath('$(ProjectDirectory)', 'artifacts', 'RepoManifest.xml'))</RepoManifestFile>
|
||||
</PropertyGroup>
|
||||
|
||||
<!-- Exclude repositories that currently don't build when not building source-only. -->
|
||||
<ItemGroup Condition="'$(DotNetBuildSourceOnly)' != 'true'">
|
||||
<RepositoryReference Remove="roslyn" />
|
||||
<RepositoryReference Remove="wpf" />
|
||||
<RepositoryReference Remove="msbuild" />
|
||||
<RepositoryReference Remove="roslyn-analyzers" />
|
||||
<RepositoryReference Remove="aspnetcore" />
|
||||
<RepositoryReference Remove="razor" />
|
||||
<RepositoryReference Remove="deployment-tools" />
|
||||
<RepositoryReference Remove="format" />
|
||||
<RepositoryReference Remove="nuget-client" />
|
||||
<RepositoryReference Remove="templating" />
|
||||
<RepositoryReference Remove="test-templates" />
|
||||
<RepositoryReference Remove="fsharp" />
|
||||
<RepositoryReference Remove="vstest" />
|
||||
<RepositoryReference Remove="sdk" />
|
||||
<RepositoryReference Remove="aspire" />
|
||||
<RepositoryReference Remove="installer" />
|
||||
</ItemGroup>
|
||||
|
||||
<UsingTask AssemblyFile="$(XPlatSourceBuildTasksAssembly)" TaskName="AddSourceToNuGetConfig" />
|
||||
|
@ -14,32 +54,25 @@
|
|||
<UsingTask AssemblyFile="$(XPlatSourceBuildTasksAssembly)" TaskName="WritePackageVersionsProps" />
|
||||
<UsingTask AssemblyFile="$(XPlatSourceBuildTasksAssembly)" TaskName="WritePackageUsageData" />
|
||||
<UsingTask AssemblyFile="$(XPlatSourceBuildTasksAssembly)" TaskName="WriteUsageReports" />
|
||||
<UsingTask AssemblyFile="$(XPlatSourceBuildTasksAssembly)" TaskName="ZipFileExtractToDirectory" />
|
||||
<UsingTask AssemblyFile="$(XPlatSourceBuildTasksAssembly)" TaskName="ReplaceTextInFile" />
|
||||
|
||||
<Target Name="BuildRepoReferences" Condition="'@(RepositoryReference)' != '' and '$(SkipRepoReferences)' != 'true'">
|
||||
<Message Importance="High" Text="Building dependencies [@(RepositoryReference)] needed by '$(RepositoryName)'." />
|
||||
<ItemGroup>
|
||||
<_DependentProject Include="@(RepositoryReference -> '%(Identity).proj')" />
|
||||
</ItemGroup>
|
||||
|
||||
<MSBuild Projects="@(_DependentProject)" Targets="Build" BuildInParallel="$(BuildInParallel)" StopOnFirstFailure="true" />
|
||||
</Target>
|
||||
|
||||
<!-- Update NuGet feeds in the repo -->
|
||||
<Target Name="UpdateNuGetConfig"
|
||||
BeforeTargets="Build"
|
||||
Condition="'$(NuGetConfigFile)' != '' OR '@(NuGetConfigFiles)' != ''"
|
||||
Condition="'$(NuGetConfigFile)' != '' or '@(NuGetConfigFiles)' != ''"
|
||||
Inputs="$(MSBuildProjectFullPath)"
|
||||
Outputs="$(RepoCompletedSemaphorePath)UpdateNuGetConfig.complete">
|
||||
|
||||
Outputs="$(BaseIntermediateOutputPath)UpdateNuGetConfig.complete">
|
||||
<PropertyGroup>
|
||||
<SourceBuiltNuGetSourceName>source-built</SourceBuiltNuGetSourceName>
|
||||
<ExtraSourcesNuGetSourceName>ExtraSources</ExtraSourcesNuGetSourceName>
|
||||
<SourceBuildSources>$(SourceBuiltNuGetSourceName)</SourceBuildSources>
|
||||
<SourceBuildSources Condition="'$(ExtraRestoreSourcePath)' != ''">$(SourceBuildSources);$(ExtraSourcesNuGetSourceName)</SourceBuildSources>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup Condition="'$(DotNetBuildSourceOnly)' == 'true'">
|
||||
<PrebuiltNuGetSourceName>prebuilt</PrebuiltNuGetSourceName>
|
||||
<PreviouslySourceBuiltNuGetSourceName>previously-source-built</PreviouslySourceBuiltNuGetSourceName>
|
||||
<ReferencePackagesNuGetSourceName>reference-packages</ReferencePackagesNuGetSourceName>
|
||||
<SourceBuiltNuGetSourceName>source-built</SourceBuiltNuGetSourceName>
|
||||
<ExtraSourcesNuGetSourceName>ExtraSources</ExtraSourcesNuGetSourceName>
|
||||
<SourceBuildSources>$(PrebuiltNuGetSourceName);$(PreviouslySourceBuiltNuGetSourceName);$(ReferencePackagesNuGetSourceName);$(SourceBuiltNuGetSourceName)</SourceBuildSources>
|
||||
<SourceBuildSources Condition="'$(ExtraRestoreSourcePath)' != ''">$(SourceBuildSources);$(ExtraSourcesNuGetSourceName)</SourceBuildSources>
|
||||
<SourceBuildSources>$(SourceBuildSources);$(PrebuiltNuGetSourceName);$(PreviouslySourceBuiltNuGetSourceName);$(ReferencePackagesNuGetSourceName)</SourceBuildSources>
|
||||
</PropertyGroup>
|
||||
|
||||
<!-- Update the detected or manually specified NuGetConfigFile, but also allow multiple. -->
|
||||
|
@ -49,23 +82,24 @@
|
|||
|
||||
<RemoveInternetSourcesFromNuGetConfig
|
||||
NuGetConfigFile="%(NuGetConfigFiles.Identity)"
|
||||
BuildWithOnlineSources="$(BuildWithOnlineSources)"
|
||||
KeepFeedPrefixes="@(KeepFeedPrefixes)" />
|
||||
BuildWithOnlineSources="$(DotNetBuildWithOnlineSources)"
|
||||
KeepFeedPrefixes="@(KeepFeedPrefixes)"
|
||||
Condition="'$(DotNetBuildSourceOnly)' == 'true'" />
|
||||
|
||||
<AddSourceToNuGetConfig NuGetConfigFile="%(NuGetConfigFiles.Identity)"
|
||||
SourceName="$(PrebuiltNuGetSourceName)"
|
||||
SourcePath="$(PrebuiltPackagesPath)"
|
||||
/>
|
||||
Condition="'$(DotNetBuildSourceOnly)' == 'true'" />
|
||||
|
||||
<AddSourceToNuGetConfig NuGetConfigFile="%(NuGetConfigFiles.Identity)"
|
||||
SourceName="$(PreviouslySourceBuiltNuGetSourceName)"
|
||||
SourcePath="$(PrebuiltSourceBuiltPackagesPath)"
|
||||
/>
|
||||
Condition="'$(DotNetBuildSourceOnly)' == 'true'" />
|
||||
|
||||
<AddSourceToNuGetConfig NuGetConfigFile="%(NuGetConfigFiles.Identity)"
|
||||
SourceName="$(ReferencePackagesNuGetSourceName)"
|
||||
SourcePath="$(ReferencePackagesDir)"
|
||||
/>
|
||||
Condition="'$(DotNetBuildSourceOnly)' == 'true'" />
|
||||
|
||||
<AddSourceToNuGetConfig NuGetConfigFile="%(NuGetConfigFiles.Identity)"
|
||||
SourceName="$(SourceBuiltNuGetSourceName)"
|
||||
|
@ -78,28 +112,54 @@
|
|||
|
||||
<UpdateNuGetConfigPackageSourcesMappings
|
||||
NuGetConfigFile="%(NuGetConfigFiles.Identity)"
|
||||
BuildWithOnlineSources="$(BuildWithOnlineSources)"
|
||||
BuildWithOnlineSources="$(DotNetBuildWithOnlineSources)"
|
||||
SourceBuildSources="$(SourceBuildSources)" />
|
||||
|
||||
<WriteLinesToFile File="$(RepoCompletedSemaphorePath)UpdateNuGetConfig.complete" Overwrite="true" />
|
||||
<MakeDir Directories="$(BaseIntermediateOutputPath)" />
|
||||
<Touch Files="$(BaseIntermediateOutputPath)UpdateNuGetConfig.complete" AlwaysCreate="true">
|
||||
<Output TaskParameter="TouchedFiles" ItemName="FileWrites" />
|
||||
</Touch>
|
||||
</Target>
|
||||
|
||||
<!-- Update the SDK version in the repo's global.json file.
|
||||
This guarantees that all repositories build with the VMR's SDK version. -->
|
||||
<Target Name="UpdateGlobalJsonVersions"
|
||||
BeforeTargets="Build"
|
||||
Condition="'$(GlobalJsonFile)' != ''"
|
||||
Inputs="$(MSBuildProjectFullPath)"
|
||||
Outputs="$(RepoCompletedSemaphorePath)UpdateGlobalJsonVersions.complete">
|
||||
Inputs="$(MSBuildProjectFullPath);$(MSBuildThisFileFullPath)"
|
||||
Outputs="$(BaseIntermediateOutputPath)UpdateGlobalJsonVersions.complete">
|
||||
<ItemGroup>
|
||||
<_PossibleCliVersionJsonPath Include="sdk.version" />
|
||||
<_PossibleCliVersionJsonPath Include="tools.dotnet" />
|
||||
<_PossibleCliVersionJsonPath Include="sdk:version" />
|
||||
<_PossibleCliVersionJsonPath Include="tools:dotnet" />
|
||||
</ItemGroup>
|
||||
|
||||
<UpdateJson JsonFilePath="$(GlobalJsonFile)"
|
||||
PathToAttribute="%(_PossibleCliVersionJsonPath.Identity)"
|
||||
NewAttributeValue="$(SDK_VERSION)"
|
||||
NewAttributeValue="$(NETCoreSdkVersion)"
|
||||
SkipUpdateIfMissingKey="true" />
|
||||
|
||||
<WriteLinesToFile File="$(RepoCompletedSemaphorePath)UpdateGlobalJsonVersions.complete" Overwrite="true" />
|
||||
<!-- VB PoC, remove the global runtimes until https://github.com/dotnet/arcade/issues/14283 is resolved. -->
|
||||
<UpdateJson JsonFilePath="$(GlobalJsonFile)"
|
||||
PathToAttribute="tools:runtimes"
|
||||
SkipUpdateIfMissingKey="true" />
|
||||
|
||||
<MakeDir Directories="$(BaseIntermediateOutputPath)" />
|
||||
<Touch Files="$(BaseIntermediateOutputPath)UpdateGlobalJsonVersions.complete" AlwaysCreate="true">
|
||||
<Output TaskParameter="TouchedFiles" ItemName="FileWrites" />
|
||||
</Touch>
|
||||
</Target>
|
||||
|
||||
<!-- TODO: Remove when all repos use a consistent set of eng/common files: https://github.com/dotnet/source-build/issues/3710. -->
|
||||
<Target Name="UpdateEngCommonFiles"
|
||||
Condition="'$(UpdateEngCommonFiles)' == 'true' or '$(DotNetBuildSourceOnly)' != 'true'"
|
||||
BeforeTargets="Build">
|
||||
<ItemGroup>
|
||||
<OrchestratorEngCommonFile Include="$(RepositoryEngineeringDir)common\**\*" />
|
||||
</ItemGroup>
|
||||
|
||||
<Copy SourceFiles="@(OrchestratorEngCommonFile)"
|
||||
DestinationFolder="$(ProjectDirectory)eng\common\%(RecursiveDir)"
|
||||
SkipUnchangedFiles="true" />
|
||||
</Target>
|
||||
|
||||
<!-- Before a repository builds, set up the version property files that override the repo's defaults.
|
||||
|
@ -107,18 +167,11 @@
|
|||
<Target Name="CreateBuildInputProps"
|
||||
BeforeTargets="Build"
|
||||
Inputs="$(MSBuildProjectFullPath)"
|
||||
Outputs="$(RepoCompletedSemaphorePath)CreateBuildInputProps.complete">
|
||||
|
||||
Outputs="$(BaseIntermediateOutputPath)CreateBuildInputProps.complete">
|
||||
<ItemGroup>
|
||||
<_CurrentSourceBuiltPackages Include="$(SourceBuiltPackagesPath)*.nupkg"
|
||||
Exclude="$(SourceBuiltPackagesPath)*.symbols.nupkg" />
|
||||
|
||||
<!-- TODO: Remove Remove System.Drawing.Common exclusion once previous source-build artifacts have been updated to no longer include it.
|
||||
System.Drawing.Common is excluded in response to https://github.com/dotnet/runtime/pull/83356 in order to avoid rebuilts and
|
||||
bootstrap issues as a result. This wouldn't be an in the future once Runtime onboards to the per repo pvp feature
|
||||
(https://github.com/dotnet/source-build/issues/3043). -->
|
||||
<_PreviouslyBuiltSourceBuiltPackages Include="$(PrebuiltSourceBuiltPackagesPath)*.nupkg"
|
||||
Exclude="$(PrebuiltSourceBuiltPackagesPath)System.Drawing.Common*.nupkg" />
|
||||
<_PreviouslyBuiltSourceBuiltPackages Include="$(PrebuiltSourceBuiltPackagesPath)*.nupkg" />
|
||||
</ItemGroup>
|
||||
|
||||
<Error Condition="'$(PackageVersionPropsFlowType)' != 'AllPackages' and '$(PackageVersionPropsFlowType)' != 'DependenciesOnly'"
|
||||
|
@ -157,8 +210,8 @@
|
|||
<!-- Write a single file that contains imports for both the current and previously built packages -->
|
||||
<PropertyGroup>
|
||||
<PackageVersionsPropsContents>
|
||||
<![CDATA[<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="14.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<![CDATA[
|
||||
<Project>
|
||||
<Import Project="$(PreviouslySourceBuiltPackageVersionPropsPath)" />
|
||||
<Import Project="$(CurrentSourceBuiltPackageVersionPropsPath)" />
|
||||
</Project>
|
||||
|
@ -172,38 +225,72 @@
|
|||
|
||||
<Message Importance="High" Text="$(RepositoryName) using package version properties saved at $(CurrentSourceBuiltPackageVersionPropsPath) and $(PreviouslySourceBuiltPackageVersionPropsPath)" />
|
||||
|
||||
<WriteLinesToFile File="$(RepoCompletedSemaphorePath)CreateBuildInputProps.complete" Overwrite="true" />
|
||||
<MakeDir Directories="$(BaseIntermediateOutputPath)" />
|
||||
<Touch Files="$(BaseIntermediateOutputPath)CreateBuildInputProps.complete" AlwaysCreate="true">
|
||||
<Output TaskParameter="TouchedFiles" ItemName="FileWrites" />
|
||||
</Touch>
|
||||
</Target>
|
||||
|
||||
<!-- SkipRepoReferences is a developer innerloop switch to skip building dependencies. -->
|
||||
<Target Name="BuildRepoReferences"
|
||||
Condition="'@(RepositoryReference)' != '' and '$(SkipRepoReferences)' != 'true'">
|
||||
<Message Importance="High" Text="Building dependencies [@(RepositoryReference)] needed by '$(RepositoryName)'." />
|
||||
|
||||
<ItemGroup>
|
||||
<_DependentProject Include="@(RepositoryReference -> '%(Identity).proj')" />
|
||||
</ItemGroup>
|
||||
|
||||
<MSBuild Projects="@(_DependentProject)"
|
||||
Targets="Build"
|
||||
BuildInParallel="$(BuildInParallel)"
|
||||
StopOnFirstFailure="true" />
|
||||
</Target>
|
||||
|
||||
<Target Name="Build"
|
||||
DependsOnTargets="BuildRepoReferences"
|
||||
Inputs="$(MSBuildProjectFullPath)"
|
||||
Outputs="$(RepoCompletedSemaphorePath)Build.complete">
|
||||
Outputs="$(BaseIntermediateOutputPath)Build.complete">
|
||||
<Exec Command="$(DotnetTool) build-server shutdown" />
|
||||
|
||||
<Exec Command="$(DotnetToolCommand) build-server shutdown" />
|
||||
|
||||
<Message Importance="High" Text="[$([System.DateTime]::Now.ToString('HH:mm:ss.ff'))] Building $(ProjectBuildReason)" />
|
||||
<Message Importance="High" Text="Running command:" />
|
||||
<Message Importance="High" Text="[$([System.DateTime]::Now.ToString('HH:mm:ss.ff'))] Building $(RepositoryName)" />
|
||||
<Message Importance="High" Text="Running command:" Condition="'$(BuildCommand)' != ''" />
|
||||
<Message Importance="High" Text=" $(BuildCommand)" Condition="'$(BuildCommand)' != ''" />
|
||||
<Message Importance="High" Text=" Using custom build target" Condition="'$(BuildCommand)' == ''" />
|
||||
<Message Importance="High" Text=" Log: $(RepoConsoleLogFile)" />
|
||||
<Message Importance="High" Text=" With Environment Variables:" />
|
||||
<Message Importance="High" Text=" %(EnvironmentVariables.Identity)" />
|
||||
<Message Importance="High" Text=" Log: $(RepoConsoleLogFile)" Condition="'$(BuildCommand)' != '' and '$(MinimalConsoleLogOutput)' == 'true'" />
|
||||
<Message Importance="High" Text=" With Environment Variables:" Condition="'$(BuildCommand)' != ''" />
|
||||
<Message Importance="High" Text=" %(EnvironmentVariables.Identity)" Condition="'$(BuildCommand)' != ''" />
|
||||
<CallTarget Targets="RepoBuild" />
|
||||
<Message Importance="High" Text="[$([System.DateTime]::Now.ToString('HH:mm:ss.ff'))] Building $(ProjectBuildReason)...done" />
|
||||
<Message Importance="High" Text="[$([System.DateTime]::Now.ToString('HH:mm:ss.ff'))] Building $(RepositoryName)...done" />
|
||||
|
||||
<MakeDir Directories="$(BaseIntermediateOutputPath)" />
|
||||
<Touch Files="$(BaseIntermediateOutputPath)Build.complete" AlwaysCreate="true">
|
||||
<Output TaskParameter="TouchedFiles" ItemName="FileWrites" />
|
||||
</Touch>
|
||||
|
||||
<WriteLinesToFile File="$(RepoCompletedSemaphorePath)Build.complete" Overwrite="true" />
|
||||
<OnError ExecuteTargets="ReportRepoError" />
|
||||
</Target>
|
||||
|
||||
<Target Name="RepoBuild">
|
||||
<ItemGroup>
|
||||
<EnvironmentVariables Condition="'$(NUGET_PACKAGES)'!=''" Include="NUGET_PACKAGES=$(NUGET_PACKAGES)" />
|
||||
</ItemGroup>
|
||||
<Target Name="RepoBuild"
|
||||
Condition="'$(BuildCommand)' != ''">
|
||||
<Message Text="DirSize Before Building $(RepositoryName)" Importance="High"
|
||||
Condition=" '$(CleanWhileBuilding)' == 'true' and '$(BuildOS)' != 'windows'" />
|
||||
<Exec Command="df -h $(RepoRoot)"
|
||||
Condition=" '$(CleanWhileBuilding)' == 'true' and '$(BuildOS)' != 'windows'" />
|
||||
|
||||
<PropertyGroup>
|
||||
<FullCommand Condition="'$(LogVerbosityOptOut)' != 'true'">$(BuildCommand) /v:$(LogVerbosity) $(RedirectRepoOutputToLog)</FullCommand>
|
||||
<FullCommand Condition="'$(LogVerbosityOptOut)' == 'true'">$(BuildCommand) $(RedirectRepoOutputToLog)</FullCommand>
|
||||
<FullCommand>$(BuildCommand)</FullCommand>
|
||||
<FullCommand Condition="'$(LogVerbosityOptOut)' != 'true'">$(FullCommand) /v:$(LogVerbosity)</FullCommand>
|
||||
<FullCommand Condition="'$(MinimalConsoleLogOutput)' == 'true'">$(FullCommand) >> $(RepoConsoleLogFile) 2>&1</FullCommand>
|
||||
</PropertyGroup>
|
||||
|
||||
<MakeDir Directories="$([System.IO.Path]::GetDirectoryName('$(RepoConsoleLogFile)'));
|
||||
$(SourceBuiltPackagesPath)" />
|
||||
|
||||
<!-- Create directories for extra debugging. -->
|
||||
<MakeDir Directories="$(MSBuildDebugPathTargetDir);
|
||||
$(RoslynDebugPathTargetDir);
|
||||
$(AspNetRazorBuildServerLogDir)"
|
||||
Condition="'$(EnableExtraDebugging)' == 'true'" />
|
||||
|
||||
<Exec Command="$(FullCommand)"
|
||||
WorkingDirectory="$(ProjectDirectory)"
|
||||
EnvironmentVariables="@(EnvironmentVariables)"
|
||||
|
@ -211,30 +298,12 @@
|
|||
</Target>
|
||||
|
||||
<Target Name="ReportRepoError">
|
||||
<Message Importance="High" Text="$([System.IO.File]::ReadAllText('$(RepoConsoleLogFile)'))" Condition="Exists('$(RepoConsoleLogFile)')" />
|
||||
<Message Importance="High" Text="$([System.IO.File]::ReadAllText('$(RepoConsoleLogFile)'))" Condition="Exists('$(RepoConsoleLogFile)') and '$(MinimalConsoleLogOutput)' == 'true'" />
|
||||
<Message Importance="High" Text="'$(RepositoryName)' failed during build." />
|
||||
<Message Importance="High" Text="See '$(RepoConsoleLogFile)' for more information." Condition="Exists('$(RepoConsoleLogFile)')" />
|
||||
<Message Importance="High" Text="See '$(RepoConsoleLogFile)' for more information." Condition="Exists('$(RepoConsoleLogFile)') and '$(MinimalConsoleLogOutput)' == 'true'" />
|
||||
</Target>
|
||||
|
||||
<Target Name="Package" AfterTargets="Build"
|
||||
Condition="'$(BuildPackagesCommand)' != ''"
|
||||
Inputs="$(MSBuildProjectFullPath)"
|
||||
Outputs="$(RepoCompletedSemaphorePath)Package.complete">
|
||||
<Message Importance="High" Text="[$([System.DateTime]::Now.ToString('HH:mm:ss.ff'))] Packaging $(ProjectBuildReason)" />
|
||||
<Message Importance="High" Text="Running command:" />
|
||||
<Message Importance="High" Text=" $(BuildPackagesCommand)" />
|
||||
<Message Importance="High" Text=" Log: $(RepoConsoleLogFile)" />
|
||||
<Message Importance="High" Text=" With Environment Variables:" />
|
||||
<Message Importance="High" Text=" %(EnvironmentVariables.Identity)" />
|
||||
<Exec Command="$(BuildPackagesCommand) /v:$(LogVerbosity) $(RedirectRepoOutputToLog)"
|
||||
WorkingDirectory="$(ProjectDirectory)"
|
||||
EnvironmentVariables="@(EnvironmentVariables)"
|
||||
IgnoreStandardErrorWarningFormat="true" />
|
||||
<Message Importance="High" Text="[$([System.DateTime]::Now.ToString('HH:mm:ss.ff'))] Packaging $(ProjectBuildReason)...done" />
|
||||
|
||||
<WriteLinesToFile File="$(RepoCompletedSemaphorePath)Package.complete" Overwrite="true" />
|
||||
<OnError ExecuteTargets="ReportRepoError" />
|
||||
</Target>
|
||||
<Target Name="Package" AfterTargets="Build" />
|
||||
|
||||
<Target Name="GatherBuiltPackages">
|
||||
<ItemGroup>
|
||||
|
@ -244,24 +313,95 @@
|
|||
</ItemGroup>
|
||||
</Target>
|
||||
|
||||
<!--
|
||||
Condition should be removed after source-build picks up version of Arcade that has
|
||||
source-build infra changes for removal od inner-clone in VMR build. Until then some
|
||||
repos will produce intermediate packages instead of repo manifest file.
|
||||
|
||||
https://github.com/dotnet/source-build/issues/3930
|
||||
-->
|
||||
<Target Name="CopyRepoArtifacts"
|
||||
AfterTargets="Package"
|
||||
Condition="Exists($(RepoManifestFile))"
|
||||
Inputs="$(RepoManifestFile)"
|
||||
Outputs="$(BaseIntermediateOutputPath)ArtifactsCopy.complete">
|
||||
<XmlPeek XmlInputPath="$(RepoManifestFile)"
|
||||
Query="Build/Artifact/@Path">
|
||||
<Output TaskParameter="Result" ItemName="RepoManifestArtifact" />
|
||||
</XmlPeek>
|
||||
|
||||
<ItemGroup>
|
||||
<RepoManifestAsset Include="@(RepoManifestArtifact)" Condition="'%(Extension)' != '.nupkg'"/>
|
||||
<RepoManifestPackage Include="@(RepoManifestArtifact)" Condition="'%(Extension)' == '.nupkg'"/>
|
||||
<RepoManifestNonShippingPackage Include="@(RepoManifestPackage)" Condition="$([System.String]::Copy('%(Identity)').Contains('$([System.IO.Path]::DirectorySeparatorChar)NonShipping$([System.IO.Path]::DirectorySeparatorChar)'))"/>
|
||||
</ItemGroup>
|
||||
|
||||
<PropertyGroup>
|
||||
<_NupkgsDestination>$(SourceBuiltPackagesPath)</_NupkgsDestination>
|
||||
<_NupkgsDestination Condition="'$(RepositoryName)' == 'source-build-reference-packages'">$(ReferencePackagesDir)</_NupkgsDestination>
|
||||
</PropertyGroup>
|
||||
|
||||
<!-- Building SBRP: At this point the References directory contains the previously-source-built SBRPs,
|
||||
clear it before copying the current SBRPs. This ensures n-1 SBRPs aren't required to build the product repos. -->
|
||||
<RemoveDir
|
||||
Condition="'$(RepositoryName)' == 'source-build-reference-packages'"
|
||||
Directories="$(ReferencePackagesDir)" />
|
||||
|
||||
<!-- Copy nupkgs -->
|
||||
<Copy
|
||||
Condition="'@(RepoManifestPackage)' != ''"
|
||||
SourceFiles="@(RepoManifestPackage)"
|
||||
DestinationFolder="$(_NupkgsDestination)" />
|
||||
|
||||
<!-- Copy assets -->
|
||||
<Copy
|
||||
Condition="'@(RepoManifestAsset)' != ''"
|
||||
SourceFiles="@(RepoManifestAsset)"
|
||||
DestinationFolder="$(SourceBuiltAssetsDir)" />
|
||||
|
||||
<!-- Generate non-shipping package list -->
|
||||
<PropertyGroup>
|
||||
<NonShippingPackagesList Condition="'@(RepoManifestNonShippingPackage)' != ''">$(PackageListsDir)$(NonShippingPackagesListPrefix)$(RepositoryName).lst</NonShippingPackagesList>
|
||||
</PropertyGroup>
|
||||
|
||||
<WriteLinesToFile
|
||||
Condition="'$(NonShippingPackagesList)' != ''"
|
||||
File="$(NonShippingPackagesList)"
|
||||
Lines="@(RepoManifestNonShippingPackage->'%(Filename)%(Extension)')"
|
||||
Overwrite="true" />
|
||||
|
||||
<MakeDir Directories="$(BaseIntermediateOutputPath)" />
|
||||
<Touch Files="$(BaseIntermediateOutputPath)ArtifactsCopy.complete" AlwaysCreate="true">
|
||||
<Output TaskParameter="TouchedFiles" ItemName="FileWrites" />
|
||||
</Touch>
|
||||
</Target>
|
||||
|
||||
<!--
|
||||
This target can be removed after source-build picks up version of Arcade that has
|
||||
source-build infra changes for removal od inner-clone in VMR build. Until then the target
|
||||
is needed for building source-build-reference-packages and arcade repos.
|
||||
|
||||
https://github.com/dotnet/source-build/issues/3930
|
||||
-->
|
||||
<Target Name="ExtractIntermediatePackages"
|
||||
AfterTargets="Package">
|
||||
AfterTargets="Package"
|
||||
Inputs="$(MSBuildProjectFullPath)"
|
||||
Outputs="$(BaseIntermediateOutputPath)IntermediateExtraction.complete">
|
||||
<ItemGroup>
|
||||
<_BuiltIntermediatePackages Condition="'$(PackagesOutput)' != ''" Include="$(PackagesOutput)/Microsoft.SourceBuild.Intermediate.*.nupkg" Exclude="$(PackagesOutput)/*.symbols.nupkg"/>
|
||||
<_BuiltIntermediatePackages Condition="'@(PackagesOutputList)' != ''" Include="%(PackagesOutputList.Identity)/Microsoft.SourceBuild.Intermediate.*.nupkg" Exclude="%(PackagesOutputList.Identity)/*.symbols.nupkg"/>
|
||||
</ItemGroup>
|
||||
|
||||
|
||||
<PropertyGroup Condition="'@(_BuiltIntermediatePackages)' != ''">
|
||||
<_NupkgDestinationPath>$(SourceBuiltPackagesPath)</_NupkgDestinationPath>
|
||||
<!-- SBRP packages unpack into the Reference packages directory instead of into blob-feed packages -->
|
||||
<_NupkgDestinationPath Condition="$([System.String]::Copy(%(_BuiltIntermediatePackages.Identity)).Contains('source-build-reference-packages'))">$(ReferencePackagesDir)</_NupkgDestinationPath>
|
||||
<_NupkgDestinationPath>$(SourceBuiltPackagesPath)</_NupkgDestinationPath>
|
||||
<!-- SBRP packages unpack into the Reference packages directory instead of into blob-feed packages -->
|
||||
<_NupkgDestinationPath Condition="$([System.String]::Copy(%(_BuiltIntermediatePackages.Identity)).Contains('source-build-reference-packages'))">$(ReferencePackagesDir)</_NupkgDestinationPath>
|
||||
</PropertyGroup>
|
||||
|
||||
<ZipFileExtractToDirectory Condition="'@(_BuiltIntermediatePackages)' != ''"
|
||||
SourceArchive="%(_BuiltIntermediatePackages.Identity)"
|
||||
DestinationDirectory="$(SourceBuiltPackagesPath)extractArtifacts/%(_BuiltIntermediatePackages.FileName)/"
|
||||
OverwriteDestination="true" />
|
||||
<Unzip SourceFiles="@(_BuiltIntermediatePackages)"
|
||||
DestinationFolder="$(SourceBuiltPackagesPath)extractArtifacts/%(_BuiltIntermediatePackages.FileName)/"
|
||||
SkipUnchangedFiles="true"
|
||||
Condition="'@(_BuiltIntermediatePackages)' != ''" />
|
||||
|
||||
<ItemGroup Condition="'@(_BuiltIntermediatePackages)' != ''">
|
||||
<SourceBuiltNupkgFiles Include="$(SourceBuiltPackagesPath)extractArtifacts/**/artifacts/*.nupkg" />
|
||||
|
@ -272,7 +412,7 @@
|
|||
</ItemGroup>
|
||||
|
||||
<!-- Copy lists of NonShipping packages to prebuilt-report dir -->
|
||||
<Copy SourceFiles="@(NonShippingPackageLists)" DestinationFolder="$(PackageReportDir)packagelists/" />
|
||||
<Copy SourceFiles="@(NonShippingPackageLists)" DestinationFolder="$(PackageListsDir)" />
|
||||
|
||||
<!-- Building SBRP: At this point the References directory contains the previously-source-built SBRPs,
|
||||
clear it before moving the current SBRPs. This ensures n-1 SBRPs aren't required to build the product repos. -->
|
||||
|
@ -299,6 +439,10 @@
|
|||
Condition="Exists('$(SourceBuiltPackagesPath)extractArtifacts/')"
|
||||
Directories="$(SourceBuiltPackagesPath)extractArtifacts/" />
|
||||
|
||||
<MakeDir Directories="$(BaseIntermediateOutputPath)" />
|
||||
<Touch Files="$(BaseIntermediateOutputPath)IntermediateExtraction.complete" AlwaysCreate="true">
|
||||
<Output TaskParameter="TouchedFiles" ItemName="FileWrites" />
|
||||
</Touch>
|
||||
</Target>
|
||||
|
||||
<!-- Copy restored packages from inner build to ensure they're included in the
|
||||
|
@ -306,25 +450,22 @@
|
|||
<Target Name="CopyInnerBuildRestoredPackages"
|
||||
AfterTargets="Package">
|
||||
<ItemGroup>
|
||||
<_InnerPackageCacheFiles Include="$(ProjectDirectory)artifacts/source-build/self/package-cache/**/*" />
|
||||
<_InnerPackageCacheFiles Include="$(ProjectDirectory)artifacts/sb/package-cache/**/*" />
|
||||
</ItemGroup>
|
||||
|
||||
<Copy SourceFiles="@(_InnerPackageCacheFiles)"
|
||||
DestinationFiles="$(PackagesDir)%(RecursiveDir)%(Filename)%(Extension)"
|
||||
DestinationFiles="$(NuGetPackageRoot)%(RecursiveDir)%(Filename)%(Extension)"
|
||||
Condition=" '@(_InnerPackageCacheFiles)' != '' " />
|
||||
</Target>
|
||||
|
||||
<Target Name="CopyPackage"
|
||||
AfterTargets="Package"
|
||||
Condition="'$(PackagesOutput)' != '' OR '@(PackagesOutputList)' != ''"
|
||||
DependsOnTargets="GatherBuiltPackages"
|
||||
Inputs="$(MSBuildProjectFullPath)"
|
||||
Outputs="$(RepoCompletedSemaphorePath)CopyPackage.complete">
|
||||
DependsOnTargets="GatherBuiltPackages">
|
||||
<Copy SourceFiles="@(_BuiltPackages)"
|
||||
DestinationFolder="$(SourceBuiltPackagesPath)"
|
||||
Condition="'@(_BuiltPackages)'!=''" />
|
||||
|
||||
<WriteLinesToFile File="$(RepoCompletedSemaphorePath)CopyPackage.complete" Overwrite="true" />
|
||||
Condition="'@(_BuiltPackages)'!=''"
|
||||
SkipUnchangedFiles="true" />
|
||||
</Target>
|
||||
|
||||
<Target Name="RemoveBuiltPackagesFromCache"
|
||||
|
@ -332,12 +473,11 @@
|
|||
Condition="'@(_BuiltPackages)'!=''"
|
||||
DependsOnTargets="GatherBuiltPackages"
|
||||
Inputs="$(MSBuildProjectFullPath)"
|
||||
Outputs="$(RepoCompletedSemaphorePath)RemoveBuiltPackagesFromCache.complete">
|
||||
|
||||
Outputs="$(BaseIntermediateOutputPath)RemoveBuiltPackagesFromCache.complete">
|
||||
<ItemGroup>
|
||||
<!-- Excluding Arcade here will keep it in the cache, because that's where we're running from.
|
||||
Subsequent projects will get Arcade from eng/source-built-sdks. -->
|
||||
<PackagePaths Include="@(_BuiltPackages)" Exclude="$(PackagesOutput)/Microsoft.DotNet.Arcade.Sdk.*.nupkg" />
|
||||
<!-- Excluding Arcade here will keep it in the cache, because that's where we're running from.
|
||||
Subsequent projects will get Arcade from eng/source-built-sdks. -->
|
||||
<PackagePaths Include="@(_BuiltPackages)" Exclude="$(PackagesOutput)/Microsoft.DotNet.Arcade.Sdk.*.nupkg" />
|
||||
</ItemGroup>
|
||||
|
||||
<ReadNuGetPackageInfos PackagePaths="@(PackagePaths)">
|
||||
|
@ -348,62 +488,59 @@
|
|||
and then delete all expanded files and the nupkg from the package cache so the next time
|
||||
the package is used, it will reload the source-built version -->
|
||||
<ItemGroup>
|
||||
<_FilesToCopy Include="$(PackagesDir)$([System.String]::copy('%(_BuiltPackageInfos.PackageId)').ToLower())/%(_BuiltPackageInfos.PackageVersion)/**/*.nupkg" />
|
||||
<_FilesToDelete Include="$(PackagesDir)$([System.String]::copy('%(_BuiltPackageInfos.PackageId)').ToLower())/%(_BuiltPackageInfos.PackageVersion)/**/*.*" />
|
||||
<_FilesToCopy Include="$(NuGetPackageRoot)$([System.String]::copy('%(_BuiltPackageInfos.PackageId)').ToLowerInvariant())/%(_BuiltPackageInfos.PackageVersion)/**/*.nupkg" />
|
||||
<_FilesToDelete Include="$(NuGetPackageRoot)$([System.String]::copy('%(_BuiltPackageInfos.PackageId)').ToLowerInvariant())/%(_BuiltPackageInfos.PackageVersion)/**/*.*" />
|
||||
</ItemGroup>
|
||||
|
||||
<Copy SourceFiles="@(_FilesToCopy)" DestinationFolder="$(PreviouslyRestoredPackagesPath)$(RepositoryName)/" />
|
||||
<Delete Files="@(_FilesToDelete)" />
|
||||
|
||||
<WriteLinesToFile File="$(RepoCompletedSemaphorePath)RemoveBuiltPackagesFromCache.complete" Overwrite="true" />
|
||||
<MakeDir Directories="$(BaseIntermediateOutputPath)" />
|
||||
<Touch Files="$(BaseIntermediateOutputPath)RemoveBuiltPackagesFromCache.complete" AlwaysCreate="true">
|
||||
<Output TaskParameter="TouchedFiles" ItemName="FileWrites" />
|
||||
</Touch>
|
||||
</Target>
|
||||
|
||||
<Target Name="DisplayDirSizeBeforeBuild"
|
||||
BeforeTargets="Build"
|
||||
Condition=" '$(CleanWhileBuilding)' == 'true' ">
|
||||
<Message Text="DirSize Before Building $(RepositoryName)" Importance="High" />
|
||||
<Exec Command="df -h $(ProjectDir)" />
|
||||
</Target>
|
||||
<Target Name="DisplayDirSizeAfterBuild"
|
||||
AfterTargets="Build"
|
||||
BeforeTargets="CleanupRepo"
|
||||
Condition=" '$(CleanWhileBuilding)' == 'true' ">
|
||||
<Message Text="DirSize After Building $(RepositoryName)" Importance="High" />
|
||||
<Exec Command="df -h $(ProjectDir)" />
|
||||
</Target>
|
||||
<Target Name="DisplayDirSizeAfterClean"
|
||||
AfterTargets="CleanupRepo"
|
||||
Condition=" '$(CleanWhileBuilding)' == 'true' ">
|
||||
<Message Text="DirSize After CleanupRepo $(RepositoryName)" Importance="High" />
|
||||
<Exec Command="df -h $(ProjectDir)" />
|
||||
</Target>
|
||||
|
||||
<Target Name="CleanupRepo"
|
||||
<Target Name="CleanupRepo"
|
||||
AfterTargets="RemoveBuiltPackagesFromCache"
|
||||
Condition=" '$(CleanWhileBuilding)' == 'true' ">
|
||||
|
||||
<!-- Make a copy of the build logs & project.assets.json files -->
|
||||
Condition="'$(CleanWhileBuilding)' == 'true' and Exists('$(ProjectDirectory)artifacts')">
|
||||
<PropertyGroup>
|
||||
<BuildLogsDir>$(ProjectDirectory)artifacts/buildLogs</BuildLogsDir>
|
||||
<BuildObjDir>$(ProjectDirectory)artifacts/buildObj</BuildObjDir>
|
||||
<BuildLogsDir>$([MSBuild]::NormalizeDirectory('$(ProjectDirectory)', 'artifacts', 'buildLogs'))</BuildLogsDir>
|
||||
<BuildObjDir>$([MSBuild]::NormalizeDirectory('$(ProjectDirectory)', 'artifacts', 'buildObj'))</BuildObjDir>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<LogFilesToCopy Include="$(ProjectDirectory)artifacts/**/*.log" />
|
||||
<LogFilesToCopy Include="$(ProjectDirectory)artifacts/**/*.binlog" />
|
||||
<ObjFilesToCopy Include="$(ProjectDirectory)artifacts/**/project.assets.json" />
|
||||
</ItemGroup>
|
||||
<MakeDir Directories="$(BuildLogsDir)" Condition="Exists('$(ProjectDirectory)artifacts')"/>
|
||||
<MakeDir Directories="$(BuildObjDir)" Condition="Exists('$(ProjectDirectory)artifacts')"/>
|
||||
<Copy SourceFiles="@(LogFilesToCopy)" DestinationFolder="$(BuildLogsDir)/%(RecursiveDir)" Condition="Exists('$(BuildLogsDir)') AND '@(LogFilesToCopy)' != '' " />
|
||||
<Copy SourceFiles="@(ObjFilesToCopy)" DestinationFolder="$(BuildObjDir)/%(RecursiveDir)" Condition="Exists('$(BuildObjDir)') AND '@(ObjFilesToCopy)' != '' " />
|
||||
|
||||
<!-- Cleanup everything else -->
|
||||
<!-- Make a copy of the build logs & project.assets.json files -->
|
||||
<Copy SourceFiles="@(LogFilesToCopy)"
|
||||
DestinationFolder="$(BuildLogsDir)%(RecursiveDir)"
|
||||
SkipUnchangedFiles="true"
|
||||
Condition="'@(LogFilesToCopy)' != ''" />
|
||||
<Copy SourceFiles="@(ObjFilesToCopy)"
|
||||
DestinationFolder="$(BuildObjDir)%(RecursiveDir)"
|
||||
SkipUnchangedFiles="true"
|
||||
Condition="'@(ObjFilesToCopy)' != ''" />
|
||||
|
||||
<ItemGroup>
|
||||
<DirsToDelete Include="$([System.IO.Directory]::GetDirectories("$(ProjectDirectory)artifacts/"))" Condition="Exists('$(ProjectDirectory)artifacts')" />
|
||||
<DirsToDelete Remove="$(BuildLogsDir)" />
|
||||
<DirsToDelete Remove="$(BuildObjDir)" />
|
||||
<DirsToDelete Include="$([System.IO.Directory]::GetDirectories('$(ProjectDirectory)artifacts'))" />
|
||||
|
||||
<DirsToDeleteWithTrailingSeparator Include="$([MSBuild]::EnsureTrailingSlash('%(DirsToDelete.Identity)'))" />
|
||||
<DirsToDeleteWithTrailingSeparator Remove="$(BuildLogsDir)" />
|
||||
<DirsToDeleteWithTrailingSeparator Remove="$(BuildObjDir)" />
|
||||
</ItemGroup>
|
||||
|
||||
<RemoveDir Directories="@(DirsToDelete)" />
|
||||
<Message Text="DirSize After Building $(RepositoryName)" Importance="High" Condition="'$(BuildOS)' != 'windows' and '@(DirsToDeleteWithTrailingSeparator)' != ''" />
|
||||
<Exec Command="df -h $(RepoRoot)" Condition="'$(BuildOS)' != 'windows' and '@(DirsToDeleteWithTrailingSeparator)' != ''" />
|
||||
|
||||
<!-- Cleanup everything else -->
|
||||
<RemoveDir Directories="@(DirsToDeleteWithTrailingSeparator)" />
|
||||
|
||||
<Message Text="DirSize After CleanupRepo $(RepositoryName)" Importance="High" Condition="'$(BuildOS)' != 'windows'and '@(DirsToDeleteWithTrailingSeparator)' != ''" />
|
||||
<Exec Command="df -h $(RepoRoot)" Condition="'$(BuildOS)' != 'windows'and '@(DirsToDeleteWithTrailingSeparator)' != ''" />
|
||||
</Target>
|
||||
|
||||
<Target Name="ExtractToolPackage"
|
||||
|
@ -411,7 +548,7 @@
|
|||
AfterTargets="Build"
|
||||
Condition="'@(BuiltSdkPackageOverride)' != ''"
|
||||
Inputs="$(MSBuildProjectFullPath)"
|
||||
Outputs="$(RepoCompletedSemaphorePath)ExtractToolPackage.complete">
|
||||
Outputs="$(BaseIntermediateOutputPath)ExtractToolPackage.complete">
|
||||
<ItemGroup>
|
||||
<_ToolPackage
|
||||
Condition="'%(BuiltSdkPackageOverride.Version)' == ''"
|
||||
|
@ -425,44 +562,33 @@
|
|||
Id="%(BuiltSdkPackageOverride.Identity)" />
|
||||
</ItemGroup>
|
||||
|
||||
<ZipFileExtractToDirectory SourceArchive="%(_ToolPackage.Identity)"
|
||||
DestinationDirectory="$(SourceBuiltSdksDir)%(_ToolPackage.Id)\"
|
||||
OverwriteDestination="true" />
|
||||
<Unzip SourceFiles="%(_ToolPackage.Identity)"
|
||||
DestinationFolder="$(SourceBuiltSdksDir)%(_ToolPackage.Id)\"
|
||||
SkipUnchangedFiles="true" />
|
||||
|
||||
<ItemGroup>
|
||||
<ExtractedToolFiles Include="$(SourceBuiltSdksDir)%(_ToolPackage.Id)/**/*netcore*/*.dll" />
|
||||
</ItemGroup>
|
||||
|
||||
<Copy SourceFiles="@(ExtractedToolFiles)" DestinationFolder="$(SourceBuiltSdksDir)/" />
|
||||
|
||||
<!-- TODO: When unpacking using ZipFileExtractToDirectory, this executable file has the wrong
|
||||
permissions. See https://github.com/dotnet/source-build/issues/2259 -->
|
||||
<!-- When unpacking, this executable file has the wrong permissions on
|
||||
non-windows systems: https://github.com/NuGet/Home/issues/13121. -->
|
||||
<Exec Command="chmod 755 git-clone-to-dir.sh"
|
||||
Condition=" '%(_ToolPackage.Id)' == 'Microsoft.DotNet.Arcade.Sdk' "
|
||||
Condition=" '%(_ToolPackage.Id)' == 'Microsoft.DotNet.Arcade.Sdk' and !$([MSBuild]::IsOSPlatform(Windows))"
|
||||
WorkingDirectory="$(SourceBuiltSdksDir)%(_ToolPackage.Id)/tools/SourceBuild/" />
|
||||
|
||||
<!-- Allow overriding of Arcade targets for SourceBuild to enable quicker
|
||||
dev turnaround for Preview 6 -->
|
||||
<PropertyGroup>
|
||||
<ArcadeSDKToolPackagePath></ArcadeSDKToolPackagePath>
|
||||
<ArcadeSDKToolPackagePath Condition=" '%(_ToolPackage.Id)' == 'Microsoft.DotNet.Arcade.Sdk' ">$(SourceBuiltSdksDir)%(_ToolPackage.Id)/</ArcadeSDKToolPackagePath>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<OverrideArcadeFiles Include="$(ArcadeOverridesDir)**/*" />
|
||||
</ItemGroup>
|
||||
|
||||
<Copy
|
||||
Condition=" '$(ArcadeSDKToolPackagePath))' != '' "
|
||||
SourceFiles="@(OverrideArcadeFiles)"
|
||||
DestinationFiles="$(ArcadeSDKToolPackagePath)tools/SourceBuild/%(RecursiveDir)%(Filename)%(Extension)" />
|
||||
|
||||
<WriteLinesToFile File="$(RepoCompletedSemaphorePath)ExtractToolPackage.complete" Overwrite="true" />
|
||||
<MakeDir Directories="$(BaseIntermediateOutputPath)" />
|
||||
<Touch Files="$(BaseIntermediateOutputPath)ExtractToolPackage.complete" AlwaysCreate="true">
|
||||
<Output TaskParameter="TouchedFiles" ItemName="FileWrites" />
|
||||
</Touch>
|
||||
</Target>
|
||||
|
||||
<Target Name="EnsurePackagesCreated"
|
||||
AfterTargets="CopyPackage"
|
||||
Condition="'$(SkipEnsurePackagesCreated)' != 'true'"
|
||||
Condition="'$(SkipEnsurePackagesCreated)' != 'true' and '$(IsUtilityProject)' != 'true'"
|
||||
Inputs="$(MSBuildProjectFullPath)"
|
||||
Outputs="$(RepoCompletedSemaphorePath)EnsurePackagesCreated.complete">
|
||||
Outputs="$(BaseIntermediateOutputPath)EnsurePackagesCreated.complete">
|
||||
<ItemGroup>
|
||||
<JustSourceBuiltPackages
|
||||
Include="$(SourceBuiltPackagesPath)*.nupkg"
|
||||
|
@ -488,52 +614,35 @@
|
|||
<Message Importance="High" Text="New NuGet package(s) after building $(RepositoryName):" />
|
||||
<Message Importance="High" Text=" -> %(_JustSourceBuiltPackageInfos.PackageId) %(_JustSourceBuiltPackageInfos.PackageVersion)" />
|
||||
|
||||
<WriteLinesToFile File="$(RepoCompletedSemaphorePath)EnsurePackagesCreated.complete" Overwrite="true" />
|
||||
</Target>
|
||||
|
||||
<Target Name="Clean" Condition="'$(CleanCommand)' != ''" >
|
||||
<Exec Command="$(CleanCommand) /v:$(LogVerbosity) $(RedirectRepoOutputToLog)"
|
||||
WorkingDirectory="$(ProjectDirectory)"
|
||||
EnvironmentVariables="@(EnvironmentVariables)"
|
||||
IgnoreStandardErrorWarningFormat="true" />
|
||||
</Target>
|
||||
|
||||
<Target Name="SetNuGetPackagesEnvironment" Condition="'$(ArchiveDownloadedPackages)' == 'true'">
|
||||
<PropertyGroup>
|
||||
<LocalNuGetPackagesRootForRepository>$(LocalNuGetPackagesRoot)$(RepositoryName)/</LocalNuGetPackagesRootForRepository>
|
||||
</PropertyGroup>
|
||||
|
||||
<MakeDir Directories="$(LocalNuGetPackagesRootForRepository)" />
|
||||
|
||||
<ItemGroup>
|
||||
<EnvironmentVariables Include="NUGET_PACKAGES=$(LocalNuGetPackagesRootForRepository)" />
|
||||
</ItemGroup>
|
||||
<MakeDir Directories="$(BaseIntermediateOutputPath)" />
|
||||
<Touch Files="$(BaseIntermediateOutputPath)EnsurePackagesCreated.complete" AlwaysCreate="true">
|
||||
<Output TaskParameter="TouchedFiles" ItemName="FileWrites" />
|
||||
</Touch>
|
||||
</Target>
|
||||
|
||||
<Target Name="SetSourceBuiltSdkOverrides"
|
||||
BeforeTargets="Build"
|
||||
Condition="'@(UseSourceBuiltSdkOverride)' != ''">
|
||||
Condition="'@(SourceBuiltSdkOverride)' != ''">
|
||||
<ItemGroup>
|
||||
<EnvironmentVariables Include="SOURCE_BUILT_SDK_ID_%(UseSourceBuiltSdkOverride.Group)=%(UseSourceBuiltSdkOverride.Identity)" />
|
||||
<EnvironmentVariables Include="SOURCE_BUILT_SDK_VERSION_%(UseSourceBuiltSdkOverride.Group)=%(UseSourceBuiltSdkOverride.Version)" />
|
||||
<EnvironmentVariables Condition="'%(UseSourceBuiltSdkOverride.Location)' != ''" Include="SOURCE_BUILT_SDK_DIR_%(UseSourceBuiltSdkOverride.Group)=%(UseSourceBuiltSdkOverride.Location)/" />
|
||||
<EnvironmentVariables Condition="'%(UseSourceBuiltSdkOverride.Location)' == ''" Include="SOURCE_BUILT_SDK_DIR_%(UseSourceBuiltSdkOverride.Group)=$(SourceBuiltSdksDir)%(UseSourceBuiltSdkOverride.Identity)/" />
|
||||
<EnvironmentVariables Include="SOURCE_BUILT_SDK_ID_%(SourceBuiltSdkOverride.Group)=%(SourceBuiltSdkOverride.Identity)" />
|
||||
<EnvironmentVariables Include="SOURCE_BUILT_SDK_VERSION_%(SourceBuiltSdkOverride.Group)=%(SourceBuiltSdkOverride.Version)" />
|
||||
<EnvironmentVariables Condition="'%(SourceBuiltSdkOverride.Location)' != ''" Include="SOURCE_BUILT_SDK_DIR_%(SourceBuiltSdkOverride.Group)=%(SourceBuiltSdkOverride.Location)/" />
|
||||
<EnvironmentVariables Condition="'%(SourceBuiltSdkOverride.Location)' == ''" Include="SOURCE_BUILT_SDK_DIR_%(SourceBuiltSdkOverride.Group)=$(SourceBuiltSdksDir)%(SourceBuiltSdkOverride.Identity)/" />
|
||||
</ItemGroup>
|
||||
</Target>
|
||||
|
||||
<Target Name="WritePrebuiltUsageData"
|
||||
DependsOnTargets="GetAllProjectDirectories"
|
||||
Inputs="$(MSBuildProjectFullPath)"
|
||||
Outputs="$(RepoCompletedSemaphorePath)WritePrebuiltUsageData.complete">
|
||||
Outputs="$(BaseIntermediateOutputPath)WritePrebuiltUsageData.complete">
|
||||
<!-- Save the PVP snapshot of each build step to be evaluated while building the report. -->
|
||||
<ItemGroup>
|
||||
<PackageVersionPropsSnapshotFiles Include="$(IntermediatePath)PackageVersions.*.Snapshot.props" />
|
||||
<PackageVersionPropsSnapshotFiles Include="$(SharedIntermediateOutputPath)PackageVersions.*.Snapshot.props" />
|
||||
</ItemGroup>
|
||||
<Copy SourceFiles="@(PackageVersionPropsSnapshotFiles)" DestinationFolder="$(PackageReportDir)snapshots/" />
|
||||
|
||||
<ItemGroup>
|
||||
<AllRestoredPackageFiles Include="$(LocalNuGetPackagesRoot)**/*.nupkg" />
|
||||
<AllRestoredPackageFiles Include="$(PackagesDir)**/*.nupkg" />
|
||||
<AllRestoredPackageFiles Include="$(NuGetPackageRoot)**/*.nupkg" />
|
||||
|
||||
<!-- Only contains packages when building. -->
|
||||
<TarballPrebuiltPackageFiles Include="$(PrebuiltPackagesPath)*.nupkg" />
|
||||
|
@ -543,18 +652,17 @@
|
|||
<ReferencePackageFiles Include="$(ReferencePackagesDir)**/*.nupkg" />
|
||||
|
||||
<!-- Check all RIDs from all restored Microsoft.NETCore.Platforms packages. -->
|
||||
<PlatformsRuntimeJsonFiles Include="$(LocalNuGetPackagesRoot)*/microsoft.netcore.platforms/*/runtime.json" />
|
||||
<PlatformsRuntimeJsonFiles Include="$(PackagesDir)microsoft.netcore.platforms/*/runtime.json" />
|
||||
<PlatformsRuntimeJsonFiles Include="$(NuGetPackageRoot)microsoft.netcore.platforms/*/PortableRuntimeIdentifierGraph.json" />
|
||||
|
||||
<!-- Add some other potential top-level project directories for a more specific report. -->
|
||||
<ProjectDirectories Include="$(SourceBuiltSdksDir);$(TaskDirectory);$(BaseIntermediatePath)" />
|
||||
<ProjectDirectories Include="$(SourceBuiltSdksDir);$(TasksDir);$(ArtifactsObjDir)" />
|
||||
<!-- Finally, scan entire source-build, in case project.assets.json ends up in an unexpected place. -->
|
||||
<ProjectDirectories Include="$(ProjectDir)" />
|
||||
<ProjectDirectories Include="$(RepoRoot)" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<!-- This file is a resource tracked by Git, not generated by restore. Ignore false positive. -->
|
||||
<IgnoredProjectAssetsJsonFiles Include="$(SubmoduleDirectory)*nuget-client*/**/test/NuGet.Core.Tests/NuGet.Build.Tasks.Pack.Test/compiler/resources/project.assets.json"/>
|
||||
<IgnoredProjectAssetsJsonFiles Include="$(SrcDir)*nuget-client*/**/test/NuGet.Core.Tests/NuGet.Build.Tasks.Pack.Test/compiler/resources/project.assets.json"/>
|
||||
</ItemGroup>
|
||||
|
||||
<WritePackageUsageData
|
||||
|
@ -565,7 +673,7 @@
|
|||
PlatformsRuntimeJsonFiles="@(PlatformsRuntimeJsonFiles)"
|
||||
TargetRid="$(TargetRid)"
|
||||
ProjectDirectories="@(ProjectDirectories)"
|
||||
RootDir="$(ProjectDir)"
|
||||
RootDir="$(RepoRoot)"
|
||||
IgnoredProjectAssetsJsonFiles="@(IgnoredProjectAssetsJsonFiles)"
|
||||
DataFile="$(PackageReportDataFile)"
|
||||
ProjectAssetsJsonArchiveFile="$(ProjectAssetsJsonArchiveFile)" />
|
||||
|
@ -576,11 +684,11 @@
|
|||
<AllowedPackageFiles Include="@(SourceBuiltPackageFiles)" />
|
||||
<AllowedPackageFiles Include="@(ReferencePackageFiles)" />
|
||||
<AllowedPackageFiles>
|
||||
<LCFilename>$([System.String]::Copy(%(Filename)).ToLower())</LCFilename>
|
||||
<LCFilename>$([System.String]::Copy(%(Filename)).ToLowerInvariant())</LCFilename>
|
||||
</AllowedPackageFiles>
|
||||
|
||||
<PrebuiltPackageFiles Include="@(AllRestoredPackageFiles)" >
|
||||
<LCFilename>$([System.String]::Copy(%(Filename)).ToLower())</LCFilename>
|
||||
<LCFilename>$([System.String]::Copy(%(Filename)).ToLowerInvariant())</LCFilename>
|
||||
</PrebuiltPackageFiles>
|
||||
<PrebuiltPackageFiles Remove="@(AllowedPackageFiles)" MatchOnMetadata="LCFilename" />
|
||||
</ItemGroup>
|
||||
|
@ -588,7 +696,10 @@
|
|||
SourceFiles="@(PrebuiltPackageFiles)"
|
||||
DestinationFolder="$(ResultingPrebuiltPackagesDir)" />
|
||||
|
||||
<WriteLinesToFile File="$(RepoCompletedSemaphorePath)WritePrebuiltUsageData.complete" Overwrite="true" />
|
||||
<MakeDir Directories="$(BaseIntermediateOutputPath)" />
|
||||
<Touch Files="$(BaseIntermediateOutputPath)WritePrebuiltUsageData.complete" AlwaysCreate="true">
|
||||
<Output TaskParameter="TouchedFiles" ItemName="FileWrites" />
|
||||
</Touch>
|
||||
</Target>
|
||||
|
||||
<Target Name="GetAllProjectDirectories">
|
||||
|
@ -606,7 +717,7 @@
|
|||
|
||||
<Target Name="ReportPrebuiltUsage"
|
||||
Inputs="$(MSBuildProjectFullPath)"
|
||||
Outputs="$(RepoCompletedSemaphorePath)ReportPrebuiltUsage.complete">
|
||||
Outputs="$(BaseIntermediateOutputPath)ReportPrebuiltUsage.complete">
|
||||
<PropertyGroup>
|
||||
<FailOnPrebuiltBaselineError Condition="'$(FailOnPrebuiltBaselineError)' == ''">false</FailOnPrebuiltBaselineError>
|
||||
</PropertyGroup>
|
||||
|
@ -634,12 +745,13 @@
|
|||
AllowTestProjectUsage="$(AllowTestProjectUsage)"
|
||||
ContinueOnError="$(ContinueOnPrebuiltBaselineError)" />
|
||||
|
||||
<WriteLinesToFile File="$(RepoCompletedSemaphorePath)ReportPrebuiltUsage.complete" Overwrite="true" />
|
||||
<MakeDir Directories="$(BaseIntermediateOutputPath)" />
|
||||
<Touch Files="$(BaseIntermediateOutputPath)ReportPrebuiltUsage.complete" AlwaysCreate="true">
|
||||
<Output TaskParameter="TouchedFiles" ItemName="FileWrites" />
|
||||
</Touch>
|
||||
</Target>
|
||||
|
||||
<Target Name="GetProjectDirectory" Outputs="$(ProjectDirectory)" />
|
||||
<Target Name="GetOfficialBuildId" Outputs="$(OfficialBuildId)" />
|
||||
<Target Name="GetRepositoryReferences" Outputs="@(RepositoryReference)" />
|
||||
|
||||
<Import Project="$([MSBuild]::GetPathOfFileAbove(Directory.Build.targets, $(MSBuildThisFileDirectory)..))" />
|
||||
</Project>
|
||||
|
|
|
@ -1,21 +1,16 @@
|
|||
<Project>
|
||||
<Import Project="Sdk.props" Sdk="Microsoft.NET.Sdk" />
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<BuildCommandArgs>$(StandardSourceBuildArgs)</BuildCommandArgs>
|
||||
<BuildCommandArgs>$(BuildCommandArgs) $(FlagParameterPrefix)warnAsError $(ArcadeFalseBoolBuildArg)</BuildCommandArgs>
|
||||
<BuildCommand>$(StandardSourceBuildCommand) $(BuildCommandArgs)</BuildCommand>
|
||||
|
||||
<!-- we need to use a prebuilt Arcade to build Arcade -->
|
||||
<!-- Use a prebuilt Arcade to build Arcade -->
|
||||
<UseBootstrapArcade>true</UseBootstrapArcade>
|
||||
<IsToolingProject>true</IsToolingProject>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<RepositoryReference Include="source-build-reference-packages" Condition="'$(DotNetBuildSourceOnly)' == 'true'" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<BuiltSdkPackageOverride Include="@(ArcadeSdkOverride)" />
|
||||
<BuiltSdkPackageOverride Include="@(ArcadeCoreFxTestingOverride)" />
|
||||
<BuiltSdkPackageOverride Include="@(ArcadePackagingOverride)" />
|
||||
<BuiltSdkPackageOverride Include="@(ArcadeTargetFrameworkOverride)" />
|
||||
<BuiltSdkPackageOverride Include="@(ArcadeSharedFrameworkSdkOverride)" />
|
||||
</ItemGroup>
|
||||
|
||||
|
@ -28,5 +23,4 @@
|
|||
<ExtraPackageVersionPropsPackageInfo Include="NuGetVersion" Version="%24(NuGetPackagingVersion)" />
|
||||
</ItemGroup>
|
||||
|
||||
<Import Project="Sdk.targets" Sdk="Microsoft.NET.Sdk" />
|
||||
</Project>
|
||||
|
|
7
src/SourceBuild/content/repo-projects/aspire.proj
Normal file
7
src/SourceBuild/content/repo-projects/aspire.proj
Normal file
|
@ -0,0 +1,7 @@
|
|||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<ItemGroup>
|
||||
<RepositoryReference Include="arcade" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
|
@ -1,34 +1,48 @@
|
|||
<Project>
|
||||
<Import Project="Sdk.props" Sdk="Microsoft.NET.Sdk" />
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<OverrideTargetRid>$(TargetRid)</OverrideTargetRid>
|
||||
<OverrideTargetRid Condition="'$(TargetOS)' == 'OSX'">osx-$(Platform)</OverrideTargetRid>
|
||||
<OverrideTargetRid Condition="'$(TargetOS)' == 'FreeBSD'">freebsd-$(Platform)</OverrideTargetRid>
|
||||
<OverrideTargetRid Condition="'$(TargetOS)' == 'Windows_NT'">win-$(Platform)</OverrideTargetRid>
|
||||
<_portableRidOverridden Condition="'$(TargetRid)' != '$(OverrideTargetRid)'">true</_portableRidOverridden>
|
||||
<_portableRidOverridden Condition="'$(TargetRid)' == '$(OverrideTargetRid)'">false</_portableRidOverridden>
|
||||
<!-- AspNetCore doesn't have a root build script but one under the eng folder. -->
|
||||
<BuildScript>$(ProjectDirectory)eng\build$(ShellExtension)</BuildScript>
|
||||
|
||||
<!-- StandardSourceBuildArgs include -publish which is not supported by the aspnetcore build script. -->
|
||||
<BuildCommandArgs>$(StandardSourceBuildArgs.Replace('--publish', ''))</BuildCommandArgs>
|
||||
<!-- The arch flag (defaults to x64) overrides any value of TargetArchitecture that we might set -->
|
||||
<BuildCommandArgs>$(BuildCommandArgs) --arch $(Platform)</BuildCommandArgs>
|
||||
<BuildCommandArgs>$(BuildCommandArgs) --no-build-repo-tasks</BuildCommandArgs>
|
||||
<BuildCommandArgs>$(BuildCommandArgs) --no-build-nodejs</BuildCommandArgs>
|
||||
<BuildCommandArgs>$(BuildCommandArgs) /p:PortableBuild=$(_portableRidOverridden) /p:TargetRuntimeIdentifier=$(OverrideTargetRid)</BuildCommandArgs>
|
||||
<!-- Update to 1.0.0 version of reference assemblies which are built in SBRP instead of the preview.2 version
|
||||
included by Arcade -->
|
||||
<BuildCommandArgs>$(BuildCommandArgs) /p:MicrosoftNetFrameworkReferenceAssembliesVersion=1.0.0</BuildCommandArgs>
|
||||
<BuildCommand>$(ProjectDirectory)\eng\build$(ShellExtension) $(BuildCommandArgs)</BuildCommand>
|
||||
<!-- BuildActions includes -publish which is not supported by the aspnetcore build script. -->
|
||||
<BuildActions>$(FlagParameterPrefix)restore $(FlagParameterPrefix)build $(FlagParameterPrefix)pack</BuildActions>
|
||||
<!-- On Windows, build all for the VB PoC -->
|
||||
<BuildActions Condition="'$(DotNetBuildSourceOnly)' != 'true' and '$(BuildOS)' == 'windows'">$(FlagParameterPrefix)restore $(FlagParameterPrefix)all $(FlagParameterPrefix)pack</BuildActions>
|
||||
|
||||
<BuildArgs Condition="'$(OverrideTargetArch)' == ''">$(BuildArgs) $(FlagParameterPrefix)arch $(TargetArchitecture)</BuildArgs>
|
||||
<BuildArgs Condition="'$(OverrideTargetArch)' != ''">$(BuildArgs) $(FlagParameterPrefix)arch $(OverrideTargetArch)</BuildArgs>
|
||||
<BuildArgs Condition="'$(DotNetBuildSourceOnly)' == 'true' or '$(BuildOS)' != 'windows'">$(BuildArgs) $(FlagParameterPrefix)no-build-repo-tasks</BuildArgs>
|
||||
<BuildArgs Condition="'$(DotNetBuildSourceOnly)' == 'true' or '$(BuildOS)' != 'windows'">$(BuildArgs) $(FlagParameterPrefix)no-build-nodejs</BuildArgs>
|
||||
|
||||
<LogVerbosityOptOut>true</LogVerbosityOptOut>
|
||||
</PropertyGroup>
|
||||
|
||||
<PropertyGroup Condition="'$(DotNetBuildSourceOnly)' == 'true'">
|
||||
<OverrideTargetRid>$(TargetRid)</OverrideTargetRid>
|
||||
<OverrideTargetRid Condition="'$(TargetOS)' == 'osx'">osx-$(TargetArchitecture)</OverrideTargetRid>
|
||||
<OverrideTargetRid Condition="'$(TargetOS)' == 'freebsd'">freebsd-$(TargetArchitecture)</OverrideTargetRid>
|
||||
<OverrideTargetRid Condition="'$(TargetOS)' == 'windows'">win-$(TargetArchitecture)</OverrideTargetRid>
|
||||
<_portableRidOverridden Condition="'$(TargetRid)' != '$(OverrideTargetRid)'">true</_portableRidOverridden>
|
||||
<_portableRidOverridden Condition="'$(TargetRid)' == '$(OverrideTargetRid)'">false</_portableRidOverridden>
|
||||
|
||||
<BuildArgs>$(BuildArgs) /p:PortableBuild=$(_portableRidOverridden)</BuildArgs>
|
||||
<BuildArgs>$(BuildArgs) /p:TargetRuntimeIdentifier=$(OverrideTargetRid)</BuildArgs>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<RepositoryReference Include="arcade" />
|
||||
<RepositoryReference Include="source-build-externals" Condition="'$(DotNetBuildSourceOnly)' == 'true'" />
|
||||
<RepositoryReference Include="runtime" />
|
||||
<RepositoryReference Include="msbuild" />
|
||||
<RepositoryReference Include="roslyn" />
|
||||
<RepositoryReference Include="roslyn-analyzers" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<EnvironmentVariables Include="warn_as_error=false" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<ItemGroup Condition="'$(DotNetBuildSourceOnly)' == 'true'">
|
||||
<!--
|
||||
From aspnetcore Versions.props:
|
||||
Versions of Microsoft.CodeAnalysis packages referenced by analyzers shipped in the SDK.
|
||||
|
@ -41,14 +55,4 @@
|
|||
<ExtraPackageVersionPropsPackageInfo Include="MicrosoftCodeAnalysisVersion_LatestVS" Version="%24(MicrosoftCodeAnalysisCommonVersion)" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<RepositoryReference Include="arcade" />
|
||||
<RepositoryReference Include="source-build-externals" />
|
||||
<RepositoryReference Include="runtime" />
|
||||
<RepositoryReference Include="msbuild" />
|
||||
<RepositoryReference Include="roslyn" />
|
||||
<RepositoryReference Include="roslyn-analyzers" />
|
||||
</ItemGroup>
|
||||
|
||||
<Import Project="Sdk.targets" Sdk="Microsoft.NET.Sdk" />
|
||||
</Project>
|
||||
|
|
|
@ -1,13 +1,7 @@
|
|||
<Project>
|
||||
<Import Project="Sdk.props" Sdk="Microsoft.NET.Sdk" />
|
||||
|
||||
<PropertyGroup>
|
||||
<BuildCommand>$(StandardSourceBuildCommand) $(StandardSourceBuildArgs)</BuildCommand>
|
||||
</PropertyGroup>
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<ItemGroup>
|
||||
<RepositoryReference Include="arcade" />
|
||||
</ItemGroup>
|
||||
|
||||
<Import Project="Sdk.targets" Sdk="Microsoft.NET.Sdk" />
|
||||
</Project>
|
||||
|
|
|
@ -1,19 +1,13 @@
|
|||
<Project>
|
||||
|
||||
<Import Project="Sdk.props" Sdk="Microsoft.NET.Sdk" />
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<BuildCommandArgs>$(StandardSourceBuildArgs)</BuildCommandArgs>
|
||||
<BuildCommandArgs>$(BuildCommandArgs) $(FlagParameterPrefix)warnAsError $(ArcadeFalseBoolBuildArg)</BuildCommandArgs>
|
||||
<BuildCommandArgs>$(BuildCommandArgs) $(FlagParameterPrefix)nodereuse $(ArcadeFalseBoolBuildArg)</BuildCommandArgs>
|
||||
<BuildCommand>$(StandardSourceBuildCommand) $(BuildCommandArgs)</BuildCommand>
|
||||
|
||||
<LogVerbosityOptOut>true</LogVerbosityOptOut>
|
||||
|
||||
<BuildArgs>$(BuildArgs) $(FlagParameterPrefix)warnAsError $(ArcadeFalseBoolBuildArg)</BuildArgs>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<RepositoryReference Include="arcade" />
|
||||
</ItemGroup>
|
||||
|
||||
<Import Project="Sdk.targets" Sdk="Microsoft.NET.Sdk" />
|
||||
</Project>
|
||||
|
|
|
@ -1,13 +1,12 @@
|
|||
<Project>
|
||||
<Import Project="Sdk.props" Sdk="Microsoft.NET.Sdk" />
|
||||
|
||||
<PropertyGroup>
|
||||
<BuildCommand>$(ProjectDirectory)eng\common\build$(ShellExtension) $(StandardSourceBuildArgs)</BuildCommand>
|
||||
</PropertyGroup>
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<ItemGroup>
|
||||
<RepositoryReference Include="arcade" />
|
||||
<RepositoryReference Include="runtime" />
|
||||
</ItemGroup>
|
||||
|
||||
<Import Project="Sdk.targets" Sdk="Microsoft.NET.Sdk" />
|
||||
</Project>
|
||||
<ItemGroup>
|
||||
<EnvironmentVariables Include="LatestCommit=$(GitCommitHash)" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
|
|
|
@ -1,10 +1,7 @@
|
|||
<Project>
|
||||
<Import Project="Sdk.props" Sdk="Microsoft.NET.Sdk" />
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<BuildCommandArgs>$(StandardSourceBuildArgs)</BuildCommandArgs>
|
||||
<BuildCommand>$(ProjectDirectory)eng\common\build$(ShellExtension) $(BuildCommandArgs)</BuildCommand>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<RepositoryReference Include="arcade" />
|
||||
</ItemGroup>
|
||||
|
||||
<Import Project="Sdk.targets" Sdk="Microsoft.NET.Sdk" />
|
||||
</Project>
|
||||
|
|
|
@ -1,14 +1,8 @@
|
|||
<Project>
|
||||
<Import Project="Sdk.props" Sdk="Microsoft.NET.Sdk" />
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<SkipEnsurePackagesCreated>true</SkipEnsurePackagesCreated>
|
||||
|
||||
<!--
|
||||
The default PackageVersionPropsFlowType behavior (DependenciesOnly) triggers logic that looks for a Version.Details.xml file.
|
||||
Setting the type to AllPackages will skip that logic.
|
||||
-->
|
||||
<PackageVersionPropsFlowType>AllPackages</PackageVersionPropsFlowType>
|
||||
<!-- This is a wrapper project that doesn't build anything. -->
|
||||
<IsUtilityProject>true</IsUtilityProject>
|
||||
</PropertyGroup>
|
||||
|
||||
<!-- This project file serves a couple of purpose.
|
||||
|
@ -18,7 +12,7 @@
|
|||
|
||||
<ItemGroup>
|
||||
<!-- Toolsets -->
|
||||
<RepositoryReference Include="source-build-reference-packages" />
|
||||
<RepositoryReference Include="source-build-reference-packages" Condition="'$(DotNetBuildSourceOnly)' == 'true'" />
|
||||
<RepositoryReference Include="arcade" />
|
||||
|
||||
<!-- Product Repos -->
|
||||
|
@ -28,9 +22,10 @@
|
|||
<RepositoryReference Include="emsdk" />
|
||||
<RepositoryReference Include="cecil" />
|
||||
<RepositoryReference Include="symreader" />
|
||||
<RepositoryReference Include="source-build-externals" />
|
||||
<RepositoryReference Include="source-build-externals" Condition="'$(DotNetBuildSourceOnly)' == 'true'" />
|
||||
<RepositoryReference Include="runtime" />
|
||||
<RepositoryReference Include="roslyn" />
|
||||
<RepositoryReference Include="windowsdesktop" Condition="'$(TargetOS)' == 'windows'" />
|
||||
<RepositoryReference Include="xdt" />
|
||||
<RepositoryReference Include="msbuild" />
|
||||
<RepositoryReference Include="roslyn-analyzers" />
|
||||
|
@ -44,18 +39,14 @@
|
|||
<RepositoryReference Include="fsharp" />
|
||||
<RepositoryReference Include="vstest" />
|
||||
<RepositoryReference Include="sdk" />
|
||||
<RepositoryReference Include="aspire" />
|
||||
<RepositoryReference Include="installer" />
|
||||
|
||||
<!-- Package source-build artifacts -->
|
||||
<RepositoryReference Include="package-source-build" />
|
||||
<RepositoryReference Include="package-source-build" Condition="'$(DotNetBuildSourceOnly)' == 'true'" />
|
||||
|
||||
<!-- Testing. -->
|
||||
<RepositoryReference Include="scenario-tests" />
|
||||
|
||||
</ItemGroup>
|
||||
|
||||
<Import Project="Sdk.targets" Sdk="Microsoft.NET.Sdk" />
|
||||
|
||||
<Target Name="RepoBuild" />
|
||||
|
||||
</Project>
|
||||
|
|
|
@ -1,23 +1,26 @@
|
|||
<Project>
|
||||
<Import Project="Sdk.props" Sdk="Microsoft.NET.Sdk" />
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<OverrideTargetRid>$(TargetRid)</OverrideTargetRid>
|
||||
<OverrideTargetRid Condition="'$(TargetOS)' == 'OSX'">osx-$(Platform)</OverrideTargetRid>
|
||||
<OverrideTargetRid Condition="'$(TargetOS)' == 'FreeBSD'">freebsd-$(Platform)</OverrideTargetRid>
|
||||
<OverrideTargetRid Condition="'$(TargetOS)' == 'Windows_NT'">win-$(Platform)</OverrideTargetRid>
|
||||
<OverrideTargetRid Condition="'$(TargetOS)' == 'osx'">osx-$(TargetArchitecture)</OverrideTargetRid>
|
||||
<OverrideTargetRid Condition="'$(TargetOS)' == 'freebsd'">freebsd-$(TargetArchitecture)</OverrideTargetRid>
|
||||
<OverrideTargetRid Condition="'$(TargetOS)' == 'windows'">win-$(TargetArchitecture)</OverrideTargetRid>
|
||||
|
||||
<_platformIndex>$(OverrideTargetRid.LastIndexOf('-'))</_platformIndex>
|
||||
<TargetOS>$(OverrideTargetRid.Substring(0, $(_platformIndex)))</TargetOS>
|
||||
<TargetArch>$(OverrideTargetRid.Substring($(_platformIndex)))</TargetArch>
|
||||
|
||||
<BuildCommandArgs>$(StandardSourceBuildArgs)</BuildCommandArgs>
|
||||
<BuildCommandArgs>$(BuildCommandArgs) /p:PackageRid=$(OverrideTargetRid)</BuildCommandArgs>
|
||||
<BuildCommandArgs>$(BuildCommandArgs) /p:AssetManifestOS=$(TargetOS)</BuildCommandArgs>
|
||||
<BuildCommandArgs>$(BuildCommandArgs) /p:PlatformName=$(TargetArch)</BuildCommandArgs>
|
||||
<BuildCommandArgs>$(BuildCommandArgs) /p:ForceBuildManifestOnly=true</BuildCommandArgs>
|
||||
<BuildCommand>$(StandardSourceBuildCommand) $(BuildCommandArgs)</BuildCommand>
|
||||
<!-- Use the repo root build script -->
|
||||
<BuildScript>$(ProjectDirectory)build$(ShellExtension)</BuildScript>
|
||||
|
||||
<BuildArgs>$(BuildArgs) /p:PackageRid=$(OverrideTargetRid)</BuildArgs>
|
||||
<BuildArgs>$(BuildArgs) /p:AssetManifestOS=$(TargetOS)</BuildArgs>
|
||||
<BuildArgs>$(BuildArgs) /p:PlatformName=$(TargetArch)</BuildArgs>
|
||||
<BuildArgs>$(BuildArgs) /p:ForceBuildManifestOnly=true</BuildArgs>
|
||||
</PropertyGroup>
|
||||
|
||||
<Import Project="Sdk.targets" Sdk="Microsoft.NET.Sdk" />
|
||||
<ItemGroup>
|
||||
<RepositoryReference Include="arcade" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue