Skip to content

Commit bf04e12

Browse files
jkoritzinskyrootViktorHofermmitche
authored
Use Arcade's publishing logic to publish a given VMR vertical (#47076)
Co-authored-by: root <root@jekoritz-devbox.> Co-authored-by: Viktor Hofer <[email protected]> Co-authored-by: Matt Mitchell (.NET) <[email protected]>
1 parent 758447a commit bf04e12

27 files changed

+554
-530
lines changed

eng/pipelines/templates/jobs/vmr-build.yml

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -192,6 +192,9 @@ jobs:
192192
- name: artifactsStagingDir
193193
value: $(Build.ArtifactStagingDirectory)/artifacts
194194

195+
- name: artifactsPrepublishDir
196+
value: $(Build.ArtifactStagingDirectory)/prepublish
197+
195198
- name: successfulJobArtifactName
196199
value: $(Agent.JobName)_Artifacts
197200

@@ -310,7 +313,7 @@ jobs:
310313
sbomEnabled: true
311314

312315
- output: pipelineArtifact
313-
path: $(Build.ArtifactStagingDirectory)
316+
path: $(artifactsPrepublishDir)
314317
artifact: $(failedJobArtifactName)
315318
displayName: Publish Artifacts (On Failure)
316319
condition: failed()
@@ -639,6 +642,19 @@ jobs:
639642
continueOnError: true
640643
condition: succeededOrFailed()
641644

645+
- task: CopyFiles@2
646+
displayName: Copy unmerged artifacts to staging directory
647+
inputs:
648+
SourceFolder: '$(sourcesPath)/artifacts'
649+
Contents: |
650+
packages/**/*
651+
assets/**/*
652+
obj/manifests/**/*
653+
TargetFolder: '$(artifactsPrepublishDir)'
654+
CleanTargetFolder: true
655+
condition: failed()
656+
continueOnError: true
657+
642658
- ${{ if eq(parameters.buildSourceOnly, 'True') }}:
643659
- task: CopyFiles@2
644660
displayName: Copy prebuilt-report to BuildLogs
@@ -692,7 +708,7 @@ jobs:
692708
condition: succeeded()
693709
continueOnError: true
694710

695-
- publish: $(Build.ArtifactStagingDirectory)
711+
- publish: $(artifactsPrepublishDir)
696712
artifact: $(failedJobArtifactName)
697713
displayName: Publish Artifacts (On Failure)
698714
condition: failed()

eng/pipelines/templates/stages/vmr-build-with-join.yml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -113,6 +113,11 @@ stages:
113113
ArtifactName: BlobArtifacts
114114
displayName: Publish Blob Artifacts
115115
sbomEnabled: false
116+
- output: buildArtifacts
117+
PathtoPublish: $(Build.ArtifactStagingDirectory)/artifacts/PDB
118+
ArtifactName: PdbArtifacts
119+
displayName: Publish PDB Artifacts
120+
sbomEnabled: false
116121
- output: buildArtifacts
117122
PathtoPublish: $(Build.ArtifactStagingDirectory)/artifacts/packages
118123
ArtifactName: PackageArtifacts

src/SourceBuild/content/Directory.Build.props

Lines changed: 2 additions & 136 deletions
Original file line numberDiff line numberDiff line change
@@ -7,74 +7,7 @@
77
<Nullable>enable</Nullable>
88
</PropertyGroup>
99

