Skip to content

Commit 9df997c

Browse files
Update dependencies from https://github.com/dotnet/arcade build 20200924.4 (#26380)
[release/5.0] Update dependencies from dotnet/arcade
1 parent 40cc4e4 commit 9df997c

File tree

11 files changed

+210
-26
lines changed

11 files changed

+210
-26
lines changed

eng/Version.Details.xml

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -308,17 +308,17 @@
308308
<Uri>https://github.com/dotnet/runtime</Uri>
309309
<Sha>e9ac240eaa36fa0b324ff4432e45d1fbc1e5b290</Sha>
310310
</Dependency>
311-
<Dependency Name="Microsoft.DotNet.Arcade.Sdk" Version="5.0.0-beta.20467.6">
311+
<Dependency Name="Microsoft.DotNet.Arcade.Sdk" Version="5.0.0-beta.20474.4">
312312
<Uri>https://github.com/dotnet/arcade</Uri>
313-
<Sha>b63ea25b8dc50bb3dfcef128d415254bd5ca4dc8</Sha>
313+
<Sha>61cde6e8fb9d5c9790867b279deb41783a780cd8</Sha>
314314
</Dependency>
315-
<Dependency Name="Microsoft.DotNet.Build.Tasks.Installers" Version="5.0.0-beta.20467.6">
315+
<Dependency Name="Microsoft.DotNet.Build.Tasks.Installers" Version="5.0.0-beta.20474.4">
316316
<Uri>https://github.com/dotnet/arcade</Uri>
317-
<Sha>b63ea25b8dc50bb3dfcef128d415254bd5ca4dc8</Sha>
317+
<Sha>61cde6e8fb9d5c9790867b279deb41783a780cd8</Sha>
318318
</Dependency>
319-
<Dependency Name="Microsoft.DotNet.Helix.Sdk" Version="5.0.0-beta.20467.6">
319+
<Dependency Name="Microsoft.DotNet.Helix.Sdk" Version="5.0.0-beta.20474.4">
320320
<Uri>https://github.com/dotnet/arcade</Uri>
321-
<Sha>b63ea25b8dc50bb3dfcef128d415254bd5ca4dc8</Sha>
321+
<Sha>61cde6e8fb9d5c9790867b279deb41783a780cd8</Sha>
322322
</Dependency>
323323
<Dependency Name="Microsoft.Net.Compilers.Toolset" Version="3.8.0-3.20458.6" Pinned="true">
324324
<Uri>https://github.com/dotnet/roslyn</Uri>

eng/Versions.props

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -137,7 +137,7 @@
137137
<MicrosoftEntityFrameworkCorePackageVersion>5.0.0-rc.2.20474.5</MicrosoftEntityFrameworkCorePackageVersion>
138138
<MicrosoftEntityFrameworkCoreDesignPackageVersion>5.0.0-rc.2.20474.5</MicrosoftEntityFrameworkCoreDesignPackageVersion>
139139
<!-- Packages from dotnet/arcade -->
140-
<MicrosoftDotNetBuildTasksInstallersPackageVersion>5.0.0-beta.20467.6</MicrosoftDotNetBuildTasksInstallersPackageVersion>
140+
<MicrosoftDotNetBuildTasksInstallersPackageVersion>5.0.0-beta.20474.4</MicrosoftDotNetBuildTasksInstallersPackageVersion>
141141
</PropertyGroup>
142142
<!--
143143

eng/common/performance/performance-setup.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -201,7 +201,6 @@ if [[ "$internal" == true ]]; then
201201
fi
202202

203203
if [[ "$mono_dotnet" != "" ]] && [[ "$monointerpreter" == "false" ]]; then
204-
configurations="$configurations LLVM=$llvm MonoInterpreter=$monointerpreter MonoAOT=$monoaot"
205204
extra_benchmark_dotnet_arguments="$extra_benchmark_dotnet_arguments --category-exclusion-filter NoMono"
206205
fi
207206

