Skip to content

Commit cf8fc7f

Browse files
Merge branch 'vs17.10' into merge/vs17.8-to-vs17.10
2 parents 6c0a39c + 8e87e57 commit cf8fc7f

File tree

1,154 files changed

+24592
-13450
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

1,154 files changed

+24592
-13450
lines changed
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
## DO NOT MODIFY THIS FILE MANUALLY. This is part of auto-baselining from 1ES Pipeline Templates. Go to [https://aka.ms/1espt-autobaselining] for more details.
2+
3+
pipelines:
4+
9434:
5+
retail:
6+
source:
7+
credscan:
8+
lastModifiedDate: 2024-03-14
9+
eslint:
10+
lastModifiedDate: 2024-03-14
11+
psscriptanalyzer:
12+
lastModifiedDate: 2024-03-14
13+
armory:
14+
lastModifiedDate: 2024-03-14
15+
binary:
16+
credscan:
17+
lastModifiedDate: 2024-03-14
18+
binskim:
19+
lastModifiedDate: 2024-03-14
20+
spotbugs:
21+
lastModifiedDate: 2024-03-14

.config/guardian/.gdnbaselines

Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
{
2+
"properties": {
3+
"helpUri": "https://eng.ms/docs/microsoft-security/security/azure-security/cloudai-security-fundamentals-engineering/security-integration/guardian-wiki/microsoft-guardian/general/baselines"
4+
},
5+
"version": "1.0.0",
6+
"baselines": {
7+
"default": {
8+
"name": "default",
9+
"createdDate": "2024-03-14 11:30:33Z",
10+
"lastUpdatedDate": "2024-03-14 11:30:33Z"
11+
}
12+
},
13+
"results": {
14+
"1757d0179485ad6618415e151de2453f25d5484071f7bae328fa9ca9d4d54688": {
15+
"signature": "1757d0179485ad6618415e151de2453f25d5484071f7bae328fa9ca9d4d54688",
16+
"alternativeSignatures": [],
17+
"target": "src/Tasks.UnitTests/TestResources/mycert.pfx",
18+
"line": 1,
19+
"memberOf": [
20+
"default"
21+
],
22+
"tool": "credscan",
23+
"ruleId": "CSCAN-GENERAL0020",
24+
"createdDate": "2024-03-14 11:30:33Z",
25+
"expirationDate": "2024-08-31 12:48:32Z",
26+
"justification": "This error is baselined with an expiration date of 180 days from 2024-03-14 12:48:32Z"
27+
},
28+
"60d4d52e838e08dc19d3ac2b43b7c809b080db55f9c754b80bd60f30624e9687": {
29+
"signature": "60d4d52e838e08dc19d3ac2b43b7c809b080db55f9c754b80bd60f30624e9687",
30+
"alternativeSignatures": [],
31+
"target": "artifacts/bin/Microsoft.Build.Tasks.UnitTests/Release/net472/TestResources/mycert.pfx",
32+
"line": 1,
33+
"memberOf": [
34+
"default"
35+
],
36+
"tool": "credscan",
37+
"ruleId": "CSCAN-GENERAL0020",
38+
"createdDate": "2024-03-14 12:01:14Z",
39+
"expirationDate": "2024-08-31 12:48:32Z",
40+
"justification": "This error is baselined with an expiration date of 180 days from 2024-03-14 12:48:32Z"
41+
},
42+
"7cb5d42a8744e4a214149aa27d3d8a1b7989914d1a2fee8cea13287368cbafff": {
43+
"signature": "7cb5d42a8744e4a214149aa27d3d8a1b7989914d1a2fee8cea13287368cbafff",
44+
"alternativeSignatures": [],
45+
"target": "artifacts/bin/Microsoft.Build.Tasks.UnitTests/Release/net8.0/TestResources/mycert.pfx",
46+
"line": 1,
47+
"memberOf": [
48+
"default"
49+
],
50+
"tool": "credscan",
51+
"ruleId": "CSCAN-GENERAL0020",
52+
"createdDate": "2024-03-14 12:01:14Z",
53+
"expirationDate": "2024-08-31 12:48:32Z",
54+
"justification": "This error is baselined with an expiration date of 180 days from 2024-03-14 12:48:32Z"
55+
}
56+
}
57+
}