10-
<PropertyGroup Label="CalculateTargetOS">
11-
<BuildOS>linux</BuildOS>
12-
<BuildOS Condition="$([MSBuild]::IsOSPlatform('OSX'))">osx</BuildOS>
13-
<BuildOS Condition="$([MSBuild]::IsOSPlatform('FREEBSD'))">freebsd</BuildOS>
14-
<BuildOS Condition="$([MSBuild]::IsOSPlatform('NETBSD'))">netbsd</BuildOS>
15-
<BuildOS Condition="$([MSBuild]::IsOSPlatform('ILLUMOS'))">illumos</BuildOS>
16-
<BuildOS Condition="$([MSBuild]::IsOSPlatform('SOLARIS'))">solaris</BuildOS>
17-
<BuildOS Condition="$([MSBuild]::IsOSPlatform('HAIKU'))">haiku</BuildOS>
18-
<BuildOS Condition="$([MSBuild]::IsOSPlatform('WINDOWS'))">windows</BuildOS>
19-
<TargetOS Condition="'$(TargetOS)' == ''">$(BuildOS)</TargetOS>
20-
<HostOS Condition="'$(HostOS)' == ''">$(TargetOS)</HostOS>
21-
</PropertyGroup>
22-
23-
<!-- This is a list of cases where we aren't producing a whole SDK, just a runtime. This list should be kept in sync with https://github.com/dotnet/runtime/blob/main/eng/DotNetBuild.props#L26 -->
24-
<PropertyGroup Label="ShortStacks">
25-
<ShortStack Condition="'$(TargetOS)' == 'wasi'">true</ShortStack>
26-
<ShortStack Condition="'$(TargetOS)' == 'browser'">true</ShortStack>
27-
<ShortStack Condition="'$(TargetOS)' == 'ios'">true</ShortStack>
28-
<ShortStack Condition="'$(TargetOS)' == 'iossimulator'">true</ShortStack>
29-
<ShortStack Condition="'$(TargetOS)' == 'tvos'">true</ShortStack>
30-
<ShortStack Condition="'$(TargetOS)' == 'tvossimulator'">true</ShortStack>
31-
<ShortStack Condition="'$(TargetOS)' == 'maccatalyst'">true</ShortStack>
32-
<ShortStack Condition="'$(TargetOS)' == 'android'">true</ShortStack>
33-
<ShortStack Condition="'$(TargetOS)' == 'linux-bionic'">true</ShortStack>
34-
<!-- Mono LLVM builds are short -->
35-
<ShortStack Condition="'$(DotNetBuildMonoEnableLLVM)' == 'true' or '$(DotNetBuildMonoAOTEnableLLVM)' == 'true'">true</ShortStack>
36-
<!-- Short stack builds stop at runtime, not the whole SDK -->
37-
<RootRepo Condition="'$(ShortStack)' == 'true'">runtime</RootRepo>
38-
</PropertyGroup>
39-
40-
<!-- See https://github.com/dotnet/arcade/blob/main/Documentation/UnifiedBuild/Unified-Build-Controls.md#output-controls for
41-
control set definition. -->
42-
<PropertyGroup Label="CalculateArch">
43-
<!-- Build architecture is what we are building on. -->
44-
<BuildArchitecture>$([System.Runtime.InteropServices.RuntimeInformation]::ProcessArchitecture.ToString().ToLowerInvariant)</BuildArchitecture>
45-
<!-- The target architecture is the what the customer is targeting their outputs to run on. -->
46-
<TargetArchitecture Condition="'$(TargetArchitecture)' == ''">$(BuildArchitecture)</TargetArchitecture>
47-
<!-- The host architecture is the what the customer will build on. Much of the time, Host==Target. -->
48-
<HostArchitecture Condition="'$(HostArchitecture)' == ''">$(TargetArchitecture)</HostArchitecture>
49-
50-
<Platform Condition="'$(Platform)' == ''">AnyCPU</Platform>
51-
</PropertyGroup>
52-
53-
<PropertyGroup Label="CalculateRID">
54-
<!-- Use current machine distro RID if set. Otherwise, fall back to RuntimeInformation.RuntimeIdentifier -->
55-
<BuildRid>$(__DistroRid)</BuildRid>
56-
<BuildRid Condition="'$(BuildRid)' == '' and '$(MSBuildRuntimeType)' == 'core'">$([System.Runtime.InteropServices.RuntimeInformation]::RuntimeIdentifier)</BuildRid>
57-
<BuildRid Condition="'$(BuildRid)' == '' and '$(MSBuildRuntimeType)' != 'core'">win-$([System.Runtime.InteropServices.RuntimeInformation]::OSArchitecture.ToString().ToLowerInvariant)</BuildRid>
58-
59-
<TargetRid Condition="'$(TargetRid)' == ''">$(BuildRid.Substring(0, $(BuildRid.LastIndexOf('-'))))-$(TargetArchitecture)</TargetRid>
60-
<HostRid Condition="'$(HostRid)' == ''">$(TargetRid)</HostRid>
61-
62-
<!-- Source-only builds are non portable, except for cross-builds.
63-
Source-only cross-builds default to the portable configuration so the resulting SDK works on a wider range of distros. -->
64-
<PortableBuild Condition="'$(PortableBuild)' == '' and '$(DotNetBuildSourceOnly)' == 'true' and '$(BuildArchitecture)' == '$(TargetArchitecture)'">false</PortableBuild>
65-
<PortableBuild Condition="'$(PortableBuild)' == ''">true</PortableBuild>
66-
67-
<PortableRid Condition="'$(__PortableTargetOS)' != ''">$(__PortableTargetOS)-$(TargetArchitecture)</PortableRid>
68-
<PortableRid Condition="'$(PortableRid)' == '' and '$(TargetOS)' == 'freebsd'">freebsd-$(TargetArchitecture)</PortableRid>
69-
<PortableRid Condition="'$(PortableRid)' == '' and '$(TargetOS)' == 'osx'">osx-$(TargetArchitecture)</PortableRid>
70-
<PortableRid Condition="'$(PortableRid)' == '' and '$(TargetOS)' == 'linux'">linux-$(TargetArchitecture)</PortableRid>
71-
<PortableRid Condition="$(TargetRid.StartsWith('linux-musl')) or $(TargetRid.StartsWith('alpine'))">linux-musl-$(TargetArchitecture)</PortableRid>
72-
<PortableRid Condition="'$(PortableRid)' == '' and '$(TargetOS)' == 'windows'">win-$(TargetArchitecture)</PortableRid>
73-
74-
<TargetRid Condition="'$(PortableBuild)' == 'true' and '$(PortableRid)' != ''">$(PortableRid)</TargetRid>
75-
<TargetRid Condition="'$(ShortStack)' == 'true' and '$(TargetOS)' != 'windows'">$(TargetOS)-$(TargetArchitecture)</TargetRid>
76-
<TargetRid Condition="'$(ShortStack)' == 'true' and '$(TargetOS)' == 'windows'">win-$(TargetArchitecture)</TargetRid>
77-
</PropertyGroup>
10+
<Import Project="$(MSBuildThisFileDirectory)eng/RuntimeIdentifier.props" />
7811