@@ -211,6 +210,7 @@ if [[ "$wasm_runtime_loc" != "" ]]; then
211210
fi
212211

213212
if [[ "$mono_dotnet" != "" ]] && [[ "$monointerpreter" == "true" ]]; then
213+
configurations="$configurations LLVM=$llvm MonoInterpreter=$monointerpreter MonoAOT=$monoaot"
214214
extra_benchmark_dotnet_arguments="$extra_benchmark_dotnet_arguments --category-exclusion-filter NoInterpreter NoMono"
215215
fi
216216

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
parameters:
2+
# This template adds arcade-powered source-build to CI. The template produces a server job with a
3+
# default ID 'Source_Build_Complete' to put in a dependency list if necessary.
4+
5+
# Specifies the prefix for source-build jobs added to pipeline. Use this if disambiguation needed.
6+
jobNamePrefix: 'Source_Build'
7+
8+
# Defines the platform on which to run the job. By default, a linux-x64 machine, suitable for
9+
# managed-only repositories. This is an object with these properties:
10+
#
11+
# name: ''
12+
# The name of the job. This is included in the job ID.
13+
# targetRID: ''
14+
# The name of the target RID to use, instead of the one auto-detected by Arcade.
15+
# nonPortable: false
16+
# Enables non-portable mode. This means a more specific RID (e.g. fedora.32-x64 rather than
17+
# linux-x64), and compiling against distro-provided packages rather than portable ones.
18+
# container: ''
19+
# A container to use. Runs in docker.
20+
# pool: {}
21+
# A pool to use. Runs directly on an agent.
22+
# buildScript: ''
23+
# Specifies the build script to invoke to perform the build in the repo. The default
24+
# './build.sh' should work for typical Arcade repositories, but this is customizable for
25+
# difficult situations.
26+
# jobProperties: {}
27+
# A list of job properties to inject at the top level, for potential extensibility beyond
28+
# container and pool.
29+
platform: {}
30+
31+
jobs:
32+
- job: ${{ parameters.jobNamePrefix }}_${{ parameters.platform.name }}
33+
displayName: Source-Build (${{ parameters.platform.name }})
34+
35+
${{ each property in parameters.platform.jobProperties }}:
36+
${{ property.key }}: ${{ property.value }}
37+
38+
${{ if ne(parameters.platform.container, '') }}:
39+
container: ${{ parameters.platform.container }}
40+
${{ if ne(parameters.platform.pool, '') }}:
41+
pool: ${{ parameters.platform.pool }}
42+
43+
workspace:
44+
clean: all
45+
46+
steps:
47+
- template: /eng/common/templates/steps/source-build.yml
48+
parameters:
49+
platform: ${{ parameters.platform }}

eng/common/templates/jobs/jobs.yml

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,13 @@ parameters:
2424
# if 'true', the build won't run any of the internal only steps, even if it is running in non-public projects.
2525
runAsPublic: false
2626

27+
# Optional: Enable running the source-build jobs to build repo from source
28+
runSourceBuild: false
29+
30+
# Optional: Parameters for source-build template.
31+
# See /eng/common/templates/jobs/source-build.yml for options
32+
sourceBuildParameters: []
33+
2734
# Internal resources (telemetry, microbuild) can only be accessed from non-public projects,
2835
# and some (Microbuild) should only be applied to non-PR cases for internal builds.
2936

@@ -43,6 +50,13 @@ jobs:
4350

4451
name: ${{ job.job }}
4552