.exp-insertions.yml

Lines changed: 220 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,220 @@
1+
# Pipeline creates experimental msbuild insertions.
2+
3+
trigger: none # Prevents this pipeline from triggering on check-ins
4+
pr: none # don't run this on PR as well
5+
6+
parameters:
7+
# Dotnet installer channel from which to take the latest dotnet bits.
8+
- name: DotnetInstallerChannel
9+
displayName: Dotnet installer channel
10+
type: string
11+
default: 'none'
12+
# VS version for which to take the latest Retail MSBuild bits.
13+
- name: VSVersionName
14+
displayName: VS Version
15+
type: string
16+
default: 'none'
17+
# Branch from the MSBuild Build CI pipeline. Default: main
18+
# Top run for the branch would be used to create an experimental insertion.
19+
- name: MSBuildBranch
20+
displayName: MSBuild Branch
21+
type: string
22+
default: 'refs/heads/main'
23+
# BuildID from the MSBuild Build CI pipeline. Overrides the choice of MSBuildBranch parameter
24+
- name: MSBuildBuildID
25+
displayName: MSBuild CI Run Override
26+
type: string
27+
default: 'default'
28+
29+
variables:
30+
- name: _MsBuildCiPipelineId
31+
value: 9434
32+
- name: _MSBuildConfigFilePathRequestURL
33+
value: 'https://dev.azure.com/cloudbuild/CloudBuild/_apis/git/repositories/CloudBuildConfig/items?versionDescriptor.version=main&path=config/batmon/Q-Prod-Co3/Coordinator/ToolsReleaseConfig-GeneralPublic.json&api-version=5.0'
34+
- name: VSVersion
35+
value: ${{parameters.VSVersionName}}
36+
37+
pool:
38+
vmImage: windows-latest
39+
40+
jobs:
41+
- job: CreateExpDotnet
42+
displayName: Create Experimental Dotnet
43+
condition: ne('${{ parameters.DotnetInstallerChannel }}', 'none')
44+
steps:
45+
- powershell: |
46+
mkdir '$(System.ArtifactsDirectory)/installer'
47+
48+
$dotnetChannel = '${{parameters.DotnetInstallerChannel}}'
49+
$sdks = "dotnet-sdk-win-x64.zip", "dotnet-sdk-linux-x64.tar.gz"
50+
51+
foreach ($sdk in $sdks)
52+
{
53+
Write-Host "Downloading dotnet $sdk from channel $dotnetChannel"
54+
Invoke-WebRequest `
55+
-Uri "https://aka.ms/dotnet/$dotnetChannel/daily/$sdk" `
56+
-OutFile "$(System.ArtifactsDirectory)/installer/$sdk"
57+
}
58+
mkdir '$(Pipeline.Workspace)/artifacts'
59+
displayName: Download latest dotnet sdks
60+
61+
- task: DownloadBuildArtifacts@1
62+
inputs:
63+
buildType: specific
64+
project: DevDiv
65+
pipeline: $(_MsBuildCiPipelineId)
66+
${{ if eq(parameters.MSBuildBuildID, 'default') }}:
67+
buildVersionToDownload: latestFromBranch
68+
branchName: '${{parameters.MSBuildBranch}}'
69+
${{ else }}:
70+
buildVersionToDownload: specific
71+
buildId: ${{parameters.MSBuildBuildID}}
72+
artifactName: bin
73+
itemPattern: 'MSBuild.Bootstrap/**'
74+
downloadPath: '$(System.ArtifactsDirectory)/msbuild/artifacts/bin'
75+
displayName: Download msbuild artifacts
76+
77+
- powershell: |
78+
$sdk = "dotnet-sdk-win-x64"
79+
80+
Write-Host "Extracting $(System.ArtifactsDirectory)/installer/$sdk.zip"
81+
Expand-Archive "$(System.ArtifactsDirectory)/installer/$sdk.zip" -DestinationPath "$(Pipeline.Workspace)/exp-dotnet/$sdk"
82+
83+
$dotnetDirectory = Get-ChildItem -Directory -Path "$(Pipeline.Workspace)/exp-dotnet/$sdk/sdk"
84+
$dotnetVersion = $dotnetDirectory.Name
85+
Write-Host "Detected dotnet version: $dotnetVersion"
86+
87+
Write-Host "Updating MSBuild dlls."
88+
$(Build.SourcesDirectory)/scripts/Deploy-MSBuild.ps1 `
89+
-destination "$(Pipeline.Workspace)/exp-dotnet/$sdk/sdk/$dotnetVersion" `
90+
-binDirectory "$(System.ArtifactsDirectory)/msbuild/artifacts/bin" `
91+
-configuration Release `
92+
-makeBackup $false
93+
94+
Write-Host "Compressing dotnet sdk files"
95+
Get-ChildItem -Path "$(Pipeline.Workspace)/exp-dotnet/$sdk" | Compress-Archive -DestinationPath "$(Pipeline.Workspace)/artifacts/$sdk.zip"
96+
97+
displayName: Dogfood msbuild dlls to dotnet sdk win-x64
98+
99+
- powershell: |
100+
$sdk = "dotnet-sdk-linux-x64"
101+
102+
mkdir "$(Pipeline.Workspace)/exp-dotnet/$sdk"
103+
104+
Write-Host "Extracting $(System.ArtifactsDirectory)/installer/$sdk.tar.gz"
105+
tar -xzvf "$(System.ArtifactsDirectory)/installer/$sdk.tar.gz" -C "$(Pipeline.Workspace)/exp-dotnet/$sdk"
106+
107+
$dotnetDirectory = Get-ChildItem -Directory -Path $(Pipeline.Workspace)/exp-dotnet/$sdk/sdk
108+
$dotnetVersion = $dotnetDirectory.Name
109+
Write-Host "Detected dotnet version: $dotnetVersion"
110+
111+
Write-Host "Updating MSBuild dlls."
112+
$(Build.SourcesDirectory)/scripts/Deploy-MSBuild.ps1 `
113+
-destination "$(Pipeline.Workspace)/exp-dotnet/$sdk/sdk/$dotnetVersion" `
114+
-binDirectory "$(System.ArtifactsDirectory)/msbuild/artifacts/bin" `
115+
-configuration Release `
116+
-makeBackup $false
117+
118+
Write-Host "Compressing dotnet sdk files"
119+
tar -czvf "$(Pipeline.Workspace)/artifacts/$sdk.tar.gz" -C "$(Pipeline.Workspace)/exp-dotnet/$sdk" .
120+
displayName: Dogfood msbuild dlls to dotnet sdk linux-x64
121+
122+
- task: PublishPipelineArtifact@1
123+
inputs:
124+
targetPath: '$(Pipeline.Workspace)/artifacts'
125+
artifactName: ExperimentalDotnet
126+
parallel: true
127+
condition: always()
128+
displayName: Publish crank assests artifacts
129+
130+
131+
- job: CreateExpMSBuild
132+
displayName: "Create Experimental MSBuild"
133+
condition: ne('${{ parameters.VSVersionName }}', 'none')
134+
steps:
135+
- powershell: |
136+
$token = [System.Convert]::ToBase64String([System.Text.Encoding]::ASCII.GetBytes("PAT:$env:ACCESSTOKEN"))
137+
$headers = @{ Authorization = "Basic $token" };
138+
$response = Invoke-RestMethod -Uri "$(_MSBuildConfigFilePathRequestURL)" -Headers $headers -Method Get
139+
$MSBuildDropPath = $response.Tools.MSBuild.Locations
140+
Write-Host "##vso[task.setvariable variable=MSBuildDropPath]$MSBuildDropPath"
141+
Write-Host "MSBuild Drop Path directory: $MSBuildDropPath"
142+
displayName: Get Retail MSBuild Drop Path
143+
env:
144+
ACCESSTOKEN: $(cloudbuild-token)
145+
146+
- task: NuGetToolInstaller@1
147+
displayName: 'Install NuGet.exe'
148+
149+
- task: NuGetCommand@2
150+
displayName: Restore internal tools
151+
inputs:
152+
command: restore
153+
feedsToUse: config
154+
restoreSolution: '$(Build.SourcesDirectory)\eng\common\internal\Tools.csproj'
155+
nugetConfigPath: '$(Build.SourcesDirectory)\NuGet.config'
156+
restoreDirectory: '$(Build.SourcesDirectory)\.packages'
157+
158+
- powershell: |
159+
mkdir "$(Pipeline.Workspace)/artifacts"
160+
161+
$dropAppDirectory = Get-ChildItem -Directory -Path "$(Build.SourcesDirectory)/.packages/drop.app"
162+
$dropAppVersion = $dropAppDirectory.Name
163+
Write-Host "Detected drop.exe version: $dropAppVersion"
164+
165+
$dropExePath = "$(Build.SourcesDirectory)/.packages/drop.app/$dropAppVersion/lib/net45/drop.exe"
166+
Write-Host "Detected drop.exe path: $dropExePath"
167+
168+
Write-Host "Downloading VS msbuild"
169+
& "$dropExePath" get --patAuthEnvVar 'cloudbuild-token' -u "$(MSBuildDropPath)\$(VSVersion)" -d "$(System.ArtifactsDirectory)/VSMSBuildDrop"
170+
Write-Host "Download of VS msbuild finished"
171+
172+
Write-Host "Copying VS msbuild to $(Pipeline.Workspace)/VSMSBuild"
173+
Copy-Item -Path "$(System.ArtifactsDirectory)/VSMSBuildDrop/*" -Destination "$(Pipeline.Workspace)/VSMSBuild" -Recurse
174+
Write-Host "Copy of VS msbuild finished"
175+
displayName: Download msbuild vs drop
176+
env:
177+
cloudbuild-token: $(cloudbuild-token)
178+
179+
- task: DownloadBuildArtifacts@1
180+
inputs:
181+
buildType: specific
182+
project: DevDiv
183+
pipeline: $(_MsBuildCiPipelineId)
184+
${{ if eq(parameters.MSBuildBuildID, 'default') }}:
185+
buildVersionToDownload: latestFromBranch
186+
branchName: '${{parameters.MSBuildBranch}}'
187+
${{ else }}:
188+
buildVersionToDownload: specific
189+
buildId: ${{parameters.MSBuildBuildID}}
190+
artifactName: bin
191+
itemPattern: |
192+
MSBuild.Bootstrap/*/net472/**
193+
Microsoft.Build.Conversion/*/net472/Microsoft.Build.Conversion.Core.dll
194+
Microsoft.Build.Engine/*/net472/Microsoft.Build.Engine.dll
195+
MSBuildTaskHost/**/MSBuildTaskHost.exe
196+
MSBuildTaskHost/**/MSBuildTaskHost.pdb
197+
MSBuild/*/*/net472/MSBuild.exe*
198+
downloadPath: '$(System.ArtifactsDirectory)/msbuild/artifacts/bin'
199+
displayName: Download msbuild artifacts
200+
201+
- powershell: |
202+
Write-Host "Updating MSBuild dlls."
203+
$(Build.SourcesDirectory)/scripts/Deploy-MSBuild.ps1 `
204+
-destination "$(Pipeline.Workspace)/VSMSBuild/$(VSVersion)/MSBuild/Current/Bin" `
205+
-binDirectory "$(System.ArtifactsDirectory)/msbuild/artifacts/bin" `
206+
-configuration Release `
207+
-makeBackup $false
208+
209+
ls "$(Pipeline.Workspace)/VSMSBuild/$(VSVersion)"
210+
Write-Host "Compressing msbuild files"
211+
Get-ChildItem -Path "$(Pipeline.Workspace)/VSMSBuild/$(VSVersion)" | Compress-Archive -DestinationPath "$(Pipeline.Workspace)/artifacts/MSBuild.zip"
212+
displayName: Dogfood msbuild dlls
213+
214+
- task: PublishPipelineArtifact@1
215+
inputs:
216+
targetPath: '$(Pipeline.Workspace)/artifacts'
217+
artifactName: ExperimentalMSBuild
218+
parallel: true
219+
condition: always()
220+
displayName: Publish crank assests artifacts