7912
<Import Project="Sdk.props" Sdk="Microsoft.DotNet.Arcade.Sdk" Condition="'$(SkipArcadeSdkImport)' != 'true'" />
8013

@@ -138,74 +71,7 @@
13871

13972
<ShellExtension Condition="'$(BuildOS)' == 'windows'">.cmd</ShellExtension>
14073
<ShellExtension Condition="'$(BuildOS)' != 'windows'">.sh</ShellExtension>
141-
142-
<!-- While the tarball infrastructure currently only supports non Windows, these properties
143-
are already defined for more flexibility in the future. -->
144-
<ArchiveExtension Condition="'$(BuildOS)' == 'windows'">.zip</ArchiveExtension>
145-
<ArchiveExtension Condition="'$(BuildOS)' != 'windows'">.tar.gz</ArchiveExtension>
146-
</PropertyGroup>
147-
148-
<PropertyGroup>
149-
<SrcDir>$([MSBuild]::NormalizeDirectory('$(RepoRoot)', 'src'))</SrcDir>
150-
<ToolsDir>$([MSBuild]::NormalizeDirectory('$(RepositoryEngineeringDir)', 'tools'))</ToolsDir>
151-
<TasksDir>$([MSBuild]::NormalizeDirectory('$(ToolsDir)', 'tasks'))</TasksDir>
152-
<RepoProjectsDir>$([MSBuild]::NormalizeDirectory('$(RepoRoot)', 'repo-projects'))</RepoProjectsDir>
153-
154-
<PrereqsDir>$([MSBuild]::NormalizeDirectory('$(RepoRoot)', 'prereqs'))</PrereqsDir>
155-
<KeysDir>$([MSBuild]::NormalizeDirectory('$(PrereqsDir)', 'keys'))</KeysDir>
156-
<PrereqsPackagesDir>$([MSBuild]::NormalizeDirectory('$(PrereqsDir)', 'packages'))</PrereqsPackagesDir>
157-
158-
<!-- When SB mode, the initial toolsets are unzipped to the "BootstrapPackages" dir.
159-
When running in non-source-build, the bootstrap package is the one restored at the beginning of the build. -->
160-
<BootstrapPackagesDir Condition="'$(DotNetBuildSourceOnly)' == 'true'">$([MSBuild]::NormalizeDirectory('$(NuGetPackageRoot)', 'BootstrapPackages'))</BootstrapPackagesDir>
161-
<BootstrapPackagesDir Condition="'$(DotNetBuildSourceOnly)' != 'true'">$(NuGetPackageRoot)</BootstrapPackagesDir>
162-
163-
<VSMSBuildSdkResolversDir>$([MSBuild]::NormalizeDirectory('$(ArtifactsDir)', 'toolset', 'VSSdkResolvers'))</VSMSBuildSdkResolversDir>
164-
<IntermediateSymbolsRootDir>$([MSBuild]::NormalizeDirectory('$(ArtifactsObjDir)', 'Symbols'))</IntermediateSymbolsRootDir>
165-
166-
<ArtifactsAssetManifestsDir>$([MSBuild]::NormalizeDirectory('$(ArtifactsDir)', 'manifests', '$(Configuration)'))</ArtifactsAssetManifestsDir>
167-
<AssetManifestsIntermediateDir>$([MSBuild]::NormalizeDirectory('$(ArtifactsObjDir)', 'manifests', '$(Configuration)'))</AssetManifestsIntermediateDir>
168-
<ArtifactsAssetsDir>$([MSBuild]::NormalizeDirectory('$(ArtifactsDir)', 'assets', '$(Configuration)'))</ArtifactsAssetsDir>
169-
170-
<DotNetSdkExtractDir>$([MSBuild]::NormalizeDirectory('$(ArtifactsObjDir)', 'extracted-dotnet-sdk'))</DotNetSdkExtractDir>
171-
172-
<PrebuiltPackagesPath>$([MSBuild]::NormalizeDirectory('$(PrereqsPackagesDir)', 'prebuilt'))</PrebuiltPackagesPath>
173-
<PreviouslyRestoredPackagesPath>$([MSBuild]::NormalizeDirectory('$(PrereqsPackagesDir)', 'previouslyRestored'))</PreviouslyRestoredPackagesPath>
174-
<PreviouslySourceBuiltPackagesPath>$([MSBuild]::NormalizeDirectory('$(PrereqsPackagesDir)', 'previously-source-built'))</PreviouslySourceBuiltPackagesPath>
175-
<PreviouslySourceBuiltPackagesPath Condition="'$(CustomPreviouslySourceBuiltPackagesPath)' != ''">$([MSBuild]::EnsureTrailingSlash('$(CustomPreviouslySourceBuiltPackagesPath)'))</PreviouslySourceBuiltPackagesPath>
176-
177-
<PackageReportDir>$([MSBuild]::NormalizeDirectory('$(ArtifactsDir)', 'prebuilt-report'))</PackageReportDir>
178-
<ResultingPrebuiltPackagesDir>$([MSBuild]::NormalizeDirectory('$(PackageReportDir)', 'prebuilt-packages'))</ResultingPrebuiltPackagesDir>
179-
<SbrpRepoSrcDir>$([MSBuild]::NormalizeDirectory('$(SrcDir)', 'source-build-reference-packages', 'src'))</SbrpRepoSrcDir>
180-
<ReferencePackagesDir>$([MSBuild]::NormalizeDirectory('$(PrereqsPackagesDir)', 'reference'))</ReferencePackagesDir>
181-
<PreviouslySourceBuiltReferencePackagesDirName>SourceBuildReferencePackages</PreviouslySourceBuiltReferencePackagesDirName>
182-
<PreviouslySourceBuiltReferencePackagesDir>$([MSBuild]::NormalizeDirectory('$(PreviouslySourceBuiltPackagesPath)', '$(PreviouslySourceBuiltReferencePackagesDirName)'))</PreviouslySourceBuiltReferencePackagesDir>
183-
<SourceBuiltArtifactsTarballName>Private.SourceBuilt.Artifacts</SourceBuiltArtifactsTarballName>
184-
<SourceBuiltPrebuiltsTarballName>Private.SourceBuilt.Prebuilts</SourceBuiltPrebuiltsTarballName>
185-
186-
<BaselineDataFile>$(ToolsDir)prebuilt-baseline.xml</BaselineDataFile>
187-
</PropertyGroup>
188-
189-
<!-- Build task assembly paths -->
190-
<PropertyGroup>
191-
<MicrosoftDotNetUnifiedBuildTasksAssembly>$([MSBuild]::NormalizePath('$(ArtifactsBinDir)', 'Microsoft.DotNet.UnifiedBuild.Tasks', '$(Configuration)', 'Microsoft.DotNet.UnifiedBuild.Tasks.dll'))</MicrosoftDotNetUnifiedBuildTasksAssembly>
192-
<MicrosoftDotNetSourceBuildTasksLeakDetectionAssembly>$([MSBuild]::NormalizePath('$(ArtifactsBinDir)', 'Microsoft.DotNet.SourceBuild.Tasks.LeakDetection', '$(Configuration)', 'Microsoft.DotNet.SourceBuild.Tasks.LeakDetection.dll'))</MicrosoftDotNetSourceBuildTasksLeakDetectionAssembly>
193-
</PropertyGroup>
194-
195-
<PropertyGroup Condition="'$(EnablePoison)' == 'true'">
196-
<PoisonMarkerFile>.prebuilt.xml</PoisonMarkerFile>
197-
<PoisonReportDataFile>$(PackageReportDir)poison-catalog.xml</PoisonReportDataFile>
198-
<PoisonedReportFile>$(PackageReportDir)poisoned.txt</PoisonedReportFile>
199-
<PoisonUsageReportFile>$(PackageReportDir)poison-usage.xml</PoisonUsageReportFile>
200-
</PropertyGroup>
201-
202-
<PropertyGroup>
203-
<!-- Respect the VerticalName property which is set to a unique identifier in CI.
204-
Don't use that when building source-only to allow the build to find the previously built manifest file regardless of the vertical name.
205-
Default to VerticalManifest.xml. -->
206-
<MergedAssetManifestName Condition="'$(VerticalName)' != ''">$(VerticalName).xml</MergedAssetManifestName>
207-
<MergedAssetManifestName Condition="'$(DotNetBuildSourceOnly)' == 'true' or '$(MergedAssetManifestName)' == ''">VerticalManifest.xml</MergedAssetManifestName>
208-
<MergedAssetManifestOutputPath>$(ArtifactsAssetManifestsDir)$(MergedAssetManifestName)</MergedAssetManifestOutputPath>
20974
</PropertyGroup>
21075

