Skip to content

Commit 2ad2402

Browse files
authored
Merge branch 'main' into MergeRedistInstallerWithRedist
2 parents 2022e4c + 19abc98 commit 2ad2402

File tree

124 files changed

+8668
-15698
lines changed

Some content is hidden

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

124 files changed

+8668
-15698
lines changed

.config/dotnet-tools.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
"isRoot": true,
44
"tools": {
55
"microsoft.dotnet.darc": {
6-
"version": "1.1.0-beta.25167.6",
6+
"version": "1.1.0-beta.25168.5",
77
"commands": [
88
"darc"
99
]

eng/Publishing.props

Lines changed: 9 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,11 +15,18 @@
1515
<PropertyGroup Condition="'$(EnableDefaultArtifacts)' == 'true'">
1616
<FSharpCorePath Condition="'$(DotNetFinalVersionKind)' != 'release'">Shipping</FSharpCorePath>
1717
<FSharpCorePath Condition="'$(DotNetFinalVersionKind)' == 'release'">Release</FSharpCorePath>
18+
<!--
19+
We only want to publish the FSharp assets externally when we're publishing all artifacts, not only RID-specific ones.
20+
Add these packages as "Vertical" visibility when we're only publishing RID-specific packages so we don't publish this one.
21+
-->
22+
<FSharpArtifactVisibility Condition="'$(EnableDefaultRidSpecificArtifacts)' == 'true'">Vertical</FSharpArtifactVisibility>
23+
<FSharpArtifactVisibility Condition="'$(FSharpArtifactVisibility)' == ''">External</FSharpArtifactVisibility>
1824
</PropertyGroup>
1925
<ItemGroup Condition="'$(EnableDefaultArtifacts)' == 'true'">
2026
<Artifact Include="$(NuGetPackageRoot)\microsoft.fsharp.compiler\$(MicrosoftFSharpCompilerPackageVersion)\contentFiles\$(FSharpCorePath)\FSharp.Core.*.nupkg;
2127
$(NuGetPackageRoot)\microsoft.fsharp.compiler\$(MicrosoftFSharpCompilerPackageVersion)\contentFiles\$(FSharpCorePath)\FSharp.Compiler.Service.*.nupkg"
22-
Kind="Package" />
28+
Kind="Package"
29+
Visibility="$(FSharpArtifactVisibility)" />
2330
</ItemGroup>
2431

2532
<!-- The PGO sdk should always have External visibility, even if someone changes the default artifact visibility -->
@@ -53,7 +60,7 @@
5360
<MSBuild Projects="$(RepositoryEngineeringDir)Badge.proj" Targets="GenerateVersionBadge">
5461
<Output TaskParameter="TargetOutputs" ItemName="VersionBadge" />
5562
</MSBuild>
56-
63+
5764
<ItemGroup>
5865
<Artifact Include="@(VersionBadge)" Kind="Blob" />
5966
</ItemGroup>

eng/Version.Details.xml

Lines changed: 228 additions & 228 deletions
Large diffs are not rendered by default.

eng/Versions.props

Lines changed: 86 additions & 86 deletions
Large diffs are not rendered by default.

eng/cgmanifest.json

Lines changed: 96 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,96 @@
1+
{
2+
"$schema": "https://json.schemastore.org/component-detection-manifest.json",
3+
"version": 1,
4+
"registrations": [
5+
{
6+
"component": {
7+
"type": "nuget",
8+
"nuget": {
9+
"name": "coverlet.collector",
10+
"version": "6.0.2"
11+
}
12+
}
13+
},
14+
{
15+
"component": {
16+
"type": "nuget",
17+
"nuget": {
18+
"name": "Microsoft.NET.Test.Sdk",
19+
"version": "17.13.0"
20+
}
21+
}
22+
},
23+
{
24+
"component": {
25+
"type": "nuget",
26+
"nuget": {
27+
"name": "MSTest",
28+
"version": "3.8.3"
29+
}
30+
}
31+
},
32+
{
33+
"component": {
34+
"type": "nuget",
35+
"nuget": {
36+
"name": "Microsoft.Playwright.MSTest",
37+
"version": "1.51.0"
38+
}
39+
}
40+
},
41+
{
42+
"component": {
43+
"type": "nuget",
44+
"nuget": {
45+
"name": "NUnit",
46+
"version": "4.3.2"
47+
}
48+
}
49+
},
50+
{
51+
"component": {
52+
"type": "nuget",
53+
"nuget": {
54+
"name": "NUnit.Analyzers",
55+
"version": "4.6.0"
56+
}
57+
}
58+
},
59+
{
60+
"component": {
61+
"type": "nuget",
62+
"nuget": {
63+
"name": "NUnit3TestAdapter",
64+
"version": "5.0.0"
65+
}
66+
}
67+
},
68+
{
69+
"component": {
70+
"type": "nuget",
71+
"nuget": {
72+
"name": "Microsoft.Playwright.NUnit",
73+
"version": "1.51.0"
74+
}
75+
}
76+
},
77+
{
78+
"component": {
79+
"type": "nuget",
80+
"nuget": {
81+
"name": "xunit",
82+
"version": "2.9.2"
83+
}
84+
}
85+
},
86+
{
87+
"component": {
88+
"type": "nuget",
89+
"nuget": {
90+
"name": "xunit.runner.visualstudio",
91+
"version": "2.8.2"
92+
}
93+
}
94+
}
95+
]
96+
}
Lines changed: 174 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,174 @@
1+
parameters:
2+
# Stages that build individual verticals
3+
- name: verticalsStages
4+
type: stageList
5+
# Stages that need to run after the final artifacts are determined after joining all verticals.
6+
- name: postJoinStages
7+
type: stageList
8+
default: []
9+
# When we should run the final join stage and the stages that depend on it.
10+
- name: finalJoinCondition
11+
type: boolean
12+
13+
#### sdk parameters ####
14+
- name: isBuiltFromVmr
15+
displayName: True when build is running from dotnet/dotnet directly
16+
type: boolean
17+
18+
- name: vmrBranch
19+
displayName: dotnet/dotnet branch to use
20+
type: string
21+
22+
# These are not expected to be passed it but rather just object variables reused below
23+
- name: pool_Linux
24+
type: object
25+
default:
26+
name: $(defaultPoolName)
27+
image: $(poolImage_Linux)
28+
demands: ImageOverride -equals $(poolImage_Linux)
29+
os: linux
30+
31+
- name: pool_Windows
32+
type: object
33+
default:
34+
name: $(defaultPoolName)
35+
image: $(poolImage_Windows)
36+
demands: ImageOverride -equals $(poolImage_Windows)
37+
os: windows
38+
39+
- name: pool_LinuxArm64
40+
type: object
41+
default:
42+
name: $(poolName_LinuxArm64)
43+
image: $(poolImage_LinuxArm64)
44+
demands: ImageOverride -equals $(poolImage_LinuxArm64)
45+
hostArchitecture: Arm64
46+
os: linux
47+
48+
- name: pool_Mac
49+
type: object
50+
default:
51+
name: Azure Pipelines
52+
vmImage: $(poolImage_Mac)
53+
os: macOS
54+
55+
56+
- name: pool_Linux_Shortstack
57+
type: object
58+
default:
59+
name: $(shortStackPoolName)
60+
image: $(poolImage_Linux)
61+
demands: ImageOverride -equals $(poolImage_Linux)
62+
os: linux
63+
64+
stages:
65+
# Insert all stages that build verticals
66+
# and publish artifacts for each vertical
67+
- ${{ each stage in parameters.verticalsStages }}:
68+
- ${{ insert }}: ${{ stage }}
69+
- ${{ if parameters.finalJoinCondition }}:
70+
# This stage should contain all jobs that take inputs from all verticals and determine the exact final outputs.
71+
- stage: VMR_Final_Join
72+
displayName: 'VMR Final Join'
73+
dependsOn:
74+
- ${{ each stage in parameters.verticalsStages }}:
75+
- ${{ if ne(stage.templateContext.validationOnly, 'true') }}:
76+
- ${{ stage.stage }}
77+
variables:
78+
- ${{ if parameters.isBuiltFromVmr }}:
79+
- name: vmrPath
80+
value: $(Build.SourcesDirectory)
81+
- ${{ else }}:
82+
- name: vmrPath
83+
value: $(Agent.BuildDirectory)/vmr
84+
- template: ../variables/vmr-build.yml
85+
parameters:
86+
vmrBranch: ${{ parameters.vmrBranch }}
87+
jobs:
88+
- job: FinalJoin
89+
displayName: Final Build Pass
90+
pool: ${{ parameters.pool_Windows }}
91+
timeoutInMinutes: 240
92+
templateContext:
93+
outputParentDirectory: $(Build.ArtifactStagingDirectory)/artifacts
94+
inputs:
95+
# Download the artifacts from every job in every vertical stage under VerticalArtifacts
96+
- ${{ each stage in parameters.verticalsStages }}:
97+
- ${{ if ne(stage.templateContext.validationOnly, 'true') }}:
98+
- ${{ each vertical in stage.jobs }}:
99+
- input: pipelineArtifact
100+
path: $(Build.ArtifactStagingDirectory)/VerticalArtifacts/${{ vertical.job }}
101+
artifactName: ${{ vertical.job }}_Artifacts
102+
- input: pipelineArtifact
103+
path: $(Build.ArtifactStagingDirectory)/VerticalManifests
104+
artifactName: VerticalManifests
105+
outputs:
106+
- output: pipelineArtifact
107+
path: $(Build.ArtifactStagingDirectory)/artifacts/MergedManifest.xml
108+
artifact: AssetManifests
109+
displayName: Publish Merged Manifest
110+
sbomEnabled: false
111+
- output: buildArtifacts
112+
PathtoPublish: $(Build.ArtifactStagingDirectory)/artifacts/assets
113+
ArtifactName: BlobArtifacts
114+
displayName: Publish Blob Artifacts
115+
sbomEnabled: false
116+
- output: buildArtifacts
117+
PathtoPublish: $(Build.ArtifactStagingDirectory)/artifacts/packages
118+
ArtifactName: PackageArtifacts
119+
displayName: Publish Package Artifacts
120+
sbomEnabled: false
121+
- output: pipelineArtifact
122+
path: $(Build.ArtifactStagingDirectory)/artifacts/log
123+
artifact: JoinVerticals_BuildLogs_Attempt$(System.JobAttempt)
124+
displayName: Publish Build Logs
125+
sbomEnabled: false
126+
condition: succeededOrFailed()
127+
steps:
128+
- ${{ if ne(variables['System.TeamProject'], 'internal') }}:
129+
- task: DownloadPipelineArtifact@2
130+
displayName: Download asset manifests
131+
inputs:
132+
path: $(Build.ArtifactStagingDirectory)/VerticalManifests
133+
artifactName: VerticalManifests
134+
# Download the artifacts from every job in every vertical stage under VerticalArtifacts
135+
- ${{ each stage in parameters.verticalsStages }}:
136+
- ${{ if ne(stage.templateContext.validationOnly, 'true') }}:
137+
- ${{ each vertical in stage.jobs }}:
138+
- task: DownloadPipelineArtifact@2
139+
displayName: Download Artifacts for ${{ vertical.job }}
140+
inputs:
141+
path: $(Build.ArtifactStagingDirectory)/VerticalArtifacts/${{ vertical.job }}
142+
artifactName: ${{ vertical.job }}_Artifacts
143+
- ${{ if not(parameters.isBuiltFromVmr) }}:
144+
- template: ../steps/vmr-prepare.yml@self
145+
parameters:
146+
${{ if eq(variables['Build.Reason'], 'PullRequest') }}:
147+
vmrBranch: $(System.PullRequest.TargetBranch)
148+
${{ else }}:
149+
vmrBranch: ${{ variables.VmrBranch }}
150+
151+
- ${{ if eq(variables['Build.Reason'], 'PullRequest') }}:
152+
- template: ../steps/vmr-pull-updates.yml@self
153+
parameters:
154+
vmrPath: ${{ variables.vmrPath }}
155+
vmrBranch: ${{ variables.VmrBranch }}
156+
targetRef: $(Build.SourceVersion) # Synchronize the current sdk commit
157+
- template: ../steps/vmr-join-verticals.yml
158+
parameters:
159+
dotNetBuildPass: final
160+
vmrPath: $(vmrPath)
161+
outputFolder: $(Build.ArtifactStagingDirectory)/artifacts
162+
# Insert all of the post-join stages.
163+
- ${{ each postJoinStage in parameters.postJoinStages }}:
164+
- stage: ${{ postJoinStage.stage }}
165+
${{ each pair in postJoinStage }}:
166+
${{ if notIn(pair.key, 'dependsOn', 'stage') }}:
167+
${{ pair.key }}: ${{ pair.value }}
168+
dependsOn:
169+
# Inject a dependency on the final join stage
170+
- VMR_Final_Join
171+
# add any dependencies provided via root yaml
172+
- ${{ if ne(postJoinStage.dependsOn, '') }}:
173+
- ${{ each dependency in postJoinStage.dependsOn }}:
174+
- ${{ dependency }}

0 commit comments

Comments
 (0)