.git-blame-ignore-revs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
# .git-blame-ignore-revs
2+
# Removed trailing whitespace from *.cs,*.props,*.targets
3+
9a0cef6f75bf13ffbbde956b8f7d7ad7d6e0d996
4+
# Remove trailing whitespace from many *.cs files
5+
629447b151dc49cf4d9a57719beff12983cf1907

.github/CODEOWNERS

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
# Users referenced in this file will automatically be requested as reviewers for PRs that modify the given paths.
2+
# See https://help.github.com/articles/about-code-owners/
3+
4+
/eng/SourceBuild* @dotnet/source-build-internal
5+
/eng/ @dotnet/kitten
6+
/.github/ @dotnet/kitten
7+
/global.json @dotnet/kitten
8+
/.exp-insertions.yml @dotnet/kitten
9+
/.opt-prof.yml @dotnet/kitten
10+
/.vsts-dotnet-ci.yml @dotnet/kitten
11+
/.vsts-dotnet.yml @dotnet/kitten
12+
/NuGet.config @dotnet/kitten
13+
/Directory.Build* @dotnet/kitten
14+
/.git* @dotnet/kitten

.github/ISSUE_TEMPLATE/01_bugreport.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
name: 🐞 Bug Report
22
description: Report a bug to help us improve MSBuild.
33
title: "[Bug]: "
4-
labels: ["bug", "needs-triage"]
4+
labels: ["bug"]
55
body:
66
- type: textarea
77
attributes:

.github/ISSUE_TEMPLATE/02_performanceissue.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
name: 📉 Performance Issue
22
description: Report a performance issue or regression.
33
title: "[Performance]: "
4-
labels: ["performance", "needs-triage"]
4+
labels: ["performance"]
55
body:
66
- type: textarea
77
attributes:

.github/ISSUE_TEMPLATE/03_mybuildisbroken.yml

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
name: 😵 My Build is Broken
22
description: Use this template for helping figure out what's wrong with your build.
33
title: "[Broken Build]: "
4-
labels: ["needs-triage"]
54
body:
65
- type: markdown
76
attributes:

.github/ISSUE_TEMPLATE/05_unhandledexception.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
name: 😱 Unhandled Exception
22
description: Reporting holes in our bug reporting system
33
title: "[Unhandled Exception]: "
4-
labels: ["bug", "needs-triage"]
4+
labels: ["bug"]
55
body:
66
- type: textarea
77
attributes:

.github/ISSUE_TEMPLATE/06_feature_request.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
name: 💡 Feature Request
22
description: Suggest an idea for this project.
33
title: "[Feature Request]: "
4-
labels: ["Feature Request", "needs-triage"]
4+
labels: ["Feature Request"]
55
body:
66
- type: textarea
77
attributes:

0 commit comments

Comments
 (0)