76+
<Import Project="$(RepositoryEngineeringDir)VmrLayout.props" />
21177
</Project>

src/SourceBuild/content/Directory.Build.targets

Lines changed: 0 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -61,35 +61,4 @@
6161
<SourceBuiltRuntimeVersion>$(RuntimeFilename.Replace('$(RuntimeFilenamePrefix)','').Replace('-$(TargetRid)$(ArchiveExtension)',''))</SourceBuiltRuntimeVersion>
6262
</PropertyGroup>
6363
</Target>
64-
65-
<ItemGroup>
66-
<!-- Binplace all assets and packages to ArtifactsStagingDir. -->
67-
<BinPlaceDir Include="$(ArtifactsStagingDir)" Condition="'$(ArtifactsStagingDir)' != ''" />
68-
</ItemGroup>
69-
70-
<Target Name="BinPlaceFiles"
71-
AfterTargets="Build"
72-
Condition="'@(BinPlaceDir)' != '' and '@(BinPlaceFile)' != ''"
73-
Inputs="@(BinPlaceDir);%(BinPlaceDir.Identity)"
74-
Outputs="unused">
75-
<PropertyGroup>
76-
<_BinPlaceDir>%(BinPlaceDir.Identity)</_BinPlaceDir>
77-
</PropertyGroup>
78-
79-
<ItemGroup>
80-
<_BinPlaceFileWithFullTargetPath Include="@(BinPlaceFile)">
81-
<TargetPath Condition="'%(BinPlaceFile.TargetPath)' != ''">%(BinPlaceFile.TargetPath)</TargetPath>
82-
<TargetPath Condition="'%(BinPlaceFile.TargetPath)' == ''">$([MSBuild]::MakeRelative('$(ArtifactsDir)', '%(BinPlaceFile.Identity)'))</TargetPath>
83-
</_BinPlaceFileWithFullTargetPath>
84-
</ItemGroup>
85-
86-
<Copy SourceFiles="@(_BinPlaceFileWithFullTargetPath)"
87-
DestinationFiles="@(_BinPlaceFileWithFullTargetPath -> '$([MSBuild]::EnsureTrailingSlash('$(_BinPlaceDir)'))%(TargetPath)')"
88-
SkipUnchangedFiles="true"
89-
OverwriteReadOnlyFiles="true"
90-
Retries="$(CopyRetryCount)"
91-
RetryDelayMilliseconds="$(CopyRetryDelayMilliseconds)"
92-
UseHardlinksIfPossible="true" />
93-
</Target>
94-
9564
</Project>