53+
- ${{ if eq(parameters.runSourceBuild, true) }}:
54+
- template: /eng/common/templates/jobs/source-build.yml
55+
parameters:
56+
allCompletedJobId: Source_Build_Complete
57+
${{ each parameter in parameters.sourceBuildParameters }}:
58+
${{ parameter.key }}: ${{ parameter.value }}
59+
4660
- ${{ if and(eq(parameters.runAsPublic, 'false'), ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}:
4761
- ${{ if or(eq(parameters.enablePublishBuildAssets, true), eq(parameters.artifacts.publish.manifests, 'true'), ne(parameters.artifacts.publish.manifests, '')) }}:
4862
- template: ../job/publish-build-assets.yml
@@ -55,6 +69,8 @@ jobs:
5569
- ${{ if eq(parameters.publishBuildAssetsDependsOn, '') }}:
5670
- ${{ each job in parameters.jobs }}:
5771
- ${{ job.job }}
72+
- ${{ if eq(parameters.runSourceBuild, true) }}:
73+
- Source_Build_Complete
5874
pool:
5975
vmImage: vs2017-win2016
6076
runAsPublic: ${{ parameters.runAsPublic }}
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
parameters:
2+
# This template adds arcade-powered source-build to CI. A job is created for each platform, as
3+
# well as an optional server job that completes when all platform jobs complete.
4+
5+
# The name of the "join" job for all source-build platforms. If set to empty string, the job is
6+
# not included. Existing repo pipelines can use this job depend on all source-build jobs
7+
# completing without maintaining a separate list of every single job ID: just depend on this one
8+
# server job. By default, not included. Recommended name if used: 'Source_Build_Complete'.
9+
allCompletedJobId: ''
10+
11+
# See /eng/common/templates/job/source-build.yml
12+
jobNamePrefix: 'Source_Build'
13+
14+
# If changed to true, causes this template to include the default platform for a managed-only
15+
# repo. The exact Docker image used for this build will be provided by Arcade. This has some risk,
16+
# but since the repo is supposed to be managed-only, the risk should be very low.
17+
includeDefaultManagedPlatform: false
18+
defaultManagedPlatform:
19+
name: 'Managed'
20+
container: 'mcr.microsoft.com/dotnet-buildtools/prereqs:centos-7-3e800f1-20190501005343'
21+
22+
# Defines the platforms on which to run build jobs. One job is created for each platform, and the
23+
# object in this array is sent to the job template as 'platform'.
24+
platforms: []
25+
26+
jobs:
27+
28+
- ${{ if ne(parameters.allCompletedJobId, '') }}:
29+
- job: ${{ parameters.allCompletedJobId }}
30+
displayName: Source-Build Complete
31+
pool: server
32+
dependsOn:
33+
- ${{ each platform in parameters.platforms }}:
34+
- ${{ parameters.jobNamePrefix }}_${{ platform.name }}
35+
- ${{ if eq(parameters.includeDefaultManagedPlatform, true) }}:
36+
- ${{ parameters.jobNamePrefix }}_${{ parameters.defaultManagedPlatform.name }}
37+
38+
- ${{ each platform in parameters.platforms }}:
39+
- template: /eng/common/templates/job/source-build.yml
40+
parameters:
41+
jobNamePrefix: ${{ parameters.jobNamePrefix }}
42+
platform: ${{ platform }}
43+
44+
- ${{ if eq(parameters.includeDefaultManagedPlatform, true) }}:
45+
- template: /eng/common/templates/job/source-build.yml
46+
parameters:
47+
jobNamePrefix: ${{ parameters.jobNamePrefix }}
48+
platform: ${{ parameters.defaultManagedPlatform }}

eng/common/templates/post-build/post-build.yml

Lines changed: 16 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -78,21 +78,22 @@ stages:
7878
BARBuildId: ${{ parameters.BARBuildId }}
7979
PromoteToChannelIds: ${{ parameters.PromoteToChannelIds }}
8080

81-
- job:
82-
displayName: Post-build Checks
83-
dependsOn: setupMaestroVars
84-
variables:
85-
- name: TargetChannels
86-
value: $[ dependencies.setupMaestroVars.outputs['setReleaseVars.TargetChannels'] ]
87-
pool:
88-
vmImage: 'windows-2019'
89-
steps:
90-
- task: PowerShell@2
91-
displayName: Maestro Channels Consistency
92-
inputs:
93-
filePath: $(Build.SourcesDirectory)/eng/common/post-build/check-channel-consistency.ps1
94-
arguments: -PromoteToChannels "$(TargetChannels)"
95-
-AvailableChannelIds ${{parameters.NetEngLatestChannelId}},${{parameters.NetEngValidationChannelId}},${{parameters.NetDev5ChannelId}},${{parameters.NetDev6ChannelId}},${{parameters.GeneralTestingChannelId}},${{parameters.NETCoreToolingDevChannelId}},${{parameters.NETCoreToolingReleaseChannelId}},${{parameters.NETInternalToolingChannelId}},${{parameters.NETCoreExperimentalChannelId}},${{parameters.NetEngServicesIntChannelId}},${{parameters.NetEngServicesProdChannelId}},${{parameters.Net5Preview8ChannelId}},${{parameters.Net5RC1ChannelId}},${{parameters.Net5RC2ChannelId}},${{parameters.NetCoreSDK313xxChannelId}},${{parameters.NetCoreSDK313xxInternalChannelId}},${{parameters.NetCoreSDK314xxChannelId}},${{parameters.NetCoreSDK314xxInternalChannelId}},${{parameters.VS166ChannelId}},${{parameters.VS167ChannelId}},${{parameters.VS168ChannelId}},${{parameters.VSMasterChannelId}}
81+
- ${{ if and(le(parameters.publishingInfraVersion, 2), eq(parameters.inline, 'true')) }}:
82+
- job:
83+
displayName: Post-build Checks
84+
dependsOn: setupMaestroVars
85+
variables:
86+
- name: TargetChannels
87+
value: $[ dependencies.setupMaestroVars.outputs['setReleaseVars.TargetChannels'] ]
88+
pool:
89+
vmImage: 'windows-2019'
90+
steps:
91+
- task: PowerShell@2
92+
displayName: Maestro Channels Consistency
93+
inputs:
94+
filePath: $(Build.SourcesDirectory)/eng/common/post-build/check-channel-consistency.ps1
95+
arguments: -PromoteToChannels "$(TargetChannels)"
96+
-AvailableChannelIds ${{parameters.NetEngLatestChannelId}},${{parameters.NetEngValidationChannelId}},${{parameters.NetDev5ChannelId}},${{parameters.NetDev6ChannelId}},${{parameters.GeneralTestingChannelId}},${{parameters.NETCoreToolingDevChannelId}},${{parameters.NETCoreToolingReleaseChannelId}},${{parameters.NETInternalToolingChannelId}},${{parameters.NETCoreExperimentalChannelId}},${{parameters.NetEngServicesIntChannelId}},${{parameters.NetEngServicesProdChannelId}},${{parameters.Net5Preview8ChannelId}},${{parameters.Net5RC1ChannelId}},${{parameters.Net5RC2ChannelId}},${{parameters.NetCoreSDK313xxChannelId}},${{parameters.NetCoreSDK313xxInternalChannelId}},${{parameters.NetCoreSDK314xxChannelId}},${{parameters.NetCoreSDK314xxInternalChannelId}},${{parameters.VS166ChannelId}},${{parameters.VS167ChannelId}},${{parameters.VS168ChannelId}},${{parameters.VSMasterChannelId}}
9697

9798
- job:
9899
displayName: NuGet Validation
Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
parameters:
2+
# This template adds arcade-powered source-build to CI.
3+
4+
# This is a 'steps' template, and is intended for advanced scenarios where the existing build
5+
# infra has a careful build methodology that must be followed. For example, a repo
6+
# (dotnet/runtime) might choose to clone the GitHub repo only once and store it as a pipeline
7+
# artifact for all subsequent jobs to use, to reduce dependence on a strong network connection to
8+
# GitHub. Using this steps template leaves room for that infra to be included.
9+
10+
# Defines the platform on which to run the steps. See 'eng/common/templates/job/source-build.yml'
11+
# for details. The entire object is described in the 'job' template for simplicity, even though
12+
# the usage of the properties on this object is split between the 'job' and 'steps' templates.
13+
platform: {}
14+
15+
steps:
16+
# Build. Keep it self-contained for simple reusability. (No source-build-specific job variables.)
17+
- script: |
18+
set -x
19+
df -h
20+
21+
buildConfig=Release
22+
# Check if AzDO substitutes in a build config from a variable, and use it if so.
23+
if [ '$(_BuildConfig)' != '$''(_BuildConfig)' ]; then
24+
buildConfig='$(_BuildConfig)'
25+
fi
26+
27+
officialBuildArgs=
28+
if [ '${{ and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}' = 'True' ]; then
29+
officialBuildArgs='/p:DotNetPublishUsingPipelines=true /p:OfficialBuildId=$(BUILD.BUILDNUMBER)'
30+
fi
31+
32+
targetRidArgs=
33+
if [ '${{ parameters.platform.targetRID }}' != '' ]; then
34+
targetRidArgs='/p:TargetRid=${{ parameters.platform.targetRID }}'
35+
fi
36+
37+
${{ coalesce(parameters.platform.buildScript, './build.sh') }} --ci \
38+
--configuration $buildConfig \
39+
--restore --build --pack --publish \
40+
$officialBuildArgs \
41+
$targetRidArgs \
42+
/p:SourceBuildNonPortable=${{ parameters.platform.nonPortable }} \
43+
/p:ArcadeBuildFromSource=true
44+
displayName: Build
45+
46+
# Upload build logs for diagnosis.
47+
- task: CopyFiles@2
48+
displayName: Prepare BuildLogs staging directory
49+
inputs:
50+
SourceFolder: '$(Build.SourcesDirectory)'
51+
Contents: |
52+
**/*.log
53+
**/*.binlog
54+
artifacts/source-build/self/prebuilt-report/**
55+
TargetFolder: '$(Build.StagingDirectory)/BuildLogs'
56+
CleanTargetFolder: true
57+
continueOnError: true
58+
condition: succeededOrFailed()
59+
60+
- task: PublishPipelineArtifact@1
61+
displayName: Publish BuildLogs
62+
inputs:
63+
targetPath: '$(Build.StagingDirectory)/BuildLogs'
64+
artifactName: BuildLogs_SourceBuild_${{ parameters.platform.name }}_Attempt$(System.JobAttempt)
65+
continueOnError: true
66+
condition: succeededOrFailed()

eng/common/tools.ps1

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -540,13 +540,15 @@ function GetDefaultMSBuildEngine() {
540540

541541
function GetNuGetPackageCachePath() {
542542
if ($env:NUGET_PACKAGES -eq $null) {
543-
# Use local cache on CI to ensure deterministic build,
543+
# Use local cache on CI to ensure deterministic build.
544+
# Avoid using the http cache as workaround for https://github.com/NuGet/Home/issues/3116
544545
# use global cache in dev builds to avoid cost of downloading packages.
545546
# For directory normalization, see also: https://github.com/NuGet/Home/issues/7968
546547
if ($useGlobalNuGetCache) {
547548
$env:NUGET_PACKAGES = Join-Path $env:UserProfile '.nuget\packages\'
548549
} else {
549550
$env:NUGET_PACKAGES = Join-Path $RepoRoot '.packages\'
551+
$env:RESTORENOCACHE = $true
550552
}
551553
}
552554

eng/common/tools.sh

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -312,12 +312,14 @@ function InitializeBuildTool {
312312
_InitializeBuildToolFramework="netcoreapp2.1"
313313
}
314314

315+
# Set RestoreNoCache as a workaround for https://github.com/NuGet/Home/issues/3116
315316
function GetNuGetPackageCachePath {
316317
if [[ -z ${NUGET_PACKAGES:-} ]]; then
317318
if [[ "$use_global_nuget_cache" == true ]]; then
318319
export NUGET_PACKAGES="$HOME/.nuget/packages"
319320
else
320321
export NUGET_PACKAGES="$repo_root/.packages"
322+
export RESTORENOCACHE=true
321323
fi
322324
fi
323325

0 commit comments

Comments
 (0)