src/SourceBuild/content/build.proj

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,7 @@
2121

2222
<ProjectReference Include="$(RepoProjectsDir)$(RootRepo).proj" />
2323

24-
<!-- Post-build: Source-only validation, packaging and publishing -->
25-
<ProjectReference Include="$(RepositoryEngineeringDir)merge-asset-manifests.proj" />
24+
<!-- Post-build: Source-only validation -->
2625
<ProjectReference Include="$(RepositoryEngineeringDir)finish-source-only.proj" Condition="'$(DotNetBuildSourceOnly)' == 'true'" />
2726
</ItemGroup>
2827

src/SourceBuild/content/build.sh

Lines changed: 23 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -135,7 +135,7 @@ while [[ $# > 0 ]]; do
135135
test=true
136136
;;
137137
-sign)
138-
properties+=( "/p:Sign=true" )
138+
properties+=( "/p:DotNetBuildSign=true" )
139139
;;
140140

141141
# Source-only settings
@@ -222,13 +222,12 @@ fi
222222
. "$scriptroot/eng/common/tools.sh"
223223

224224
project="$scriptroot/build.proj"
225-
targets="/t:Build"
225+
actions=( "/p:Restore=true" "/p:Build=true" "/p:Publish=true")
226226

227-
# This repo uses the VSTest integration instead of the Arcade Test target
228227
if [[ "$test" == true ]]; then
229228
project="$scriptroot/test/tests.proj"
230-
targets="$targets;VSTest"
231-
properties+=( "/p:Test=true" )
229+
actions=( "/p:Restore=true" "/p:Build=true" "/p:Test=true" )
230+
properties+=( "/p:IsTestRun=true" )
232231

233232
# Workaround for vstest hangs (https://github.com/microsoft/vstest/issues/5091) [TODO]
234233
export MSBUILDENSURESTDOUTFORTASKPROCESSES=1
@@ -252,10 +251,13 @@ function Build {
252251
fi
253252

254253
MSBuild --restore \
255-
$project \
256-
$targets \
254+
$_InitializeToolset \
255+
"/p:Projects=$project" \
257256
$bl \
258257
/p:Configuration=$configuration \
258+
"/p:RepoRoot=$scriptroot/" \
259+
"-tl:off" \
260+
"${actions[@]}" \
259261
"${properties[@]}"
260262

261263
ExitWithExitCode 0
@@ -275,6 +277,9 @@ function Build {
275277
# kill off the MSBuild server so that on future invocations we pick up our custom SDK Resolver
276278
"$CLI_ROOT/dotnet" build-server shutdown --msbuild
277279

280+
local bootstrapArcadeDir=$(cat "$scriptroot/artifacts/toolset/bootstrap-sdks.txt" | grep "microsoft.dotnet.arcade.sdk")
281+
local arcadeBuildStepsDir="$bootstrapArcadeDir/tools/"
282+
278283
# Point MSBuild to the custom SDK resolvers folder, so it will pick up our custom SDK Resolver
279284
export MSBUILDADDITIONALSDKRESOLVERSFOLDER="$scriptroot/artifacts/toolset/VSSdkResolvers/"
280285

@@ -283,7 +288,17 @@ function Build {
283288
bl="/bl:\"$log_dir/Build.binlog\""
284289
fi
285290

286-
"$CLI_ROOT/dotnet" msbuild --restore "$project" $bl $targets "${properties[@]}"
291+
"$CLI_ROOT/dotnet" \
292+
msbuild \
293+
--restore \
294+
"$arcadeBuildStepsDir/Build.proj" \
295+
"/p:Projects=$project" \
296+
/p:Configuration=$configuration \
297+
"/p:RepoRoot=$scriptroot/" \
298+
"-tl:off" \
299+
$bl \
300+
"${actions[@]}" \
301+
"${properties[@]}"
287302
fi
288303
}
289304

0 commit comments

Comments
 (0)