Merge branch 'release/8.0.1xx' into marcpopMSFT-updatemsbuildversion

This commit is contained in:
Marc Paine 2024-05-23 15:10:39 -07:00 committed by GitHub
commit 6825f02367
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
64 changed files with 4412 additions and 870 deletions

View file

@ -1,3 +1,5 @@
# Pipeline: https://dnceng.visualstudio.com/internal/_build?definitionId=286
trigger: trigger:
batch: true batch: true
branches: branches:
@ -23,339 +25,323 @@ variables:
- group: DotNet-Installer-SDLValidation-Params - group: DotNet-Installer-SDLValidation-Params
- name: _PublishUsingPipelines - name: _PublishUsingPipelines
value: true value: true
- name: _InternalRuntimeDownloadArgs - name: _InternalRuntimeDownloadArgs
value: '' value: ''
- ${{ if eq(variables['System.TeamProject'], 'internal') }}: - ${{ if eq(variables['System.TeamProject'], 'internal') }}:
- group: DotNetBuilds storage account read tokens - group: DotNetBuilds storage account read tokens
- name: _InternalRuntimeDownloadArgs - name: _InternalRuntimeDownloadArgs
value: /p:DotNetRuntimeSourceFeed=https://dotnetbuilds.blob.core.windows.net/internal value: /p:DotNetRuntimeSourceFeed=https://dotnetbuilds.blob.core.windows.net/internal
/p:DotNetRuntimeSourceFeedKey=$(dotnetbuilds-internal-container-read-token-base64) /p:DotNetRuntimeSourceFeedKey=$(dotnetbuilds-internal-container-read-token-base64)
/p:dotnetbuilds-internal-container-read-token-base64=$(dotnetbuilds-internal-container-read-token-base64) /p:dotnetbuilds-internal-container-read-token-base64=$(dotnetbuilds-internal-container-read-token-base64)
- template: /eng/common/templates/variables/pool-providers.yml - template: /eng/common/templates/variables/pool-providers.yml
# Set the MicroBuild plugin installation directory to the agent temp directory to avoid SDL tool scanning.
- name: MicroBuildOutputFolderOverride
value: $(Agent.TempDirectory)
stages: resources:
- stage: Build repositories:
jobs: - repository: 1esPipelines
# This job is for build retry configuration. type: git
- job: Publish_Build_Configuration name: 1ESPipelineTemplates/1ESPipelineTemplates
pool: ref: refs/tags/release
${{ if eq(variables['System.TeamProject'], 'public') }}:
name: $(DncEngPublicBuildPool) extends:
demands: ImageOverride -equals windows.vs2022preview.amd64.open ${{ if notin(variables['Build.Reason'], 'PullRequest') }}:
${{ if eq(variables['System.TeamProject'], 'internal') }}: template: v1/1ES.Official.PipelineTemplate.yml@1esPipelines
${{ else }}:
template: v1/1ES.Unofficial.PipelineTemplate.yml@1esPipelines
parameters:
containers:
alpine319WithNode:
image: mcr.microsoft.com/dotnet-buildtools/prereqs:alpine-3.19-WithNode
cblMariner20Fpm:
image: mcr.microsoft.com/dotnet-buildtools/prereqs:cbl-mariner-2.0-fpm
centosStream8:
image: mcr.microsoft.com/dotnet-buildtools/prereqs:centos-stream8
debian11:
image: mcr.microsoft.com/dotnet-buildtools/prereqs:debian-11-amd64
fedora36:
image: mcr.microsoft.com/dotnet-buildtools/prereqs:fedora-36
ubuntu2204:
image: mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-22.04
mariner20CrossArm:
image: mcr.microsoft.com/dotnet-buildtools/prereqs:cbl-mariner-2.0-cross-arm-alpine
ubuntu2204DebPkg:
image: mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-22.04-debpkg
sdl:
sourceAnalysisPool:
name: $(DncEngInternalBuildPool) name: $(DncEngInternalBuildPool)
demands: ImageOverride -equals windows.vs2022preview.amd64 image: 1es-windows-2022
steps: os: windows
- publish: $(Build.SourcesDirectory)\eng\buildConfiguration # Temporary to workaround MicroBuild issues.
artifact: buildConfiguration credscan:
displayName: Publish Build Config enabled: false
justificationForDisabling: 'CredScan is failing on the MicroBuild signing plugin. "MicroBuild/Plugins/nuget.config" has changing content and thus cannot be baselined.'
## PR-only jobs stages:
- stage: Build
- ${{ if or(eq(variables['System.TeamProject'], 'public'), in(variables['Build.Reason'], 'PullRequest')) }}: jobs:
# Build Retry Configuration
## Windows - job: Publish_Build_Configuration
- template: eng/build.yml
parameters:
agentOs: Windows_NT
jobName: Build_Debug_x64
buildConfiguration: Debug
buildArchitecture: x64
additionalBuildParameters: '/p:PublishInternalAsset=true'
runTests: true
## Linux
- template: eng/build.yml
parameters:
agentOs: Linux
jobName: Build_Ubuntu_22_04_Debug_x64
container: 'mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-22.04'
buildConfiguration: Debug
buildArchitecture: x64
linuxPortable: true
runTests: true
- template: eng/build.yml
parameters:
agentOs: Linux
jobName: Build_Fedora_36_Debug_x64
container: 'mcr.microsoft.com/dotnet-buildtools/prereqs:fedora-36'
buildConfiguration: Debug
buildArchitecture: x64
linuxPortable: true
runTests: true
- template: eng/build.yml
parameters:
agentOs: Linux
jobName: Build_CentOS_8_Stream_Debug_x64
container: 'mcr.microsoft.com/dotnet-buildtools/prereqs:centos-stream8'
buildConfiguration: Debug
buildArchitecture: x64
linuxPortable: false
runTests: true
- template: eng/build.yml
parameters:
agentOs: Linux
jobName: Build_Debian_Stretch_Debug_x64
container: 'mcr.microsoft.com/dotnet-buildtools/prereqs:debian-stretch'
buildConfiguration: Debug
buildArchitecture: x64
additionalBuildParameters: '/p:BuildSdkDeb=true'
linuxPortable: false
runTests: true
- template: eng/build.yml
parameters:
agentOs: Linux
jobName: Build_Arm64_Debug
buildConfiguration: Debug
buildArchitecture: arm64
runtimeIdentifier: 'linux-arm64'
linuxPortable: true
# Never run tests on arm64
runTests: false
- template: eng/build.yml
parameters:
agentOs: Linux
jobName: Build_Linux_musl_Debug_x64
container: 'mcr.microsoft.com/dotnet-buildtools/prereqs:alpine-3.15-WithNode'
buildConfiguration: Debug
buildArchitecture: x64
runtimeIdentifier: 'linux-musl-x64'
# Pass in HostOSName when running on alpine
additionalBuildParameters: '/p:HostOSName="linux-musl"'
linuxPortable: false
runTests: true
- template: eng/build.yml
parameters:
agentOs: Linux
jobName: Build_LinuxPortable_Release_x64
buildConfiguration: Release
buildArchitecture: x64
linuxPortable: true
runTests: true
# MacOS
- template: eng/build.yml
parameters:
agentOs: Darwin
jobName: Build_Release_x64
buildConfiguration: Release
buildArchitecture: x64
runTests: true
## Official/PGO instrumentation Builds
- ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}:
## Windows
- template: eng/build.yml
parameters:
agentOs: Windows_NT
jobName: Build_Release_x64
buildConfiguration: Release
buildArchitecture: x64
additionalBuildParameters: '/p:PublishInternalAsset=true'
runTests: false
- template: eng/build.yml
parameters:
agentOs: Windows_NT
jobName: Build_Release_x86
buildConfiguration: Release
buildArchitecture: x86
runTests: false
- template: eng/build.yml
parameters:
agentOs: Windows_NT
jobName: Build_Release_arm64
buildConfiguration: Release
buildArchitecture: arm64
runTests: false
## Linux
- template: eng/build.yml
parameters:
agentOs: Linux
jobName: Build_Arm_Release
buildConfiguration: Release
buildArchitecture: arm
runtimeIdentifier: 'linux-arm'
linuxPortable: true
runTests: false
- template: eng/build.yml
parameters:
agentOs: Linux
jobName: Build_Arm64_Release
buildConfiguration: Release
buildArchitecture: arm64
runtimeIdentifier: 'linux-arm64'
linuxPortable: true
runTests: false
- template: eng/build.yml
parameters:
agentOs: Linux
jobName: Build_Linux_musl_Release_arm
container: 'mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-18.04-cross'
buildConfiguration: Release
buildArchitecture: arm
runtimeIdentifier: 'linux-musl-arm'
additionalBuildParameters: '/p:OSName="linux-musl"'
linuxPortable: false
runTests: false
- template: eng/build.yml
parameters:
agentOs: Linux
jobName: Build_Linux_musl_Release_arm64
buildConfiguration: Release
buildArchitecture: arm64
runtimeIdentifier: 'linux-musl-arm64'
additionalBuildParameters: '/p:OSName="linux-musl"'
linuxPortable: false
runTests: false
- template: eng/build.yml
parameters:
agentOs: Linux
jobName: Build_Linux_musl_Release_x64
container: 'mcr.microsoft.com/dotnet-buildtools/prereqs:alpine-3.15-WithNode'
buildConfiguration: Release
buildArchitecture: x64
runtimeIdentifier: 'linux-musl-x64'
# Pass in HostOSName when running on alpine
additionalBuildParameters: '/p:HostOSName="linux-musl"'
linuxPortable: false
runTests: false
- template: eng/build.yml
parameters:
agentOs: Linux
jobName: Build_Linux_Portable_Deb_Release_x64
container: 'mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-22.04-debpkg'
buildConfiguration: Release
buildArchitecture: x64
# Do not publish zips and tarballs. The linux-x64 binaries are
# already published by Build_LinuxPortable_Release_x64
additionalBuildParameters: '/p:PublishBinariesAndBadge=false /p:BuildSdkDeb=true'
linuxPortable: true
runTests: false
- template: eng/build.yml
parameters:
agentOs: Linux
jobName: Build_Linux_Portable_Rpm_Release_x64
container: 'mcr.microsoft.com/dotnet-buildtools/prereqs:cbl-mariner-2.0-fpm'
buildConfiguration: Release
buildArchitecture: x64
# Do not publish zips and tarballs. The linux-x64 binaries are
# already published by Build_LinuxPortable_Release_x64
additionalBuildParameters: '/p:PublishBinariesAndBadge=false /p:IsRPMBasedDistro=true'
linuxPortable: true
runTests: false
- template: eng/build.yml
parameters:
agentOs: Linux
jobName: Build_Linux_Portable_Rpm_Release_Arm64
container: 'mcr.microsoft.com/dotnet-buildtools/prereqs:cbl-mariner-2.0-fpm'
buildConfiguration: Release
buildArchitecture: arm64
runtimeIdentifier: 'linux-arm64'
# Do not publish zips and tarballs. The linux-x64 binaries are
# already published by Build_LinuxPortable_Release_x64
additionalBuildParameters: '/p:PublishBinariesAndBadge=false /p:CLIBUILD_SKIP_TESTS=true /p:IsRPMBasedDistro=true'
linuxPortable: true
runTests: false
- template: eng/build.yml
parameters:
agentOs: Linux
jobName: Build_LinuxPortable_Release_x64
buildConfiguration: Release
buildArchitecture: x64
linuxPortable: true
runTests: false
# MacOS
- template: eng/build.yml
parameters:
agentOs: Darwin
jobName: Build_Release_x64
buildConfiguration: Release
buildArchitecture: x64
runTests: false
- template: eng/build.yml
parameters:
agentOs: Darwin
jobName: Build_Release_arm64
runtimeIdentifier: 'osx-arm64'
buildConfiguration: Release
buildArchitecture: arm64
runTests: false
## Windows PGO Instrumentation builds
- template: eng/build.yml
parameters:
agentOs: Windows_NT
pgoInstrument: true
jobName: Build_Release_x64
buildConfiguration: Release
buildArchitecture: x64
additionalBuildParameters: '/p:PublishInternalAsset=true'
runTests: false
- template: eng/build.yml
parameters:
agentOs: Windows_NT
pgoInstrument: true
jobName: Build_Release_x86
buildConfiguration: Release
buildArchitecture: x86
runTests: false
- template: eng/build.yml
parameters:
agentOs: Windows_NT
pgoInstrument: true
jobName: Build_Release_arm64
buildConfiguration: Release
buildArchitecture: arm64
runTests: false
## Linux PGO Instrumentation builds
- template: eng/build.yml
parameters:
agentOs: Linux
pgoInstrument: true
jobName: Build_LinuxPortable_Release_x64
buildConfiguration: Release
buildArchitecture: x64
linuxPortable: true
runTests: false
- template: eng/build.yml
parameters:
agentOs: Linux
pgoInstrument: true
jobName: Build_Release_arm64
buildConfiguration: Release
buildArchitecture: arm64
linuxPortable: true
runTests: false
- template: /eng/common/templates/jobs/source-build.yml
- ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}:
- stage: Publish
dependsOn:
- Build
jobs:
- template: /eng/common/templates/job/publish-build-assets.yml
parameters:
publishUsingPipelines: true
publishAssetsImmediately: true
pool: pool:
${{ if eq(variables['System.TeamProject'], 'public') }}:
name: $(DncEngPublicBuildPool)
image: 1es-windows-2022-open
os: windows
${{ if eq(variables['System.TeamProject'], 'internal') }}: ${{ if eq(variables['System.TeamProject'], 'internal') }}:
name: $(DncEngInternalBuildPool) name: $(DncEngInternalBuildPool)
demands: ImageOverride -equals windows.vs2022.amd64 image: 1es-windows-2022
os: windows
steps:
- task: 1ES.PublishPipelineArtifact@1
displayName: Publish Build Config
inputs:
targetPath: $(Build.SourcesDirectory)\eng\buildConfiguration
artifactName: buildConfiguration
# PR-only jobs
- ${{ if or(eq(variables['System.TeamProject'], 'public'), in(variables['Build.Reason'], 'PullRequest')) }}:
# Windows
- template: eng/build.yml@self
parameters:
agentOs: Windows_NT
jobName: Build_Debug_x64
buildConfiguration: Debug
buildArchitecture: x64
additionalBuildParameters: '/p:PublishInternalAsset=true'
runTests: true
# Linux
- template: eng/build.yml@self
parameters:
agentOs: Linux
jobName: Build_Ubuntu_22_04_Debug_x64
container: ubuntu2204
buildConfiguration: Debug
buildArchitecture: x64
linuxPortable: true
runTests: true
- template: eng/build.yml@self
parameters:
agentOs: Linux
jobName: Build_Fedora_36_Debug_x64
container: fedora36
buildConfiguration: Debug
buildArchitecture: x64
linuxPortable: true
runTests: true
- template: eng/build.yml@self
parameters:
agentOs: Linux
jobName: Build_CentOS_8_Stream_Debug_x64
container: centosStream8
buildConfiguration: Debug
buildArchitecture: x64
linuxPortable: false
runTests: true
- template: eng/build.yml@self
parameters:
agentOs: Linux
jobName: Build_Debian_11_Debug_x64
container: debian11
buildConfiguration: Debug
buildArchitecture: x64
additionalBuildParameters: '/p:BuildSdkDeb=true'
linuxPortable: false
runTests: true
- template: eng/build.yml@self
parameters:
agentOs: Linux
jobName: Build_Arm64_Debug
buildConfiguration: Debug
buildArchitecture: arm64
runtimeIdentifier: 'linux-arm64'
linuxPortable: true
# Never run tests on arm64
runTests: false
- template: eng/build.yml@self
parameters:
agentOs: Linux
jobName: Build_Linux_musl_Debug_x64
container: alpine319WithNode
buildConfiguration: Debug
buildArchitecture: x64
runtimeIdentifier: 'linux-musl-x64'
# Pass in HostOSName when running on alpine
additionalBuildParameters: '/p:HostOSName="linux-musl"'
linuxPortable: false
runTests: true
- template: eng/build.yml@self
parameters:
agentOs: Linux
jobName: Build_LinuxPortable_Release_x64
buildConfiguration: Release
buildArchitecture: x64
linuxPortable: true
runTests: true
# MacOS
- template: eng/build.yml@self
parameters:
agentOs: Darwin
jobName: Build_Release_x64
buildConfiguration: Release
buildArchitecture: x64
runTests: true
# Official/PGO instrumentation Builds
- ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}:
# Windows
- template: eng/build.yml@self
parameters:
agentOs: Windows_NT
jobName: Build_Release_x64
buildConfiguration: Release
buildArchitecture: x64
additionalBuildParameters: '/p:PublishInternalAsset=true'
runTests: false
- template: eng/build.yml@self
parameters:
agentOs: Windows_NT
jobName: Build_Release_x86
buildConfiguration: Release
buildArchitecture: x86
runTests: false
- template: eng/build.yml@self
parameters:
agentOs: Windows_NT
jobName: Build_Release_arm64
buildConfiguration: Release
buildArchitecture: arm64
runTests: false
# Linux
- template: eng/build.yml@self
parameters:
agentOs: Linux
jobName: Build_Arm_Release
buildConfiguration: Release
buildArchitecture: arm
runtimeIdentifier: 'linux-arm'
linuxPortable: true
runTests: false
- template: eng/build.yml@self
parameters:
agentOs: Linux
jobName: Build_Arm64_Release
buildConfiguration: Release
buildArchitecture: arm64
runtimeIdentifier: 'linux-arm64'
linuxPortable: true
runTests: false
- template: eng/build.yml@self
parameters:
agentOs: Linux
jobName: Build_Linux_musl_Release_arm
container: mariner20CrossArm
buildConfiguration: Release
buildArchitecture: arm
runtimeIdentifier: 'linux-musl-arm'
additionalBuildParameters: '/p:OSName="linux-musl"'
linuxPortable: false
runTests: false
- template: eng/build.yml@self
parameters:
agentOs: Linux
jobName: Build_Linux_musl_Release_arm64
buildConfiguration: Release
buildArchitecture: arm64
runtimeIdentifier: 'linux-musl-arm64'
additionalBuildParameters: '/p:OSName="linux-musl"'
linuxPortable: false
runTests: false
- template: eng/build.yml@self
parameters:
agentOs: Linux
jobName: Build_Linux_musl_Release_x64
container: alpine319WithNode
buildConfiguration: Release
buildArchitecture: x64
runtimeIdentifier: 'linux-musl-x64'
# Pass in HostOSName when running on alpine
additionalBuildParameters: '/p:HostOSName="linux-musl"'
linuxPortable: false
runTests: false
- template: eng/build.yml@self
parameters:
agentOs: Linux
jobName: Build_Linux_Portable_Deb_Release_x64
container: ubuntu2204DebPkg
buildConfiguration: Release
buildArchitecture: x64
# Do not publish zips and tarballs. The linux-x64 binaries are
# already published by Build_LinuxPortable_Release_x64
additionalBuildParameters: '/p:PublishBinariesAndBadge=false /p:BuildSdkDeb=true'
linuxPortable: true
runTests: false
- template: eng/build.yml@self
parameters:
agentOs: Linux
jobName: Build_Linux_Portable_Rpm_Release_x64
container: cblMariner20Fpm
buildConfiguration: Release
buildArchitecture: x64
# Do not publish zips and tarballs. The linux-x64 binaries are
# already published by Build_LinuxPortable_Release_x64
additionalBuildParameters: '/p:PublishBinariesAndBadge=false /p:IsRPMBasedDistro=true'
linuxPortable: true
runTests: false
- template: eng/build.yml@self
parameters:
agentOs: Linux
jobName: Build_Linux_Portable_Rpm_Release_Arm64
container: cblMariner20Fpm
buildConfiguration: Release
buildArchitecture: arm64
runtimeIdentifier: 'linux-arm64'
# Do not publish zips and tarballs. The linux-x64 binaries are
# already published by Build_LinuxPortable_Release_x64
additionalBuildParameters: '/p:PublishBinariesAndBadge=false /p:CLIBUILD_SKIP_TESTS=true /p:IsRPMBasedDistro=true'
linuxPortable: true
runTests: false
- template: eng/build.yml@self
parameters:
agentOs: Linux
jobName: Build_LinuxPortable_Release_x64
buildConfiguration: Release
buildArchitecture: x64
linuxPortable: true
runTests: false
# MacOS
- template: eng/build.yml@self
parameters:
agentOs: Darwin
jobName: Build_Release_x64
buildConfiguration: Release
buildArchitecture: x64
runTests: false
- template: eng/build.yml@self
parameters:
agentOs: Darwin
jobName: Build_Release_arm64
runtimeIdentifier: 'osx-arm64'
buildConfiguration: Release
buildArchitecture: arm64
runTests: false
# Source Build
- template: /eng/common/templates-official/jobs/source-build.yml@self
- ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}:
- stage: Publish
dependsOn:
- Build
jobs:
- template: /eng/common/templates-official/job/publish-build-assets.yml@self
parameters:
publishUsingPipelines: true
publishAssetsImmediately: true
pool:
name: $(DncEngInternalBuildPool)
image: 1es-windows-2022
os: windows

View file

@ -59,7 +59,7 @@ stages:
## Windows ## Windows
- template: eng/build.yml - template: eng/build-pr.yml
parameters: parameters:
agentOs: Windows_NT agentOs: Windows_NT
jobName: Build_Debug_x64 jobName: Build_Debug_x64
@ -70,7 +70,7 @@ stages:
## Linux ## Linux
- template: eng/build.yml - template: eng/build-pr.yml
parameters: parameters:
agentOs: Linux agentOs: Linux
jobName: Build_Ubuntu_22_04_Debug_x64 jobName: Build_Ubuntu_22_04_Debug_x64
@ -79,7 +79,7 @@ stages:
buildArchitecture: x64 buildArchitecture: x64
linuxPortable: true linuxPortable: true
runTests: true runTests: true
- template: eng/build.yml - template: eng/build-pr.yml
parameters: parameters:
agentOs: Linux agentOs: Linux
jobName: Build_Fedora_36_Debug_x64 jobName: Build_Fedora_36_Debug_x64
@ -88,7 +88,7 @@ stages:
buildArchitecture: x64 buildArchitecture: x64
linuxPortable: true linuxPortable: true
runTests: true runTests: true
- template: eng/build.yml - template: eng/build-pr.yml
parameters: parameters:
agentOs: Linux agentOs: Linux
jobName: Build_CentOS_8_Stream_Debug_x64 jobName: Build_CentOS_8_Stream_Debug_x64
@ -97,17 +97,17 @@ stages:
buildArchitecture: x64 buildArchitecture: x64
linuxPortable: false linuxPortable: false
runTests: true runTests: true
- template: eng/build.yml - template: eng/build-pr.yml
parameters: parameters:
agentOs: Linux agentOs: Linux
jobName: Build_Debian_Stretch_Debug_x64 jobName: Build_Debian_11_Debug_x64
container: 'mcr.microsoft.com/dotnet-buildtools/prereqs:debian-stretch' container: 'mcr.microsoft.com/dotnet-buildtools/prereqs:debian-11-amd64'
buildConfiguration: Debug buildConfiguration: Debug
buildArchitecture: x64 buildArchitecture: x64
additionalBuildParameters: '/p:BuildSdkDeb=true' additionalBuildParameters: '/p:BuildSdkDeb=true'
linuxPortable: false linuxPortable: false
runTests: true runTests: true
- template: eng/build.yml - template: eng/build-pr.yml
parameters: parameters:
agentOs: Linux agentOs: Linux
jobName: Build_Arm64_Debug jobName: Build_Arm64_Debug
@ -117,11 +117,11 @@ stages:
linuxPortable: true linuxPortable: true
# Never run tests on arm64 # Never run tests on arm64
runTests: false runTests: false
- template: eng/build.yml - template: eng/build-pr.yml
parameters: parameters:
agentOs: Linux agentOs: Linux
jobName: Build_Linux_musl_Debug_x64 jobName: Build_Linux_musl_Debug_x64
container: 'mcr.microsoft.com/dotnet-buildtools/prereqs:alpine-3.15-WithNode' container: 'mcr.microsoft.com/dotnet-buildtools/prereqs:alpine-3.19-WithNode'
buildConfiguration: Debug buildConfiguration: Debug
buildArchitecture: x64 buildArchitecture: x64
runtimeIdentifier: 'linux-musl-x64' runtimeIdentifier: 'linux-musl-x64'
@ -129,7 +129,7 @@ stages:
additionalBuildParameters: '/p:HostOSName="linux-musl"' additionalBuildParameters: '/p:HostOSName="linux-musl"'
linuxPortable: false linuxPortable: false
runTests: true runTests: true
- template: eng/build.yml - template: eng/build-pr.yml
parameters: parameters:
agentOs: Linux agentOs: Linux
jobName: Build_LinuxPortable_Release_x64 jobName: Build_LinuxPortable_Release_x64
@ -140,7 +140,7 @@ stages:
# MacOS # MacOS
- template: eng/build.yml - template: eng/build-pr.yml
parameters: parameters:
agentOs: Darwin agentOs: Darwin
jobName: Build_Release_x64 jobName: Build_Release_x64
@ -154,7 +154,7 @@ stages:
## Windows ## Windows
- template: eng/build.yml - template: eng/build-pr.yml
parameters: parameters:
agentOs: Windows_NT agentOs: Windows_NT
jobName: Build_Release_x64 jobName: Build_Release_x64
@ -162,14 +162,14 @@ stages:
buildArchitecture: x64 buildArchitecture: x64
additionalBuildParameters: '/p:PublishInternalAsset=true' additionalBuildParameters: '/p:PublishInternalAsset=true'
runTests: false runTests: false
- template: eng/build.yml - template: eng/build-pr.yml
parameters: parameters:
agentOs: Windows_NT agentOs: Windows_NT
jobName: Build_Release_x86 jobName: Build_Release_x86
buildConfiguration: Release buildConfiguration: Release
buildArchitecture: x86 buildArchitecture: x86
runTests: false runTests: false
- template: eng/build.yml - template: eng/build-pr.yml
parameters: parameters:
agentOs: Windows_NT agentOs: Windows_NT
jobName: Build_Release_arm64 jobName: Build_Release_arm64
@ -179,7 +179,7 @@ stages:
## Linux ## Linux
- template: eng/build.yml - template: eng/build-pr.yml
parameters: parameters:
agentOs: Linux agentOs: Linux
jobName: Build_Arm_Release jobName: Build_Arm_Release
@ -188,7 +188,7 @@ stages:
runtimeIdentifier: 'linux-arm' runtimeIdentifier: 'linux-arm'
linuxPortable: true linuxPortable: true
runTests: false runTests: false
- template: eng/build.yml - template: eng/build-pr.yml
parameters: parameters:
agentOs: Linux agentOs: Linux
jobName: Build_Arm64_Release jobName: Build_Arm64_Release
@ -197,18 +197,18 @@ stages:
runtimeIdentifier: 'linux-arm64' runtimeIdentifier: 'linux-arm64'
linuxPortable: true linuxPortable: true
runTests: false runTests: false
- template: eng/build.yml - template: eng/build-pr.yml
parameters: parameters:
agentOs: Linux agentOs: Linux
jobName: Build_Linux_musl_Release_arm jobName: Build_Linux_musl_Release_arm
container: 'mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-18.04-cross' container: 'mcr.microsoft.com/dotnet-buildtools/prereqs:cbl-mariner-2.0-cross-arm-alpine'
buildConfiguration: Release buildConfiguration: Release
buildArchitecture: arm buildArchitecture: arm
runtimeIdentifier: 'linux-musl-arm' runtimeIdentifier: 'linux-musl-arm'
additionalBuildParameters: '/p:OSName="linux-musl"' additionalBuildParameters: '/p:OSName="linux-musl"'
linuxPortable: false linuxPortable: false
runTests: false runTests: false
- template: eng/build.yml - template: eng/build-pr.yml
parameters: parameters:
agentOs: Linux agentOs: Linux
jobName: Build_Linux_musl_Release_arm64 jobName: Build_Linux_musl_Release_arm64
@ -218,11 +218,11 @@ stages:
additionalBuildParameters: '/p:OSName="linux-musl"' additionalBuildParameters: '/p:OSName="linux-musl"'
linuxPortable: false linuxPortable: false
runTests: false runTests: false
- template: eng/build.yml - template: eng/build-pr.yml
parameters: parameters:
agentOs: Linux agentOs: Linux
jobName: Build_Linux_musl_Release_x64 jobName: Build_Linux_musl_Release_x64
container: 'mcr.microsoft.com/dotnet-buildtools/prereqs:alpine-3.15-WithNode' container: 'mcr.microsoft.com/dotnet-buildtools/prereqs:alpine-3.19-WithNode'
buildConfiguration: Release buildConfiguration: Release
buildArchitecture: x64 buildArchitecture: x64
runtimeIdentifier: 'linux-musl-x64' runtimeIdentifier: 'linux-musl-x64'
@ -230,7 +230,7 @@ stages:
additionalBuildParameters: '/p:HostOSName="linux-musl"' additionalBuildParameters: '/p:HostOSName="linux-musl"'
linuxPortable: false linuxPortable: false
runTests: false runTests: false
- template: eng/build.yml - template: eng/build-pr.yml
parameters: parameters:
agentOs: Linux agentOs: Linux
jobName: Build_Linux_Portable_Deb_Release_x64 jobName: Build_Linux_Portable_Deb_Release_x64
@ -242,7 +242,7 @@ stages:
additionalBuildParameters: '/p:PublishBinariesAndBadge=false /p:BuildSdkDeb=true' additionalBuildParameters: '/p:PublishBinariesAndBadge=false /p:BuildSdkDeb=true'
linuxPortable: true linuxPortable: true
runTests: false runTests: false
- template: eng/build.yml - template: eng/build-pr.yml
parameters: parameters:
agentOs: Linux agentOs: Linux
jobName: Build_Linux_Portable_Rpm_Release_x64 jobName: Build_Linux_Portable_Rpm_Release_x64
@ -254,7 +254,7 @@ stages:
additionalBuildParameters: '/p:PublishBinariesAndBadge=false /p:IsRPMBasedDistro=true' additionalBuildParameters: '/p:PublishBinariesAndBadge=false /p:IsRPMBasedDistro=true'
linuxPortable: true linuxPortable: true
runTests: false runTests: false
- template: eng/build.yml - template: eng/build-pr.yml
parameters: parameters:
agentOs: Linux agentOs: Linux
jobName: Build_Linux_Portable_Rpm_Release_Arm64 jobName: Build_Linux_Portable_Rpm_Release_Arm64
@ -267,7 +267,7 @@ stages:
additionalBuildParameters: '/p:PublishBinariesAndBadge=false /p:CLIBUILD_SKIP_TESTS=true /p:IsRPMBasedDistro=true' additionalBuildParameters: '/p:PublishBinariesAndBadge=false /p:CLIBUILD_SKIP_TESTS=true /p:IsRPMBasedDistro=true'
linuxPortable: true linuxPortable: true
runTests: false runTests: false
- template: eng/build.yml - template: eng/build-pr.yml
parameters: parameters:
agentOs: Linux agentOs: Linux
jobName: Build_LinuxPortable_Release_x64 jobName: Build_LinuxPortable_Release_x64
@ -278,14 +278,14 @@ stages:
# MacOS # MacOS
- template: eng/build.yml - template: eng/build-pr.yml
parameters: parameters:
agentOs: Darwin agentOs: Darwin
jobName: Build_Release_x64 jobName: Build_Release_x64
buildConfiguration: Release buildConfiguration: Release
buildArchitecture: x64 buildArchitecture: x64
runTests: false runTests: false
- template: eng/build.yml - template: eng/build-pr.yml
parameters: parameters:
agentOs: Darwin agentOs: Darwin
jobName: Build_Release_arm64 jobName: Build_Release_arm64
@ -296,7 +296,7 @@ stages:
## Windows PGO Instrumentation builds ## Windows PGO Instrumentation builds
- template: eng/build.yml - template: eng/build-pr.yml
parameters: parameters:
agentOs: Windows_NT agentOs: Windows_NT
pgoInstrument: true pgoInstrument: true
@ -305,7 +305,7 @@ stages:
buildArchitecture: x64 buildArchitecture: x64
additionalBuildParameters: '/p:PublishInternalAsset=true' additionalBuildParameters: '/p:PublishInternalAsset=true'
runTests: false runTests: false
- template: eng/build.yml - template: eng/build-pr.yml
parameters: parameters:
agentOs: Windows_NT agentOs: Windows_NT
pgoInstrument: true pgoInstrument: true
@ -313,7 +313,7 @@ stages:
buildConfiguration: Release buildConfiguration: Release
buildArchitecture: x86 buildArchitecture: x86
runTests: false runTests: false
- template: eng/build.yml - template: eng/build-pr.yml
parameters: parameters:
agentOs: Windows_NT agentOs: Windows_NT
pgoInstrument: true pgoInstrument: true
@ -324,7 +324,7 @@ stages:
## Linux PGO Instrumentation builds ## Linux PGO Instrumentation builds
- template: eng/build.yml - template: eng/build-pr.yml
parameters: parameters:
agentOs: Linux agentOs: Linux
pgoInstrument: true pgoInstrument: true
@ -334,7 +334,7 @@ stages:
linuxPortable: true linuxPortable: true
runTests: false runTests: false
- template: eng/build.yml - template: eng/build-pr.yml
parameters: parameters:
agentOs: Linux agentOs: Linux
pgoInstrument: true pgoInstrument: true

View file

@ -23,7 +23,6 @@
<add key="dotnet-tools" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-tools/nuget/v3/index.json" /> <add key="dotnet-tools" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-tools/nuget/v3/index.json" />
<add key="dotnet-eng" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-eng/nuget/v3/index.json" /> <add key="dotnet-eng" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-eng/nuget/v3/index.json" />
<add key="dotnet-public" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public/nuget/v3/index.json" /> <add key="dotnet-public" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-public/nuget/v3/index.json" />
<add key="dotnet-eol-transport" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-eol-transport/nuget/v3/index.json" />
<add key="dotnet6" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet6/nuget/v3/index.json" /> <add key="dotnet6" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet6/nuget/v3/index.json" />
<add key="dotnet6-transport" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet6-transport/nuget/v3/index.json" /> <add key="dotnet6-transport" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet6-transport/nuget/v3/index.json" />
<add key="dotnet7" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet7/nuget/v3/index.json" /> <add key="dotnet7" value="https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet7/nuget/v3/index.json" />

View file

@ -39,12 +39,6 @@
<FileSignInfo Include="comhost.dll" CertificateName="None" /> <FileSignInfo Include="comhost.dll" CertificateName="None" />
<FileSignInfo Include="singlefilehost.exe" CertificateName="None" /> <FileSignInfo Include="singlefilehost.exe" CertificateName="None" />
<!-- These are 3rd party nupkgs and should not be signed with an MS cert -->
<FileSignInfo Include="nunit3.dotnetnew.template.$(NUnit3Templates21PackageVersion).nupkg" CertificateName="None" />
<FileSignInfo Include="nunit3.dotnetnew.template.$(NUnit3Templates30PackageVersion).nupkg" CertificateName="None" />
<FileSignInfo Include="nunit3.dotnetnew.template.$(NUnit3Templates31PackageVersion).nupkg" CertificateName="None" />
<FileSignInfo Include="nunit3.dotnetnew.template.$(NUnit3Templates50PackageVersion).nupkg" CertificateName="None" />
<FileExtensionSignInfo Include=".msi" CertificateName="$(InternalCertificateId)" /> <FileExtensionSignInfo Include=".msi" CertificateName="$(InternalCertificateId)" />
<!-- .ttf, .otf, and .js files come in from some older aspnetcore packages (e.g. 2.1). <!-- .ttf, .otf, and .js files come in from some older aspnetcore packages (e.g. 2.1).
These files in the 5.0 packages are NOT signed. When doing postbuild signing, These files in the 5.0 packages are NOT signed. When doing postbuild signing,

View file

@ -5,46 +5,46 @@
Source-build uses transitive dependency resolution to determine correct build SHA of all product contributing repos. 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. 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="8.0.2" CoherentParentDependency="Microsoft.NET.Sdk"> <Dependency Name="Microsoft.WindowsDesktop.App.Ref" Version="8.0.5" CoherentParentDependency="Microsoft.NET.Sdk">
<Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-windowsdesktop</Uri> <Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-windowsdesktop</Uri>
<Sha>593444ad8328a5a933c006c6564469666f45ad2e</Sha> <Sha>dda23bbe00c4a4bfdd3732783f0cce37c11a4f40</Sha>
</Dependency> </Dependency>
<Dependency Name="VS.Redist.Common.WindowsDesktop.SharedFramework.x64.8.0" Version="8.0.2-servicing.24068.6" CoherentParentDependency="Microsoft.NET.Sdk"> <Dependency Name="VS.Redist.Common.WindowsDesktop.SharedFramework.x64.8.0" Version="8.0.5-servicing.24217.5" CoherentParentDependency="Microsoft.NET.Sdk">
<Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-windowsdesktop</Uri> <Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-windowsdesktop</Uri>
<Sha>593444ad8328a5a933c006c6564469666f45ad2e</Sha> <Sha>dda23bbe00c4a4bfdd3732783f0cce37c11a4f40</Sha>
</Dependency> </Dependency>
<Dependency Name="VS.Redist.Common.WindowsDesktop.TargetingPack.x64.8.0" Version="8.0.2-servicing.24068.6" CoherentParentDependency="Microsoft.NET.Sdk"> <Dependency Name="VS.Redist.Common.WindowsDesktop.TargetingPack.x64.8.0" Version="8.0.5-servicing.24217.5" CoherentParentDependency="Microsoft.NET.Sdk">
<Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-windowsdesktop</Uri> <Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-windowsdesktop</Uri>
<Sha>593444ad8328a5a933c006c6564469666f45ad2e</Sha> <Sha>dda23bbe00c4a4bfdd3732783f0cce37c11a4f40</Sha>
</Dependency> </Dependency>
<Dependency Name="Microsoft.WindowsDesktop.App.Runtime.win-x64" Version="8.0.2" CoherentParentDependency="Microsoft.NET.Sdk"> <Dependency Name="Microsoft.WindowsDesktop.App.Runtime.win-x64" Version="8.0.5" CoherentParentDependency="Microsoft.NET.Sdk">
<Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-windowsdesktop</Uri> <Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-windowsdesktop</Uri>
<Sha>593444ad8328a5a933c006c6564469666f45ad2e</Sha> <Sha>dda23bbe00c4a4bfdd3732783f0cce37c11a4f40</Sha>
</Dependency> </Dependency>
<Dependency Name="VS.Redist.Common.NetCore.SharedFramework.x64.8.0" Version="8.0.2-servicing.24067.11" CoherentParentDependency="Microsoft.NET.Sdk"> <Dependency Name="VS.Redist.Common.NetCore.SharedFramework.x64.8.0" Version="8.0.5-servicing.24216.15" CoherentParentDependency="Microsoft.NET.Sdk">
<Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-runtime</Uri> <Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-runtime</Uri>
<Sha>1381d5ebd2ab1f292848d5b19b80cf71ac332508</Sha> <Sha>087e15321bb712ef6fe8b0ba6f8bd12facf92629</Sha>
<SourceBuild RepoName="runtime" ManagedOnly="false" /> <SourceBuild RepoName="runtime" ManagedOnly="false" />
</Dependency> </Dependency>
<Dependency Name="Microsoft.NETCore.App.Ref" Version="8.0.2" CoherentParentDependency="Microsoft.NET.Sdk"> <Dependency Name="Microsoft.NETCore.App.Ref" Version="8.0.5" CoherentParentDependency="Microsoft.NET.Sdk">
<Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-runtime</Uri> <Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-runtime</Uri>
<Sha>1381d5ebd2ab1f292848d5b19b80cf71ac332508</Sha> <Sha>087e15321bb712ef6fe8b0ba6f8bd12facf92629</Sha>
</Dependency> </Dependency>
<Dependency Name="VS.Redist.Common.NetCore.TargetingPack.x64.8.0" Version="8.0.2-servicing.24067.11" CoherentParentDependency="Microsoft.NET.Sdk"> <Dependency Name="VS.Redist.Common.NetCore.TargetingPack.x64.8.0" Version="8.0.5-servicing.24216.15" CoherentParentDependency="Microsoft.NET.Sdk">
<Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-runtime</Uri> <Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-runtime</Uri>
<Sha>1381d5ebd2ab1f292848d5b19b80cf71ac332508</Sha> <Sha>087e15321bb712ef6fe8b0ba6f8bd12facf92629</Sha>
</Dependency> </Dependency>
<Dependency Name="Microsoft.NETCore.App.Runtime.win-x64" Version="8.0.2" CoherentParentDependency="Microsoft.NET.Sdk"> <Dependency Name="Microsoft.NETCore.App.Runtime.win-x64" Version="8.0.5" CoherentParentDependency="Microsoft.NET.Sdk">
<Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-runtime</Uri> <Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-runtime</Uri>
<Sha>1381d5ebd2ab1f292848d5b19b80cf71ac332508</Sha> <Sha>087e15321bb712ef6fe8b0ba6f8bd12facf92629</Sha>
</Dependency> </Dependency>
<Dependency Name="Microsoft.NETCore.App.Host.win-x64" Version="8.0.2" CoherentParentDependency="Microsoft.NET.Sdk"> <Dependency Name="Microsoft.NETCore.App.Host.win-x64" Version="8.0.5" CoherentParentDependency="Microsoft.NET.Sdk">
<Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-runtime</Uri> <Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-runtime</Uri>
<Sha>1381d5ebd2ab1f292848d5b19b80cf71ac332508</Sha> <Sha>087e15321bb712ef6fe8b0ba6f8bd12facf92629</Sha>
</Dependency> </Dependency>
<Dependency Name="Microsoft.NETCore.DotNetHostResolver" Version="8.0.2" CoherentParentDependency="Microsoft.NET.Sdk"> <Dependency Name="Microsoft.NETCore.DotNetHostResolver" Version="8.0.5" CoherentParentDependency="Microsoft.NET.Sdk">
<Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-runtime</Uri> <Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-runtime</Uri>
<Sha>1381d5ebd2ab1f292848d5b19b80cf71ac332508</Sha> <Sha>087e15321bb712ef6fe8b0ba6f8bd12facf92629</Sha>
</Dependency> </Dependency>
<!-- Change blob version in GenerateLayout.targets if this is unpinned to service targeting pack --> <!-- 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. --> <!-- No new netstandard.library planned for 3.1 timeframe at this time. -->
@ -52,55 +52,55 @@
<Uri>https://github.com/dotnet/core-setup</Uri> <Uri>https://github.com/dotnet/core-setup</Uri>
<Sha>7d57652f33493fa022125b7f63aad0d70c52d810</Sha> <Sha>7d57652f33493fa022125b7f63aad0d70c52d810</Sha>
</Dependency> </Dependency>
<Dependency Name="Microsoft.NETCore.Platforms" Version="8.0.2-servicing.24067.11" CoherentParentDependency="Microsoft.NET.Sdk"> <Dependency Name="Microsoft.NETCore.Platforms" Version="8.0.5-servicing.24216.15" CoherentParentDependency="Microsoft.NET.Sdk">
<Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-runtime</Uri> <Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-runtime</Uri>
<Sha>1381d5ebd2ab1f292848d5b19b80cf71ac332508</Sha> <Sha>087e15321bb712ef6fe8b0ba6f8bd12facf92629</Sha>
</Dependency> </Dependency>
<Dependency Name="Microsoft.AspNetCore.App.Ref" Version="8.0.2" CoherentParentDependency="Microsoft.NET.Sdk"> <Dependency Name="Microsoft.AspNetCore.App.Ref" Version="8.0.5" CoherentParentDependency="Microsoft.NET.Sdk">
<Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore</Uri> <Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore</Uri>
<Sha>da7e9894ce22ef8cc02e5acc56e95a6f8cf8f644</Sha> <Sha>c9e3996173cec136bc2e9f3b4ec45f2a323b1d63</Sha>
</Dependency> </Dependency>
<Dependency Name="Microsoft.AspNetCore.App.Ref.Internal" Version="8.0.2-servicing.24068.4" CoherentParentDependency="Microsoft.NET.Sdk"> <Dependency Name="Microsoft.AspNetCore.App.Ref.Internal" Version="8.0.5-servicing.24224.4" CoherentParentDependency="Microsoft.NET.Sdk">
<Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore</Uri> <Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore</Uri>
<Sha>da7e9894ce22ef8cc02e5acc56e95a6f8cf8f644</Sha> <Sha>c9e3996173cec136bc2e9f3b4ec45f2a323b1d63</Sha>
<SourceBuild RepoName="aspnetcore" ManagedOnly="true" /> <SourceBuild RepoName="aspnetcore" ManagedOnly="true" />
</Dependency> </Dependency>
<Dependency Name="Microsoft.AspNetCore.App.Runtime.win-x64" Version="8.0.2" CoherentParentDependency="Microsoft.NET.Sdk"> <Dependency Name="Microsoft.AspNetCore.App.Runtime.win-x64" Version="8.0.5" CoherentParentDependency="Microsoft.NET.Sdk">
<Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore</Uri> <Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore</Uri>
<Sha>da7e9894ce22ef8cc02e5acc56e95a6f8cf8f644</Sha> <Sha>c9e3996173cec136bc2e9f3b4ec45f2a323b1d63</Sha>
</Dependency> </Dependency>
<Dependency Name="VS.Redist.Common.AspNetCore.SharedFramework.x64.8.0" Version="8.0.2-servicing.24068.4" CoherentParentDependency="Microsoft.NET.Sdk"> <Dependency Name="VS.Redist.Common.AspNetCore.SharedFramework.x64.8.0" Version="8.0.5-servicing.24224.4" CoherentParentDependency="Microsoft.NET.Sdk">
<Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore</Uri> <Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore</Uri>
<Sha>da7e9894ce22ef8cc02e5acc56e95a6f8cf8f644</Sha> <Sha>c9e3996173cec136bc2e9f3b4ec45f2a323b1d63</Sha>
</Dependency> </Dependency>
<Dependency Name="dotnet-dev-certs" Version="8.0.2-servicing.24068.4" CoherentParentDependency="Microsoft.NET.Sdk"> <Dependency Name="dotnet-dev-certs" Version="8.0.5-servicing.24224.4" CoherentParentDependency="Microsoft.NET.Sdk">
<Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore</Uri> <Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore</Uri>
<Sha>da7e9894ce22ef8cc02e5acc56e95a6f8cf8f644</Sha> <Sha>c9e3996173cec136bc2e9f3b4ec45f2a323b1d63</Sha>
</Dependency> </Dependency>
<Dependency Name="dotnet-user-jwts" Version="8.0.2-servicing.24068.4" CoherentParentDependency="Microsoft.NET.Sdk"> <Dependency Name="dotnet-user-jwts" Version="8.0.5-servicing.24224.4" CoherentParentDependency="Microsoft.NET.Sdk">
<Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore</Uri> <Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore</Uri>
<Sha>da7e9894ce22ef8cc02e5acc56e95a6f8cf8f644</Sha> <Sha>c9e3996173cec136bc2e9f3b4ec45f2a323b1d63</Sha>
</Dependency> </Dependency>
<Dependency Name="dotnet-user-secrets" Version="8.0.2-servicing.24068.4" CoherentParentDependency="Microsoft.NET.Sdk"> <Dependency Name="dotnet-user-secrets" Version="8.0.5-servicing.24224.4" CoherentParentDependency="Microsoft.NET.Sdk">
<Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore</Uri> <Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-aspnetcore</Uri>
<Sha>da7e9894ce22ef8cc02e5acc56e95a6f8cf8f644</Sha> <Sha>c9e3996173cec136bc2e9f3b4ec45f2a323b1d63</Sha>
</Dependency> </Dependency>
<Dependency Name="Microsoft.DotNet.Common.ItemTemplates" Version="8.0.102"> <Dependency Name="Microsoft.DotNet.Common.ItemTemplates" Version="8.0.105">
<Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-sdk</Uri> <Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-sdk</Uri>
<Sha>4dc36050406554319d333a791a3e1dd8262cfd1b</Sha> <Sha>ecfb8a05aeaa93057ae0003d406280239b2c4c7b</Sha>
</Dependency> </Dependency>
<Dependency Name="Microsoft.TemplateEngine.Cli" Version="8.0.102-servicing.24069.16"> <Dependency Name="Microsoft.TemplateEngine.Cli" Version="8.0.105-servicing.24224.15">
<Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-sdk</Uri> <Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-sdk</Uri>
<Sha>4dc36050406554319d333a791a3e1dd8262cfd1b</Sha> <Sha>ecfb8a05aeaa93057ae0003d406280239b2c4c7b</Sha>
</Dependency> </Dependency>
<Dependency Name="Microsoft.NET.Sdk" Version="8.0.102-servicing.24069.16"> <Dependency Name="Microsoft.NET.Sdk" Version="8.0.105-servicing.24224.15">
<Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-sdk</Uri> <Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-sdk</Uri>
<Sha>4dc36050406554319d333a791a3e1dd8262cfd1b</Sha> <Sha>ecfb8a05aeaa93057ae0003d406280239b2c4c7b</Sha>
<SourceBuild RepoName="sdk" ManagedOnly="true" /> <SourceBuild RepoName="sdk" ManagedOnly="true" />
</Dependency> </Dependency>
<Dependency Name="Microsoft.DotNet.MSBuildSdkResolver" Version="8.0.102-servicing.24069.16"> <Dependency Name="Microsoft.DotNet.MSBuildSdkResolver" Version="8.0.105-servicing.24224.15">
<Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-sdk</Uri> <Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-sdk</Uri>
<Sha>4dc36050406554319d333a791a3e1dd8262cfd1b</Sha> <Sha>ecfb8a05aeaa93057ae0003d406280239b2c4c7b</Sha>
</Dependency> </Dependency>
<Dependency Name="Microsoft.DotNet.Test.ProjectTemplates.2.1" Version="1.0.2-beta4.22406.1"> <Dependency Name="Microsoft.DotNet.Test.ProjectTemplates.2.1" Version="1.0.2-beta4.22406.1">
<Uri>https://github.com/dotnet/test-templates</Uri> <Uri>https://github.com/dotnet/test-templates</Uri>
@ -124,21 +124,21 @@
<Sha>1e5f3603af2277910aad946736ee23283e7f3e16</Sha> <Sha>1e5f3603af2277910aad946736ee23283e7f3e16</Sha>
</Dependency> </Dependency>
<!-- For coherency purposes, these versions should be gated by the versions of winforms and wpf routed via windowsdesktop --> <!-- 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="8.0.2-servicing.24068.3" CoherentParentDependency="Microsoft.WindowsDesktop.App.Runtime.win-x64"> <Dependency Name="Microsoft.Dotnet.WinForms.ProjectTemplates" Version="8.0.5-servicing.24217.4" CoherentParentDependency="Microsoft.WindowsDesktop.App.Runtime.win-x64">
<Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-winforms</Uri> <Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-winforms</Uri>
<Sha>c58fa00bd16b92aab1d7fb2b93e71af6a7768139</Sha> <Sha>6c37c986b6c8fc0669b38a03a03445a75b8227a6</Sha>
</Dependency> </Dependency>
<Dependency Name="Microsoft.DotNet.Wpf.ProjectTemplates" Version="8.0.2-servicing.24068.6" CoherentParentDependency="Microsoft.WindowsDesktop.App.Runtime.win-x64"> <Dependency Name="Microsoft.DotNet.Wpf.ProjectTemplates" Version="8.0.5-servicing.24217.2" CoherentParentDependency="Microsoft.WindowsDesktop.App.Runtime.win-x64">
<Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-wpf</Uri> <Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-wpf</Uri>
<Sha>472140dd926227876848e48f41cfc9acb9275492</Sha> <Sha>b5af29a8f41f880f38fd015c6bcb7aeb816fcef6</Sha>
</Dependency> </Dependency>
<Dependency Name="Microsoft.FSharp.Compiler" Version="12.8.0-beta.23563.2" CoherentParentDependency="Microsoft.NET.Sdk"> <Dependency Name="Microsoft.FSharp.Compiler" Version="12.8.102-beta.24081.2" CoherentParentDependency="Microsoft.NET.Sdk">
<Uri>https://github.com/dotnet/fsharp</Uri> <Uri>https://github.com/dotnet/fsharp</Uri>
<Sha>424e4b7cffb7656efd63f7a905a2498e39011104</Sha> <Sha>fc5e9eda234e2b69aa479f4f83faddc31fdd4da7</Sha>
</Dependency> </Dependency>
<Dependency Name="Microsoft.SourceBuild.Intermediate.fsharp" Version="8.0.101-beta.23563.2" CoherentParentDependency="Microsoft.NET.Sdk"> <Dependency Name="Microsoft.SourceBuild.Intermediate.fsharp" Version="8.0.102-beta.24081.2" CoherentParentDependency="Microsoft.NET.Sdk">
<Uri>https://github.com/dotnet/fsharp</Uri> <Uri>https://github.com/dotnet/fsharp</Uri>
<Sha>424e4b7cffb7656efd63f7a905a2498e39011104</Sha> <Sha>fc5e9eda234e2b69aa479f4f83faddc31fdd4da7</Sha>
<SourceBuild RepoName="fsharp" ManagedOnly="true" /> <SourceBuild RepoName="fsharp" ManagedOnly="true" />
</Dependency> </Dependency>
<Dependency Name="Microsoft.NET.Test.Sdk" Version="17.8.0-release-23615-02" CoherentParentDependency="Microsoft.NET.Sdk"> <Dependency Name="Microsoft.NET.Test.Sdk" Version="17.8.0-release-23615-02" CoherentParentDependency="Microsoft.NET.Sdk">
@ -146,9 +146,9 @@
<Sha>aa59400b11e1aeee2e8af48928dbd48748a8bef9</Sha> <Sha>aa59400b11e1aeee2e8af48928dbd48748a8bef9</Sha>
<SourceBuild RepoName="vstest" ManagedOnly="true" /> <SourceBuild RepoName="vstest" ManagedOnly="true" />
</Dependency> </Dependency>
<Dependency Name="Microsoft.NET.ILLink.Tasks" Version="8.0.2" CoherentParentDependency="Microsoft.NET.Sdk"> <Dependency Name="Microsoft.NET.ILLink.Tasks" Version="8.0.5" CoherentParentDependency="Microsoft.NET.Sdk">
<Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-runtime</Uri> <Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-runtime</Uri>
<Sha>1381d5ebd2ab1f292848d5b19b80cf71ac332508</Sha> <Sha>087e15321bb712ef6fe8b0ba6f8bd12facf92629</Sha>
</Dependency> </Dependency>
<Dependency Name="Microsoft.Net.Compilers.Toolset" Version="4.8.0-7.24067.24" CoherentParentDependency="Microsoft.NET.Sdk"> <Dependency Name="Microsoft.Net.Compilers.Toolset" Version="4.8.0-7.24067.24" CoherentParentDependency="Microsoft.NET.Sdk">
<Uri>https://github.com/dotnet/roslyn</Uri> <Uri>https://github.com/dotnet/roslyn</Uri>
@ -159,7 +159,7 @@
<Uri>https://github.com/dotnet/msbuild</Uri> <Uri>https://github.com/dotnet/msbuild</Uri>
<Sha>b5265ef370a651f8c3458110b804e5cbf869eeb5</Sha> <Sha>b5265ef370a651f8c3458110b804e5cbf869eeb5</Sha>
</Dependency> </Dependency>
<Dependency Name="Microsoft.SourceBuild.Intermediate.msbuild" Version="17.8.5-preview-24055-02" CoherentParentDependency="Microsoft.NET.Sdk"> <Dependency Name="Microsoft.SourceBuild.Intermediate.msbuild" Version="17.8.5-preview-24055-02">
<Uri>https://github.com/dotnet/msbuild</Uri> <Uri>https://github.com/dotnet/msbuild</Uri>
<Sha>b5265ef370a651f8c3458110b804e5cbf869eeb5</Sha> <Sha>b5265ef370a651f8c3458110b804e5cbf869eeb5</Sha>
<SourceBuild RepoName="msbuild" ManagedOnly="true" /> <SourceBuild RepoName="msbuild" ManagedOnly="true" />
@ -173,18 +173,18 @@
<Uri>https://github.com/Microsoft/ApplicationInsights-dotnet</Uri> <Uri>https://github.com/Microsoft/ApplicationInsights-dotnet</Uri>
<Sha>53b80940842204f78708a538628288ff5d741a1d</Sha> <Sha>53b80940842204f78708a538628288ff5d741a1d</Sha>
</Dependency> </Dependency>
<Dependency Name="Microsoft.NET.Workload.Emscripten.Current.Manifest-8.0.100" Version="8.0.2" CoherentParentDependency="Microsoft.NETCore.App.Runtime.win-x64"> <Dependency Name="Microsoft.NET.Workload.Emscripten.Current.Manifest-8.0.100" Version="8.0.5" CoherentParentDependency="Microsoft.NETCore.App.Runtime.win-x64">
<Uri>https://github.com/dotnet/emsdk</Uri> <Uri>https://github.com/dotnet/emsdk</Uri>
<Sha>2fc2ffd960930318f33fcaa690cbdbc55d72f52d</Sha> <Sha>71359b18c2d83c01a68bf155244a65962a7e8c8e</Sha>
</Dependency> </Dependency>
<Dependency Name="Microsoft.NET.Sdk.Aspire.Manifest-8.0.100" Version="8.0.0-preview.1.23557.2"> <Dependency Name="Microsoft.NET.Sdk.Aspire.Manifest-8.0.100" Version="8.0.0-preview.1.23557.2">
<Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-aspire</Uri> <Uri>https://dev.azure.com/dnceng/internal/_git/dotnet-aspire</Uri>
<Sha>48e42f59d64d84b404e904996a9ed61f2a17a569</Sha> <Sha>48e42f59d64d84b404e904996a9ed61f2a17a569</Sha>
<SourceBuild RepoName="aspire" ManagedOnly="true" /> <SourceBuild RepoName="aspire" ManagedOnly="true" />
</Dependency> </Dependency>
<Dependency Name="Microsoft.SourceBuild.Intermediate.emsdk" Version="8.0.2-servicing.24062.1" CoherentParentDependency="Microsoft.NETCore.App.Runtime.win-x64"> <Dependency Name="Microsoft.SourceBuild.Intermediate.emsdk" Version="8.0.5-servicing.24211.3" CoherentParentDependency="Microsoft.NETCore.App.Runtime.win-x64">
<Uri>https://github.com/dotnet/emsdk</Uri> <Uri>https://github.com/dotnet/emsdk</Uri>
<Sha>2fc2ffd960930318f33fcaa690cbdbc55d72f52d</Sha> <Sha>71359b18c2d83c01a68bf155244a65962a7e8c8e</Sha>
<SourceBuild RepoName="emsdk" ManagedOnly="true" /> <SourceBuild RepoName="emsdk" ManagedOnly="true" />
</Dependency> </Dependency>
<Dependency Name="Microsoft.Deployment.DotNet.Releases" Version="2.0.0-preview.1.23463.1" CoherentParentDependency="Microsoft.NET.Sdk"> <Dependency Name="Microsoft.Deployment.DotNet.Releases" Version="2.0.0-preview.1.23463.1" CoherentParentDependency="Microsoft.NET.Sdk">
@ -198,9 +198,9 @@
<Sha>5957c5c5f85f17c145e7fab4ece37ad6aafcded9</Sha> <Sha>5957c5c5f85f17c145e7fab4ece37ad6aafcded9</Sha>
<SourceBuild RepoName="deployment-tools" ManagedOnly="true" /> <SourceBuild RepoName="deployment-tools" ManagedOnly="true" />
</Dependency> </Dependency>
<Dependency Name="Microsoft.SourceBuild.Intermediate.source-build-externals" Version="8.0.0-alpha.1.24161.1"> <Dependency Name="Microsoft.SourceBuild.Intermediate.source-build-externals" Version="8.0.0-alpha.1.24269.1">
<Uri>https://github.com/dotnet/source-build-externals</Uri> <Uri>https://github.com/dotnet/source-build-externals</Uri>
<Sha>00fb7841c80b44262646e57bcfbe90a1b7bc3151</Sha> <Sha>4f2151df120194f0268944f1b723c14820738fc8</Sha>
<SourceBuild RepoName="source-build-externals" ManagedOnly="true" /> <SourceBuild RepoName="source-build-externals" ManagedOnly="true" />
</Dependency> </Dependency>
<Dependency Name="Microsoft.SourceBuild.Intermediate.symreader" Version="2.1.0-beta.23253.1"> <Dependency Name="Microsoft.SourceBuild.Intermediate.symreader" Version="2.1.0-beta.23253.1">
@ -219,18 +219,18 @@
</Dependency> </Dependency>
</ProductDependencies> </ProductDependencies>
<ToolsetDependencies> <ToolsetDependencies>
<Dependency Name="Microsoft.DotNet.Arcade.Sdk" Version="8.0.0-beta.24113.2"> <Dependency Name="Microsoft.DotNet.Arcade.Sdk" Version="8.0.0-beta.24266.3">
<Uri>https://github.com/dotnet/arcade</Uri> <Uri>https://github.com/dotnet/arcade</Uri>
<Sha>da98edc4c3ea539f109ea320672136ceb32591a7</Sha> <Sha>e6f70c7dd528f05cd28cec2a179d58c22e91d9ac</Sha>
<SourceBuild RepoName="arcade" ManagedOnly="true" /> <SourceBuild RepoName="arcade" ManagedOnly="true" />
</Dependency> </Dependency>
<Dependency Name="Microsoft.DotNet.CMake.Sdk" Version="8.0.0-beta.24113.2"> <Dependency Name="Microsoft.DotNet.CMake.Sdk" Version="8.0.0-beta.24266.3">
<Uri>https://github.com/dotnet/arcade</Uri> <Uri>https://github.com/dotnet/arcade</Uri>
<Sha>da98edc4c3ea539f109ea320672136ceb32591a7</Sha> <Sha>e6f70c7dd528f05cd28cec2a179d58c22e91d9ac</Sha>
</Dependency> </Dependency>
<Dependency Name="Microsoft.DotNet.Build.Tasks.Installers" Version="8.0.0-beta.24113.2"> <Dependency Name="Microsoft.DotNet.Build.Tasks.Installers" Version="8.0.0-beta.24266.3">
<Uri>https://github.com/dotnet/arcade</Uri> <Uri>https://github.com/dotnet/arcade</Uri>
<Sha>da98edc4c3ea539f109ea320672136ceb32591a7</Sha> <Sha>e6f70c7dd528f05cd28cec2a179d58c22e91d9ac</Sha>
</Dependency> </Dependency>
<Dependency Name="Microsoft.DotNet.Darc" Version="1.1.0-beta.23578.2"> <Dependency Name="Microsoft.DotNet.Darc" Version="1.1.0-beta.23578.2">
<Uri>https://github.com/dotnet/arcade-services</Uri> <Uri>https://github.com/dotnet/arcade-services</Uri>

View file

@ -8,7 +8,7 @@
<VersionMajor>8</VersionMajor> <VersionMajor>8</VersionMajor>
<VersionMinor>0</VersionMinor> <VersionMinor>0</VersionMinor>
<VersionSDKMinor>1</VersionSDKMinor> <VersionSDKMinor>1</VersionSDKMinor>
<VersionFeature>04</VersionFeature> <VersionFeature>07</VersionFeature>
<VersionPrefix>$(VersionMajor).$(VersionMinor).$(VersionSDKMinor)$(VersionFeature)</VersionPrefix> <VersionPrefix>$(VersionMajor).$(VersionMinor).$(VersionSDKMinor)$(VersionFeature)</VersionPrefix>
<MajorMinorVersion>$(VersionMajor).$(VersionMinor)</MajorMinorVersion> <MajorMinorVersion>$(VersionMajor).$(VersionMinor)</MajorMinorVersion>
<CliProductBandVersion>$(MajorMinorVersion).$(VersionSDKMinor)</CliProductBandVersion> <CliProductBandVersion>$(MajorMinorVersion).$(VersionSDKMinor)</CliProductBandVersion>
@ -27,7 +27,7 @@
<VersionFeature31>32</VersionFeature31> <VersionFeature31>32</VersionFeature31>
<VersionFeature50>17</VersionFeature50> <VersionFeature50>17</VersionFeature50>
<VersionFeature60>$([MSBuild]::Add($(VersionFeature), 25))</VersionFeature60> <VersionFeature60>$([MSBuild]::Add($(VersionFeature), 25))</VersionFeature60>
<VersionFeature70>$([MSBuild]::Add($(VersionFeature), 14))</VersionFeature70> <VersionFeature70>19</VersionFeature70>
<!-- Should be kept in sync with VersionFeature70. It should match the version of Microsoft.NET.ILLink.Tasks <!-- 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. --> referenced by the same 7.0 SDK that references the 7.0.VersionFeature70 runtime pack. -->
<_NET70ILLinkPackVersion>7.0.100-1.23211.1</_NET70ILLinkPackVersion> <_NET70ILLinkPackVersion>7.0.100-1.23211.1</_NET70ILLinkPackVersion>
@ -40,7 +40,7 @@
</PropertyGroup> </PropertyGroup>
<PropertyGroup> <PropertyGroup>
<!-- Dependency from https://github.com/dotnet/arcade --> <!-- Dependency from https://github.com/dotnet/arcade -->
<MicrosoftDotNetBuildTasksInstallersPackageVersion>8.0.0-beta.24113.2</MicrosoftDotNetBuildTasksInstallersPackageVersion> <MicrosoftDotNetBuildTasksInstallersPackageVersion>8.0.0-beta.24266.3</MicrosoftDotNetBuildTasksInstallersPackageVersion>
</PropertyGroup> </PropertyGroup>
<PropertyGroup> <PropertyGroup>
<!-- Dependency from https://github.com/dotnet/arcade-services --> <!-- Dependency from https://github.com/dotnet/arcade-services -->
@ -48,22 +48,15 @@
</PropertyGroup> </PropertyGroup>
<PropertyGroup> <PropertyGroup>
<!-- Dependency from https://github.com/dotnet/winforms --> <!-- Dependency from https://github.com/dotnet/winforms -->
<MicrosoftDotnetWinFormsProjectTemplatesPackageVersion>8.0.2-servicing.24068.3</MicrosoftDotnetWinFormsProjectTemplatesPackageVersion> <MicrosoftDotnetWinFormsProjectTemplatesPackageVersion>8.0.5-servicing.24217.4</MicrosoftDotnetWinFormsProjectTemplatesPackageVersion>
</PropertyGroup> </PropertyGroup>
<PropertyGroup> <PropertyGroup>
<!-- Dependency from https://github.com/dotnet/wpf --> <!-- Dependency from https://github.com/dotnet/wpf -->
<MicrosoftDotNetWpfProjectTemplatesPackageVersion>8.0.2-servicing.24068.6</MicrosoftDotNetWpfProjectTemplatesPackageVersion> <MicrosoftDotNetWpfProjectTemplatesPackageVersion>8.0.5-servicing.24217.2</MicrosoftDotNetWpfProjectTemplatesPackageVersion>
</PropertyGroup> </PropertyGroup>
<PropertyGroup> <PropertyGroup>
<!-- Dependency from https://github.com/dotnet/test-templates -->
<!-- Legacy versions -->
<MicrosoftDotNetTestProjectTemplates21PackageVersion>1.0.2-beta4.22406.1</MicrosoftDotNetTestProjectTemplates21PackageVersion>
<MicrosoftDotNetTestProjectTemplates30PackageVersion>1.0.2-beta4.22406.1</MicrosoftDotNetTestProjectTemplates30PackageVersion>
<!-- Supported versions --> <!-- Supported versions -->
<MicrosoftDotNetTestProjectTemplates31PackageVersion>1.1.0-rc.22558.1</MicrosoftDotNetTestProjectTemplates31PackageVersion>
<MicrosoftDotNetTestProjectTemplates50PackageVersion>1.1.0-rc.23410.2</MicrosoftDotNetTestProjectTemplates50PackageVersion>
<MicrosoftDotNetTestProjectTemplates60PackageVersion>1.1.0-rc.23410.2</MicrosoftDotNetTestProjectTemplates60PackageVersion> <MicrosoftDotNetTestProjectTemplates60PackageVersion>1.1.0-rc.23410.2</MicrosoftDotNetTestProjectTemplates60PackageVersion>
<MicrosoftDotNetTestProjectTemplates70PackageVersion>1.1.0-rc.23410.2</MicrosoftDotNetTestProjectTemplates70PackageVersion>
<MicrosoftDotNetTestProjectTemplates80PackageVersion>1.1.0-rc.23410.2</MicrosoftDotNetTestProjectTemplates80PackageVersion> <MicrosoftDotNetTestProjectTemplates80PackageVersion>1.1.0-rc.23410.2</MicrosoftDotNetTestProjectTemplates80PackageVersion>
</PropertyGroup> </PropertyGroup>
<PropertyGroup> <PropertyGroup>
@ -72,22 +65,22 @@
</PropertyGroup> </PropertyGroup>
<PropertyGroup> <PropertyGroup>
<!-- Dependencies from https://github.com/aspnet/AspNetCore --> <!-- Dependencies from https://github.com/aspnet/AspNetCore -->
<MicrosoftAspNetCoreAppRuntimewinx64PackageVersion>8.0.2</MicrosoftAspNetCoreAppRuntimewinx64PackageVersion> <MicrosoftAspNetCoreAppRuntimewinx64PackageVersion>8.0.5</MicrosoftAspNetCoreAppRuntimewinx64PackageVersion>
<MicrosoftAspNetCoreAppRefPackageVersion>8.0.2</MicrosoftAspNetCoreAppRefPackageVersion> <MicrosoftAspNetCoreAppRefPackageVersion>8.0.5</MicrosoftAspNetCoreAppRefPackageVersion>
<MicrosoftAspNetCoreAppRefInternalPackageVersion>8.0.2-servicing.24068.4</MicrosoftAspNetCoreAppRefInternalPackageVersion> <MicrosoftAspNetCoreAppRefInternalPackageVersion>8.0.5-servicing.24224.4</MicrosoftAspNetCoreAppRefInternalPackageVersion>
<VSRedistCommonAspNetCoreSharedFrameworkx6480PackageVersion>8.0.2-servicing.24068.4</VSRedistCommonAspNetCoreSharedFrameworkx6480PackageVersion> <VSRedistCommonAspNetCoreSharedFrameworkx6480PackageVersion>8.0.5-servicing.24224.4</VSRedistCommonAspNetCoreSharedFrameworkx6480PackageVersion>
<dotnetdevcertsPackageVersion>8.0.2-servicing.24068.4</dotnetdevcertsPackageVersion> <dotnetdevcertsPackageVersion>8.0.5-servicing.24224.4</dotnetdevcertsPackageVersion>
<dotnetuserjwtsPackageVersion>8.0.2-servicing.24068.4</dotnetuserjwtsPackageVersion> <dotnetuserjwtsPackageVersion>8.0.5-servicing.24224.4</dotnetuserjwtsPackageVersion>
<dotnetusersecretsPackageVersion>8.0.2-servicing.24068.4</dotnetusersecretsPackageVersion> <dotnetusersecretsPackageVersion>8.0.5-servicing.24224.4</dotnetusersecretsPackageVersion>
</PropertyGroup> </PropertyGroup>
<PropertyGroup> <PropertyGroup>
<MicroBuildCorePackageVersion>0.2.0</MicroBuildCorePackageVersion> <MicroBuildCorePackageVersion>0.2.0</MicroBuildCorePackageVersion>
</PropertyGroup> </PropertyGroup>
<PropertyGroup> <PropertyGroup>
<!-- Dependencies from https://github.com/dotnet/sdk --> <!-- Dependencies from https://github.com/dotnet/sdk -->
<MicrosoftDotNetCommonItemTemplatesPackageVersion>8.0.102</MicrosoftDotNetCommonItemTemplatesPackageVersion> <MicrosoftDotNetCommonItemTemplatesPackageVersion>8.0.105</MicrosoftDotNetCommonItemTemplatesPackageVersion>
<MicrosoftNETSdkPackageVersion>8.0.102-servicing.24069.16</MicrosoftNETSdkPackageVersion> <MicrosoftNETSdkPackageVersion>8.0.105-servicing.24224.15</MicrosoftNETSdkPackageVersion>
<MicrosoftDotNetMSBuildSdkResolverPackageVersion>8.0.102-servicing.24069.16</MicrosoftDotNetMSBuildSdkResolverPackageVersion> <MicrosoftDotNetMSBuildSdkResolverPackageVersion>8.0.105-servicing.24224.15</MicrosoftDotNetMSBuildSdkResolverPackageVersion>
<MicrosoftNETBuildExtensionsPackageVersion>$(MicrosoftNETSdkPackageVersion)</MicrosoftNETBuildExtensionsPackageVersion> <MicrosoftNETBuildExtensionsPackageVersion>$(MicrosoftNETSdkPackageVersion)</MicrosoftNETBuildExtensionsPackageVersion>
<MicrosoftDotnetToolsetInternalPackageVersion>$(MicrosoftNETSdkPackageVersion)</MicrosoftDotnetToolsetInternalPackageVersion> <MicrosoftDotnetToolsetInternalPackageVersion>$(MicrosoftNETSdkPackageVersion)</MicrosoftDotnetToolsetInternalPackageVersion>
<MicrosoftDotnetTemplateLocatorPackageVersion>$(MicrosoftNETSdkPackageVersion)</MicrosoftDotnetTemplateLocatorPackageVersion> <MicrosoftDotnetTemplateLocatorPackageVersion>$(MicrosoftNETSdkPackageVersion)</MicrosoftDotnetTemplateLocatorPackageVersion>
@ -98,24 +91,24 @@
</PropertyGroup> </PropertyGroup>
<PropertyGroup> <PropertyGroup>
<!-- Dependencies from https://github.com/dotnet/corefx --> <!-- Dependencies from https://github.com/dotnet/corefx -->
<MicrosoftNETCorePlatformsPackageVersion>8.0.2-servicing.24067.11</MicrosoftNETCorePlatformsPackageVersion> <MicrosoftNETCorePlatformsPackageVersion>8.0.5-servicing.24216.15</MicrosoftNETCorePlatformsPackageVersion>
</PropertyGroup> </PropertyGroup>
<PropertyGroup> <PropertyGroup>
<!-- Dependencies from https://github.com/dotnet/core-setup --> <!-- Dependencies from https://github.com/dotnet/core-setup -->
<VSRedistCommonNetCoreSharedFrameworkx6480PackageVersion>8.0.2-servicing.24067.11</VSRedistCommonNetCoreSharedFrameworkx6480PackageVersion> <VSRedistCommonNetCoreSharedFrameworkx6480PackageVersion>8.0.5-servicing.24216.15</VSRedistCommonNetCoreSharedFrameworkx6480PackageVersion>
<VSRedistCommonNetCoreTargetingPackx6480PackageVersion>8.0.2-servicing.24067.11</VSRedistCommonNetCoreTargetingPackx6480PackageVersion> <VSRedistCommonNetCoreTargetingPackx6480PackageVersion>8.0.5-servicing.24216.15</VSRedistCommonNetCoreTargetingPackx6480PackageVersion>
<MicrosoftNETCoreAppRuntimewinx64PackageVersion>8.0.2</MicrosoftNETCoreAppRuntimewinx64PackageVersion> <MicrosoftNETCoreAppRuntimewinx64PackageVersion>8.0.5</MicrosoftNETCoreAppRuntimewinx64PackageVersion>
<MicrosoftNETCoreAppHostwinx64PackageVersion>8.0.2</MicrosoftNETCoreAppHostwinx64PackageVersion> <MicrosoftNETCoreAppHostwinx64PackageVersion>8.0.5</MicrosoftNETCoreAppHostwinx64PackageVersion>
<MicrosoftNETCoreAppRefPackageVersion>8.0.2</MicrosoftNETCoreAppRefPackageVersion> <MicrosoftNETCoreAppRefPackageVersion>8.0.5</MicrosoftNETCoreAppRefPackageVersion>
<MicrosoftNETCoreDotNetHostResolverPackageVersion>8.0.2</MicrosoftNETCoreDotNetHostResolverPackageVersion> <MicrosoftNETCoreDotNetHostResolverPackageVersion>8.0.5</MicrosoftNETCoreDotNetHostResolverPackageVersion>
<NETStandardLibraryRefPackageVersion>2.1.0</NETStandardLibraryRefPackageVersion> <NETStandardLibraryRefPackageVersion>2.1.0</NETStandardLibraryRefPackageVersion>
</PropertyGroup> </PropertyGroup>
<PropertyGroup> <PropertyGroup>
<!-- Dependencies from https://github.com/dotnet/windowsdesktop --> <!-- Dependencies from https://github.com/dotnet/windowsdesktop -->
<VSRedistCommonWindowsDesktopSharedFrameworkx6480PackageVersion>8.0.2-servicing.24068.6</VSRedistCommonWindowsDesktopSharedFrameworkx6480PackageVersion> <VSRedistCommonWindowsDesktopSharedFrameworkx6480PackageVersion>8.0.5-servicing.24217.5</VSRedistCommonWindowsDesktopSharedFrameworkx6480PackageVersion>
<VSRedistCommonWindowsDesktopTargetingPackx6480PackageVersion>8.0.2-servicing.24068.6</VSRedistCommonWindowsDesktopTargetingPackx6480PackageVersion> <VSRedistCommonWindowsDesktopTargetingPackx6480PackageVersion>8.0.5-servicing.24217.5</VSRedistCommonWindowsDesktopTargetingPackx6480PackageVersion>
<MicrosoftWindowsDesktopAppRuntimewinx64PackageVersion>8.0.2</MicrosoftWindowsDesktopAppRuntimewinx64PackageVersion> <MicrosoftWindowsDesktopAppRuntimewinx64PackageVersion>8.0.5</MicrosoftWindowsDesktopAppRuntimewinx64PackageVersion>
<MicrosoftWindowsDesktopAppRefPackageVersion>8.0.2</MicrosoftWindowsDesktopAppRefPackageVersion> <MicrosoftWindowsDesktopAppRefPackageVersion>8.0.5</MicrosoftWindowsDesktopAppRefPackageVersion>
</PropertyGroup> </PropertyGroup>
<PropertyGroup> <PropertyGroup>
<!-- Runtime and Apphost pack versions are the same for all RIDs. We flow the x64 --> <!-- Runtime and Apphost pack versions are the same for all RIDs. We flow the x64 -->
@ -156,26 +149,15 @@
<SubtractOneFromTemplateVersions Condition="$([MSBuild]::Subtract($(VersionFeature), $(MicrosoftNETSdkPatchVersion))) &gt;= 2">true</SubtractOneFromTemplateVersions> <SubtractOneFromTemplateVersions Condition="$([MSBuild]::Subtract($(VersionFeature), $(MicrosoftNETSdkPatchVersion))) &gt;= 2">true</SubtractOneFromTemplateVersions>
<SubtractOneFromTemplateVersions Condition="$(VersionFeature) &gt;= 1 AND ! $(MicrosoftNETSdkPackageVersion.Contains('rtm')) AND ! $(MicrosoftNETSdkPackageVersion.Contains('servicing'))">true</SubtractOneFromTemplateVersions> <SubtractOneFromTemplateVersions Condition="$(VersionFeature) &gt;= 1 AND ! $(MicrosoftNETSdkPackageVersion.Contains('rtm')) AND ! $(MicrosoftNETSdkPackageVersion.Contains('servicing'))">true</SubtractOneFromTemplateVersions>
<AspNetCoreTemplateFeature60>$([MSBuild]::Subtract($(VersionFeature60), 1))</AspNetCoreTemplateFeature60> <AspNetCoreTemplateFeature60>$([MSBuild]::Subtract($(VersionFeature60), 1))</AspNetCoreTemplateFeature60>
<AspNetCoreTemplateFeature70>$([MSBuild]::Subtract($(VersionFeature70), 1))</AspNetCoreTemplateFeature70>
<AspNetCoreTemplateFeature60 Condition="$(MicrosoftNETSdkPackageVersion.Contains('preview'))">$(VersionFeature60)</AspNetCoreTemplateFeature60> <AspNetCoreTemplateFeature60 Condition="$(MicrosoftNETSdkPackageVersion.Contains('preview'))">$(VersionFeature60)</AspNetCoreTemplateFeature60>
<AspNetCoreTemplateFeature70 Condition="$(MicrosoftNETSdkPackageVersion.Contains('preview'))">$(VersionFeature70)</AspNetCoreTemplateFeature70>
<AspNetCoreTemplateFeature60 Condition="'$(SubtractOneFromTemplateVersions)' == 'true'">$([MSBuild]::Subtract($(AspNetCoreTemplateFeature60), 1))</AspNetCoreTemplateFeature60> <AspNetCoreTemplateFeature60 Condition="'$(SubtractOneFromTemplateVersions)' == 'true'">$([MSBuild]::Subtract($(AspNetCoreTemplateFeature60), 1))</AspNetCoreTemplateFeature60>
<AspNetCoreTemplateFeature70 Condition="'$(SubtractOneFromTemplateVersions)' == 'true'">$([MSBuild]::Subtract($(AspNetCoreTemplateFeature70), 1))</AspNetCoreTemplateFeature70>
</PropertyGroup> </PropertyGroup>
<PropertyGroup> <PropertyGroup>
<!-- Cross-release dependency versions --> <!-- Cross-release dependency versions -->
<MicrosoftDotNetCommonItemTemplates50PackageVersion>5.0.403</MicrosoftDotNetCommonItemTemplates50PackageVersion>
<MicrosoftDotNetCommonItemTemplates60PackageVersion>6.0.302</MicrosoftDotNetCommonItemTemplates60PackageVersion> <MicrosoftDotNetCommonItemTemplates60PackageVersion>6.0.302</MicrosoftDotNetCommonItemTemplates60PackageVersion>
<MicrosoftDotNetCommonItemTemplates70PackageVersion>7.0.100</MicrosoftDotNetCommonItemTemplates70PackageVersion>
<MicrosoftAspNetCoreAppRuntime50PackageVersion>5.0.17</MicrosoftAspNetCoreAppRuntime50PackageVersion>
<MicrosoftAspNetCoreAppRuntime60PackageVersion>6.0.14</MicrosoftAspNetCoreAppRuntime60PackageVersion> <MicrosoftAspNetCoreAppRuntime60PackageVersion>6.0.14</MicrosoftAspNetCoreAppRuntime60PackageVersion>
<MicrosoftAspNetCoreAppRuntime70PackageVersion>7.0.3</MicrosoftAspNetCoreAppRuntime70PackageVersion>
<MicrosoftWinFormsProjectTemplates50PackageVersion>5.0.17-servicing.22215.4</MicrosoftWinFormsProjectTemplates50PackageVersion>
<MicrosoftWPFProjectTemplates50PackageVersion>5.0.17-servicing.22218.2</MicrosoftWPFProjectTemplates50PackageVersion>
<MicrosoftWinFormsProjectTemplates60PackageVersion>6.0.7-servicing.22322.3</MicrosoftWinFormsProjectTemplates60PackageVersion> <MicrosoftWinFormsProjectTemplates60PackageVersion>6.0.7-servicing.22322.3</MicrosoftWinFormsProjectTemplates60PackageVersion>
<MicrosoftWPFProjectTemplates60PackageVersion>6.0.7-servicing.22322.2</MicrosoftWPFProjectTemplates60PackageVersion> <MicrosoftWPFProjectTemplates60PackageVersion>6.0.7-servicing.22322.2</MicrosoftWPFProjectTemplates60PackageVersion>
<MicrosoftWinFormsProjectTemplates70PackageVersion>7.0.0-rtm.22518.7</MicrosoftWinFormsProjectTemplates70PackageVersion>
<MicrosoftWPFProjectTemplates70PackageVersion>7.0.0-rtm.22518.2</MicrosoftWPFProjectTemplates70PackageVersion>
</PropertyGroup> </PropertyGroup>
<PropertyGroup> <PropertyGroup>
<HostFxrVersion>$(MicrosoftNETCoreAppRuntimePackageVersion)</HostFxrVersion> <HostFxrVersion>$(MicrosoftNETCoreAppRuntimePackageVersion)</HostFxrVersion>
@ -183,7 +165,7 @@
</PropertyGroup> </PropertyGroup>
<PropertyGroup> <PropertyGroup>
<!-- This is the version of the zip archive for the WiX toolset and is different from the NuGet package version format. --> <!-- This is the version of the zip archive for the WiX toolset and is different from the NuGet package version format. -->
<WixVersion>3.14.0.8606</WixVersion> <WixVersion>3.14.1.8722</WixVersion>
</PropertyGroup> </PropertyGroup>
<PropertyGroup> <PropertyGroup>
<!-- 8.0 Template versions --> <!-- 8.0 Template versions -->
@ -193,13 +175,6 @@
<MicrosoftDotNetCommonItemTemplates80PackageVersion>$(MicrosoftDotNetCommonItemTemplatesPackageVersion)</MicrosoftDotNetCommonItemTemplates80PackageVersion> <MicrosoftDotNetCommonItemTemplates80PackageVersion>$(MicrosoftDotNetCommonItemTemplatesPackageVersion)</MicrosoftDotNetCommonItemTemplates80PackageVersion>
<MicrosoftDotNetCommonProjectTemplates80PackageVersion>$(MicrosoftDotNetCommonItemTemplatesPackageVersion)</MicrosoftDotNetCommonProjectTemplates80PackageVersion> <MicrosoftDotNetCommonProjectTemplates80PackageVersion>$(MicrosoftDotNetCommonItemTemplatesPackageVersion)</MicrosoftDotNetCommonProjectTemplates80PackageVersion>
<AspNetCorePackageVersionFor80Templates>$(MicrosoftAspNetCoreAppRuntimePackageVersion)</AspNetCorePackageVersionFor80Templates> <AspNetCorePackageVersionFor80Templates>$(MicrosoftAspNetCoreAppRuntimePackageVersion)</AspNetCorePackageVersionFor80Templates>
<!-- 7.0 Template versions -->
<MicrosoftDotnetWinFormsProjectTemplates70PackageVersion>$(MicrosoftWinFormsProjectTemplates70PackageVersion)</MicrosoftDotnetWinFormsProjectTemplates70PackageVersion>
<MicrosoftDotNetWpfProjectTemplates70PackageVersion>$(MicrosoftWPFProjectTemplates70PackageVersion)</MicrosoftDotNetWpfProjectTemplates70PackageVersion>
<NUnit3Templates70PackageVersion>$(NUnit3DotNetNewTemplatePackageVersion)</NUnit3Templates70PackageVersion>
<MicrosoftDotNetCommonItemTemplates70PackageVersion>$(MicrosoftDotNetCommonItemTemplates70PackageVersion)</MicrosoftDotNetCommonItemTemplates70PackageVersion>
<MicrosoftDotNetCommonProjectTemplates70PackageVersion>$(MicrosoftDotNetCommonItemTemplates70PackageVersion)</MicrosoftDotNetCommonProjectTemplates70PackageVersion>
<AspNetCorePackageVersionFor70Templates>7.0.$(AspNetCoreTemplateFeature70)</AspNetCorePackageVersionFor70Templates>
<!-- 6.0 Template versions --> <!-- 6.0 Template versions -->
<MicrosoftDotnetWinFormsProjectTemplates60PackageVersion>$(MicrosoftWinFormsProjectTemplates60PackageVersion)</MicrosoftDotnetWinFormsProjectTemplates60PackageVersion> <MicrosoftDotnetWinFormsProjectTemplates60PackageVersion>$(MicrosoftWinFormsProjectTemplates60PackageVersion)</MicrosoftDotnetWinFormsProjectTemplates60PackageVersion>
<MicrosoftDotNetWpfProjectTemplates60PackageVersion>$(MicrosoftWPFProjectTemplates60PackageVersion)</MicrosoftDotNetWpfProjectTemplates60PackageVersion> <MicrosoftDotNetWpfProjectTemplates60PackageVersion>$(MicrosoftWPFProjectTemplates60PackageVersion)</MicrosoftDotNetWpfProjectTemplates60PackageVersion>
@ -207,33 +182,6 @@
<MicrosoftDotNetCommonItemTemplates60PackageVersion>$(MicrosoftDotNetCommonItemTemplates60PackageVersion)</MicrosoftDotNetCommonItemTemplates60PackageVersion> <MicrosoftDotNetCommonItemTemplates60PackageVersion>$(MicrosoftDotNetCommonItemTemplates60PackageVersion)</MicrosoftDotNetCommonItemTemplates60PackageVersion>
<MicrosoftDotNetCommonProjectTemplates60PackageVersion>$(MicrosoftDotNetCommonItemTemplates60PackageVersion)</MicrosoftDotNetCommonProjectTemplates60PackageVersion> <MicrosoftDotNetCommonProjectTemplates60PackageVersion>$(MicrosoftDotNetCommonItemTemplates60PackageVersion)</MicrosoftDotNetCommonProjectTemplates60PackageVersion>
<AspNetCorePackageVersionFor60Templates>6.0.$(AspNetCoreTemplateFeature60)</AspNetCorePackageVersionFor60Templates> <AspNetCorePackageVersionFor60Templates>6.0.$(AspNetCoreTemplateFeature60)</AspNetCorePackageVersionFor60Templates>
<!-- 5.0 Template versions -->
<MicrosoftDotnetWinFormsProjectTemplates50PackageVersion>$(MicrosoftWinFormsProjectTemplates50PackageVersion)</MicrosoftDotnetWinFormsProjectTemplates50PackageVersion>
<MicrosoftDotNetWpfProjectTemplates50PackageVersion>$(MicrosoftWPFProjectTemplates50PackageVersion)</MicrosoftDotNetWpfProjectTemplates50PackageVersion>
<NUnit3Templates50PackageVersion>$(NUnit3DotNetNewTemplatePackageVersion)</NUnit3Templates50PackageVersion>
<MicrosoftDotNetCommonItemTemplates50PackageVersion>$(MicrosoftDotNetCommonItemTemplates50PackageVersion)</MicrosoftDotNetCommonItemTemplates50PackageVersion>
<MicrosoftDotNetCommonProjectTemplates50PackageVersion>$(MicrosoftDotNetCommonItemTemplates50PackageVersion)</MicrosoftDotNetCommonProjectTemplates50PackageVersion>
<AspNetCorePackageVersionFor50Templates>5.0.17</AspNetCorePackageVersionFor50Templates>
<!-- 3.1 Template versions -->
<MicrosoftDotnetWinFormsProjectTemplates31PackageVersion>4.8.1-servicing.19605.5</MicrosoftDotnetWinFormsProjectTemplates31PackageVersion>
<MicrosoftDotNetWpfProjectTemplates31PackageVersion>3.1.2-servicing.20066.4</MicrosoftDotNetWpfProjectTemplates31PackageVersion>
<NUnit3Templates31PackageVersion>1.7.2</NUnit3Templates31PackageVersion>
<MicrosoftDotNetCommonItemTemplates31PackageVersion>3.1.27</MicrosoftDotNetCommonItemTemplates31PackageVersion>
<MicrosoftDotNetCommonProjectTemplates31PackageVersion>$(MicrosoftDotNetCommonItemTemplates31PackageVersion)</MicrosoftDotNetCommonProjectTemplates31PackageVersion>
<AspNetCorePackageVersionFor31Templates>3.1.32</AspNetCorePackageVersionFor31Templates>
<MicrosoftAspNetCoreComponentsWebAssemblyTemplatesPackageVersion>3.2.1</MicrosoftAspNetCoreComponentsWebAssemblyTemplatesPackageVersion>
<!-- 3.0 Template versions -->
<MicrosoftDotnetWinFormsProjectTemplates30PackageVersion>4.8.0-rc2.19462.10</MicrosoftDotnetWinFormsProjectTemplates30PackageVersion>
<MicrosoftDotNetWpfProjectTemplates30PackageVersion>3.0.0</MicrosoftDotNetWpfProjectTemplates30PackageVersion>
<NUnit3Templates30PackageVersion>1.6.5</NUnit3Templates30PackageVersion>
<MicrosoftDotNetCommonItemTemplates30PackageVersion>2.0.0-preview8.19373.1</MicrosoftDotNetCommonItemTemplates30PackageVersion>
<MicrosoftDotNetCommonProjectTemplates30PackageVersion>$(MicrosoftDotNetCommonItemTemplates30PackageVersion)</MicrosoftDotNetCommonProjectTemplates30PackageVersion>
<AspNetCorePackageVersionFor30Templates>3.0.3</AspNetCorePackageVersionFor30Templates>
<!-- 2.1 Template versions -->
<NUnit3Templates21PackageVersion>1.5.3</NUnit3Templates21PackageVersion>
<MicrosoftDotNetCommonItemTemplates21PackageVersion>1.0.2-beta3</MicrosoftDotNetCommonItemTemplates21PackageVersion>
<MicrosoftDotNetCommonProjectTemplates21PackageVersion>$(MicrosoftDotNetCommonItemTemplates21PackageVersion)</MicrosoftDotNetCommonProjectTemplates21PackageVersion>
<AspNetCorePackageVersionFor21Templates>2.1.34</AspNetCorePackageVersionFor21Templates>
</PropertyGroup> </PropertyGroup>
<!-- infrastructure and test only dependencies --> <!-- infrastructure and test only dependencies -->
<PropertyGroup> <PropertyGroup>
@ -254,7 +202,7 @@
<XamarinMacOSWorkloadManifestVersion>14.0.8478</XamarinMacOSWorkloadManifestVersion> <XamarinMacOSWorkloadManifestVersion>14.0.8478</XamarinMacOSWorkloadManifestVersion>
<XamarinTvOSWorkloadManifestVersion>17.0.8478</XamarinTvOSWorkloadManifestVersion> <XamarinTvOSWorkloadManifestVersion>17.0.8478</XamarinTvOSWorkloadManifestVersion>
<!-- Workloads from dotnet/emsdk --> <!-- Workloads from dotnet/emsdk -->
<MicrosoftNETWorkloadEmscriptenCurrentManifest80100PackageVersion>8.0.2</MicrosoftNETWorkloadEmscriptenCurrentManifest80100PackageVersion> <MicrosoftNETWorkloadEmscriptenCurrentManifest80100PackageVersion>8.0.5</MicrosoftNETWorkloadEmscriptenCurrentManifest80100PackageVersion>
<EmscriptenWorkloadManifestVersion>$(MicrosoftNETWorkloadEmscriptenCurrentManifest80100PackageVersion)</EmscriptenWorkloadManifestVersion> <EmscriptenWorkloadManifestVersion>$(MicrosoftNETWorkloadEmscriptenCurrentManifest80100PackageVersion)</EmscriptenWorkloadManifestVersion>
<!-- emsdk workload prerelease version band must match the emsdk feature band --> <!-- emsdk workload prerelease version band must match the emsdk feature band -->
<EmscriptenWorkloadFeatureBand>8.0.100$([System.Text.RegularExpressions.Regex]::Match($(EmscriptenWorkloadManifestVersion), `-rtm|-[A-z]*\.*\d*`))</EmscriptenWorkloadFeatureBand> <EmscriptenWorkloadFeatureBand>8.0.100$([System.Text.RegularExpressions.Regex]::Match($(EmscriptenWorkloadManifestVersion), `-rtm|-[A-z]*\.*\d*`))</EmscriptenWorkloadFeatureBand>

261
eng/build-pr.yml Normal file
View file

@ -0,0 +1,261 @@
parameters:
# Agent OS identifier and used as job name
- name: agentOs
type: string
# Job name
- name: jobName
type: string
# Container to run the build in, if any
- name: container
type: string
default: ''
# Job timeout
- name: timeoutInMinutes
type: number
default: 180
# Build configuration (Debug, Release)
- name: buildConfiguration
type: string
values:
- Debug
- Release
# Build architecture
- name: buildArchitecture
type: string
values:
- arm
- arm64
- x64
- x86
# Linux portable. If true, passes portable switch to build
- name: linuxPortable
type: boolean
default: false
# Runtime Identifier
- name: runtimeIdentifier
type: string
default: ''
# UI lang
- name: dotnetCLIUILanguage
type: string
default: ''
# Additional parameters
- name: additionalBuildParameters
type: string
default: ''
# Run tests
- name: runTests
type: boolean
default: true
# PGO instrumentation jobs
- name: pgoInstrument
type: boolean
default: false
- name: isBuiltFromVmr
displayName: True when build is running from dotnet/dotnet
type: boolean
default: false
jobs:
- template: common/templates/job/job.yml
parameters:
# Set up the name of the job.
${{ if parameters.pgoInstrument }}:
name: PGO_${{ parameters.agentOs }}_${{ parameters.jobName }}
${{ if not(parameters.pgoInstrument) }}:
name: ${{ parameters.agentOs }}_${{ parameters.jobName }}
# Set up the pool/machine info to be used based on the Agent OS
${{ if eq(parameters.agentOs, 'Windows_NT') }}:
enableMicrobuild: true
pool:
${{ if eq(variables['System.TeamProject'], 'public') }}:
name: $(DncEngPublicBuildPool)
demands: ImageOverride -equals windows.vs2019.amd64.open
${{ if eq(variables['System.TeamProject'], 'internal') }}:
name: $(DncEngInternalBuildPool)
demands: ImageOverride -equals windows.vs2019.amd64
${{ if eq(parameters.agentOs, 'Linux') }}:
pool:
${{ if eq(variables['System.TeamProject'], 'public') }}:
name: $(DncEngPublicBuildPool)
demands: ImageOverride -equals Build.Ubuntu.1804.Amd64.Open
${{ if eq(variables['System.TeamProject'], 'internal') }}:
name: $(DncEngInternalBuildPool)
demands: ImageOverride -equals Build.Ubuntu.1804.Amd64
container: ${{ parameters.container }}
${{ if eq(parameters.agentOs, 'Darwin') }}:
pool:
vmImage: 'macOS-latest'
timeoutInMinutes: ${{ parameters.timeoutInMinutes }}
${{ if parameters.isBuiltFromVmr }}:
enableSbom: false
${{ else }}:
enablePublishBuildAssets: true
enablePublishUsingPipelines: true
enableTelemetry: true
helixRepo: dotnet/installer
workspace:
clean: all
variables:
# Test variables
- ${{ if eq(parameters.agentOs, 'Windows_NT') }}:
- _PackArg: '-pack'
- ${{ if parameters.runTests }}:
- _TestArg: '-test'
- ${{ else }}:
- _TestArg: ''
- ${{ if ne(parameters.agentOs, 'Windows_NT') }}:
- _PackArg: '--pack'
- ${{ if parameters.runTests }}:
- _TestArg: '--test'
- ${{ else }}:
- _TestArg: ''
- ${{ if parameters.pgoInstrument }}:
- _PgoInstrument: '/p:PgoInstrument=true'
- _PackArg: ''
- ${{ else }}:
- _PgoInstrument: ''
- ${{ if parameters.linuxPortable }}:
- _LinuxPortable: '--linux-portable'
- ${{ else }}:
- _LinuxPortable: ''
- ${{ if ne(parameters.runtimeIdentifier, '') }}:
- _RuntimeIdentifier: '--runtime-id ${{ parameters.runtimeIdentifier }}'
- ${{ else }}:
- _RuntimeIdentifier: ''
- _AgentOSName: ${{ parameters.agentOs }}
- _TeamName: Roslyn-Project-System
- _SignType: test
- _BuildArgs: '/p:DotNetSignType=$(_SignType) $(_PgoInstrument)'
- ${{ if parameters.isBuiltFromVmr }}:
- installerRoot: '$(Build.SourcesDirectory)/src/installer'
- _SignType: test
- _PushToVSFeed: false
- _BuildArgs: /p:OfficialBuildId=$(BUILD.BUILDNUMBER)
/p:TeamName=$(_TeamName)
/p:DotNetPublishUsingPipelines=true
/p:PublishToSymbolServer=false
$(_PgoInstrument)
- ${{ else }}:
- installerRoot: '$(Build.SourcesDirectory)'
- ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}:
- group: DotNet-HelixApi-Access
- _PushToVSFeed: true
- _SignType: real
- _BuildArgs: /p:OfficialBuildId=$(BUILD.BUILDNUMBER)
/p:DotNetSignType=$(_SignType)
/p:TeamName=$(_TeamName)
/p:DotNetPublishUsingPipelines=$(_PublishUsingPipelines)
$(_PgoInstrument)
- template: /eng/common/templates/variables/pool-providers.yml
steps:
- checkout: self
clean: true
- ${{ if eq(parameters.agentOs, 'Windows_NT') }}:
- ${{ if and(not(parameters.isBuiltFromVmr), ne(variables['System.TeamProject'], 'public')) }}:
- task: PowerShell@2
displayName: Setup Private Feeds Credentials
inputs:
filePath: $(installerRoot)/eng/common/SetupNugetSources.ps1
arguments: -ConfigFile $(installerRoot)/NuGet.config -Password $Env:Token
env:
Token: $(dn-bot-dnceng-artifact-feeds-rw)
- script: $(installerRoot)/build.cmd
$(_TestArg) $(_PackArg)
-publish -ci -sign
-Configuration ${{ parameters.buildConfiguration }}
-Architecture ${{ parameters.buildArchitecture }}
$(_BuildArgs)
${{ parameters.additionalBuildParameters }}
$(_InternalRuntimeDownloadArgs)
displayName: Build
env:
DOTNET_CLI_UI_LANGUAGE: ${{ parameters.dotnetCLIUILanguage }}
- ${{ if ne(parameters.agentOs, 'Windows_NT') }}:
- ${{ if and(not(parameters.isBuiltFromVmr), ne(variables['System.TeamProject'], 'public')) }}:
- task: Bash@3
displayName: Setup Private Feeds Credentials
inputs:
filePath: $(installerRoot)/eng/common/SetupNugetSources.sh
arguments: $(installerRoot)/NuGet.config $Token
env:
Token: $(dn-bot-dnceng-artifact-feeds-rw)
- ${{ if eq(parameters.agentOs, 'Linux') }}:
- script: $(installerRoot)/build.sh
$(_TestArg) $(_PackArg)
--publish --ci
--noprettyprint
--configuration ${{ parameters.buildConfiguration }}
--architecture ${{ parameters.buildArchitecture }}
$(_LinuxPortable)
$(_RuntimeIdentifier)
$(_BuildArgs)
${{ parameters.additionalBuildParameters }}
$(_InternalRuntimeDownloadArgs)
displayName: Build
- ${{ if or(eq(parameters.agentOs, 'Darwin'), eq(parameters.agentOs, 'FreeBSD')) }}:
- script: $(installerRoot)/build.sh
$(_TestArg)
--pack --publish --ci
--noprettyprint
--configuration ${{ parameters.buildConfiguration }}
--architecture ${{ parameters.buildArchitecture }}
$(_RuntimeIdentifier)
$(_BuildArgs)
${{ parameters.additionalBuildParameters }}
$(_InternalRuntimeDownloadArgs)
displayName: Build
- task: PublishTestResults@2
displayName: Publish Test Results
inputs:
testRunner: XUnit
testResultsFiles: 'artifacts/TestResults/${{ parameters.buildConfiguration }}/*.xml'
testRunTitle: '$(_AgentOSName)_$(Agent.JobName)'
platform: '$(BuildPlatform)'
configuration: '${{ parameters.buildConfiguration }}'
condition: ne(variables['_TestArg'], '')
- task: CopyFiles@2
displayName: Gather Logs
inputs:
SourceFolder: '$(installerRoot)/artifacts'
Contents: |
log/${{ parameters.buildConfiguration }}/**/*
TestResults/${{ parameters.buildConfiguration }}/**/*
TargetFolder: '$(Build.ArtifactStagingDirectory)'
continueOnError: true
condition: always()
- task: PublishBuildArtifacts@1
displayName: Publish Logs to VSTS
inputs:
PathtoPublish: '$(Build.ArtifactStagingDirectory)'
ArtifactName: '$(_AgentOSName)_$(Agent.JobName)_$(Build.BuildNumber)'
publishLocation: Container
continueOnError: true
condition: always()

View file

@ -1,9 +1,9 @@
parameters: parameters:
# Agent OS identifier and used as job name # Agent OS identifier and used as job name
- name: agentOs - name: agentOs
type: string type: string
# Job name # Job name
- name: jobName - name: jobName
type: string type: string
@ -12,7 +12,7 @@ parameters:
type: string type: string
default: '' default: ''
# Job timeout # Job timeout
- name: timeoutInMinutes - name: timeoutInMinutes
type: number type: number
default: 180 default: 180
@ -69,36 +69,42 @@ parameters:
default: false default: false
jobs: jobs:
- template: common/templates/job/job.yml - template: common/templates-official/job/job.yml
parameters: parameters:
# Set up the name of the job. # Set up the name of the job.
${{ if parameters.pgoInstrument }}: ${{ if parameters.pgoInstrument }}:
name: PGO_${{ parameters.agentOs }}_${{ parameters.jobName }} name: PGO_${{ parameters.agentOs }}_${{ parameters.jobName }}
${{ if not(parameters.pgoInstrument) }}: ${{ if not(parameters.pgoInstrument) }}:
name: ${{ parameters.agentOs }}_${{ parameters.jobName }} name: ${{ parameters.agentOs }}_${{ parameters.jobName }}
## Set up the pool/machine info to be used based on the Agent OS # Set up the pool/machine info to be used based on the Agent OS
${{ if eq(parameters.agentOs, 'Windows_NT') }}: ${{ if eq(parameters.agentOs, 'Windows_NT') }}:
enableMicrobuild: true enableMicrobuild: true
pool: pool:
${{ if eq(variables['System.TeamProject'], 'public') }}: ${{ if eq(variables['System.TeamProject'], 'public') }}:
name: $(DncEngPublicBuildPool) name: $(DncEngPublicBuildPool)
demands: ImageOverride -equals windows.vs2019.amd64.open image: 1es-windows-2019-open
os: windows
${{ if eq(variables['System.TeamProject'], 'internal') }}: ${{ if eq(variables['System.TeamProject'], 'internal') }}:
name: $(DncEngInternalBuildPool) name: $(DncEngInternalBuildPool)
demands: ImageOverride -equals windows.vs2019.amd64 image: 1es-windows-2019
os: windows
${{ if eq(parameters.agentOs, 'Linux') }}: ${{ if eq(parameters.agentOs, 'Linux') }}:
pool: pool:
${{ if eq(variables['System.TeamProject'], 'public') }}: ${{ if eq(variables['System.TeamProject'], 'public') }}:
name: $(DncEngPublicBuildPool) name: $(DncEngPublicBuildPool)
demands: ImageOverride -equals Build.Ubuntu.1804.Amd64.Open image: 1es-ubuntu-2004-open
os: linux
${{ if eq(variables['System.TeamProject'], 'internal') }}: ${{ if eq(variables['System.TeamProject'], 'internal') }}:
name: $(DncEngInternalBuildPool) name: $(DncEngInternalBuildPool)
demands: ImageOverride -equals Build.Ubuntu.1804.Amd64 image: 1es-ubuntu-2004
os: linux
container: ${{ parameters.container }} container: ${{ parameters.container }}
${{ if eq(parameters.agentOs, 'Darwin') }}: ${{ if eq(parameters.agentOs, 'Darwin') }}:
pool: pool:
vmImage: 'macOS-latest' name: Azure Pipelines
image: macOS-latest
os: macOS
timeoutInMinutes: ${{ parameters.timeoutInMinutes }} timeoutInMinutes: ${{ parameters.timeoutInMinutes }}
${{ if parameters.isBuiltFromVmr }}: ${{ if parameters.isBuiltFromVmr }}:
@ -111,8 +117,8 @@ jobs:
workspace: workspace:
clean: all clean: all
# Test parameters
variables: variables:
# Test variables
- ${{ if eq(parameters.agentOs, 'Windows_NT') }}: - ${{ if eq(parameters.agentOs, 'Windows_NT') }}:
- _PackArg: '-pack' - _PackArg: '-pack'
- ${{ if parameters.runTests }}: - ${{ if parameters.runTests }}:
@ -168,7 +174,7 @@ jobs:
/p:DotNetPublishUsingPipelines=$(_PublishUsingPipelines) /p:DotNetPublishUsingPipelines=$(_PublishUsingPipelines)
$(_PgoInstrument) $(_PgoInstrument)
- template: /eng/common/templates/variables/pool-providers.yml - template: /eng/common/templates-official/variables/pool-providers.yml
steps: steps:
- checkout: self - checkout: self
@ -245,13 +251,13 @@ jobs:
inputs: inputs:
SourceFolder: '$(installerRoot)/artifacts' SourceFolder: '$(installerRoot)/artifacts'
Contents: | Contents: |
log/${{ parameters.buildConfiguration }}/**/* log/${{ parameters.buildConfiguration }}/**/*
TestResults/${{ parameters.buildConfiguration }}/**/* TestResults/${{ parameters.buildConfiguration }}/**/*
TargetFolder: '$(Build.ArtifactStagingDirectory)' TargetFolder: '$(Build.ArtifactStagingDirectory)'
continueOnError: true continueOnError: true
condition: always() condition: always()
- task: PublishBuildArtifacts@1 - task: 1ES.PublishBuildArtifacts@1
displayName: Publish Logs to VSTS displayName: Publish Logs to VSTS
inputs: inputs:
PathtoPublish: '$(Build.ArtifactStagingDirectory)' PathtoPublish: '$(Build.ArtifactStagingDirectory)'

View file

@ -35,7 +35,7 @@ Set-StrictMode -Version 2.0
. $PSScriptRoot\tools.ps1 . $PSScriptRoot\tools.ps1
# Add source entry to PackageSources # Add source entry to PackageSources
function AddPackageSource($sources, $SourceName, $SourceEndPoint, $creds, $Username, $Password) { function AddPackageSource($sources, $SourceName, $SourceEndPoint, $creds, $Username, $pwd) {
$packageSource = $sources.SelectSingleNode("add[@key='$SourceName']") $packageSource = $sources.SelectSingleNode("add[@key='$SourceName']")
if ($packageSource -eq $null) if ($packageSource -eq $null)
@ -48,12 +48,11 @@ function AddPackageSource($sources, $SourceName, $SourceEndPoint, $creds, $Usern
else { else {
Write-Host "Package source $SourceName already present." Write-Host "Package source $SourceName already present."
} }
AddCredential -Creds $creds -Source $SourceName -Username $Username -pwd $pwd
AddCredential -Creds $creds -Source $SourceName -Username $Username -Password $Password
} }
# Add a credential node for the specified source # Add a credential node for the specified source
function AddCredential($creds, $source, $username, $password) { function AddCredential($creds, $source, $username, $pwd) {
# Looks for credential configuration for the given SourceName. Create it if none is found. # Looks for credential configuration for the given SourceName. Create it if none is found.
$sourceElement = $creds.SelectSingleNode($Source) $sourceElement = $creds.SelectSingleNode($Source)
if ($sourceElement -eq $null) if ($sourceElement -eq $null)
@ -82,17 +81,18 @@ function AddCredential($creds, $source, $username, $password) {
$passwordElement.SetAttribute("key", "ClearTextPassword") $passwordElement.SetAttribute("key", "ClearTextPassword")
$sourceElement.AppendChild($passwordElement) | Out-Null $sourceElement.AppendChild($passwordElement) | Out-Null
} }
$passwordElement.SetAttribute("value", $Password)
$passwordElement.SetAttribute("value", $pwd)
} }
function InsertMaestroPrivateFeedCredentials($Sources, $Creds, $Username, $Password) { function InsertMaestroPrivateFeedCredentials($Sources, $Creds, $Username, $pwd) {
$maestroPrivateSources = $Sources.SelectNodes("add[contains(@key,'darc-int')]") $maestroPrivateSources = $Sources.SelectNodes("add[contains(@key,'darc-int')]")
Write-Host "Inserting credentials for $($maestroPrivateSources.Count) Maestro's private feeds." Write-Host "Inserting credentials for $($maestroPrivateSources.Count) Maestro's private feeds."
ForEach ($PackageSource in $maestroPrivateSources) { ForEach ($PackageSource in $maestroPrivateSources) {
Write-Host "`tInserting credential for Maestro's feed:" $PackageSource.Key Write-Host "`tInserting credential for Maestro's feed:" $PackageSource.Key
AddCredential -Creds $creds -Source $PackageSource.Key -Username $Username -Password $Password AddCredential -Creds $creds -Source $PackageSource.Key -Username $Username -pwd $pwd
} }
} }
@ -144,13 +144,13 @@ if ($disabledSources -ne $null) {
$userName = "dn-bot" $userName = "dn-bot"
# Insert credential nodes for Maestro's private feeds # Insert credential nodes for Maestro's private feeds
InsertMaestroPrivateFeedCredentials -Sources $sources -Creds $creds -Username $userName -Password $Password InsertMaestroPrivateFeedCredentials -Sources $sources -Creds $creds -Username $userName -pwd $Password
# 3.1 uses a different feed url format so it's handled differently here # 3.1 uses a different feed url format so it's handled differently here
$dotnet31Source = $sources.SelectSingleNode("add[@key='dotnet3.1']") $dotnet31Source = $sources.SelectSingleNode("add[@key='dotnet3.1']")
if ($dotnet31Source -ne $null) { if ($dotnet31Source -ne $null) {
AddPackageSource -Sources $sources -SourceName "dotnet3.1-internal" -SourceEndPoint "https://pkgs.dev.azure.com/dnceng/_packaging/dotnet3.1-internal/nuget/v2" -Creds $creds -Username $userName -Password $Password AddPackageSource -Sources $sources -SourceName "dotnet3.1-internal" -SourceEndPoint "https://pkgs.dev.azure.com/dnceng/_packaging/dotnet3.1-internal/nuget/v2" -Creds $creds -Username $userName -pwd $Password
AddPackageSource -Sources $sources -SourceName "dotnet3.1-internal-transport" -SourceEndPoint "https://pkgs.dev.azure.com/dnceng/_packaging/dotnet3.1-internal-transport/nuget/v2" -Creds $creds -Username $userName -Password $Password AddPackageSource -Sources $sources -SourceName "dotnet3.1-internal-transport" -SourceEndPoint "https://pkgs.dev.azure.com/dnceng/_packaging/dotnet3.1-internal-transport/nuget/v2" -Creds $creds -Username $userName -pwd $Password
} }
$dotnetVersions = @('5','6','7','8') $dotnetVersions = @('5','6','7','8')
@ -159,9 +159,9 @@ foreach ($dotnetVersion in $dotnetVersions) {
$feedPrefix = "dotnet" + $dotnetVersion; $feedPrefix = "dotnet" + $dotnetVersion;
$dotnetSource = $sources.SelectSingleNode("add[@key='$feedPrefix']") $dotnetSource = $sources.SelectSingleNode("add[@key='$feedPrefix']")
if ($dotnetSource -ne $null) { if ($dotnetSource -ne $null) {
AddPackageSource -Sources $sources -SourceName "$feedPrefix-internal" -SourceEndPoint "https://pkgs.dev.azure.com/dnceng/internal/_packaging/$feedPrefix-internal/nuget/v2" -Creds $creds -Username $userName -Password $Password AddPackageSource -Sources $sources -SourceName "$feedPrefix-internal" -SourceEndPoint "https://pkgs.dev.azure.com/dnceng/internal/_packaging/$feedPrefix-internal/nuget/v2" -Creds $creds -Username $userName -pwd $Password
AddPackageSource -Sources $sources -SourceName "$feedPrefix-internal-transport" -SourceEndPoint "https://pkgs.dev.azure.com/dnceng/internal/_packaging/$feedPrefix-internal-transport/nuget/v2" -Creds $creds -Username $userName -Password $Password AddPackageSource -Sources $sources -SourceName "$feedPrefix-internal-transport" -SourceEndPoint "https://pkgs.dev.azure.com/dnceng/internal/_packaging/$feedPrefix-internal-transport/nuget/v2" -Creds $creds -Username $userName -pwd $Password
} }
} }
$doc.Save($filename) $doc.Save($filename)

View file

@ -63,7 +63,7 @@ if [ -z "$CLR_CC" ]; then
# Set default versions # Set default versions
if [ -z "$majorVersion" ]; then if [ -z "$majorVersion" ]; then
# note: gcc (all versions) and clang versions higher than 6 do not have minor version in file name, if it is zero. # note: gcc (all versions) and clang versions higher than 6 do not have minor version in file name, if it is zero.
if [ "$compiler" = "clang" ]; then versions="17 16 15 14 13 12 11 10 9 8 7 6.0 5.0 4.0 3.9 3.8 3.7 3.6 3.5" if [ "$compiler" = "clang" ]; then versions="18 17 16 15 14 13 12 11 10 9 8 7 6.0 5.0 4.0 3.9 3.8 3.7 3.6 3.5"
elif [ "$compiler" = "gcc" ]; then versions="13 12 11 10 9 8 7 6 5 4.9"; fi elif [ "$compiler" = "gcc" ]; then versions="13 12 11 10 9 8 7 6 5 4.9"; fi
for version in $versions; do for version in $versions; do

View file

@ -0,0 +1,264 @@
# Internal resources (telemetry, microbuild) can only be accessed from non-public projects,
# and some (Microbuild) should only be applied to non-PR cases for internal builds.
parameters:
# Job schema parameters - https://docs.microsoft.com/en-us/azure/devops/pipelines/yaml-schema?view=vsts&tabs=schema#job
cancelTimeoutInMinutes: ''
condition: ''
container: ''
continueOnError: false
dependsOn: ''
displayName: ''
pool: ''
steps: []
strategy: ''
timeoutInMinutes: ''
variables: []
workspace: ''
templateContext: ''
# Job base template specific parameters
# See schema documentation - https://github.com/dotnet/arcade/blob/master/Documentation/AzureDevOps/TemplateSchema.md
artifacts: ''
enableMicrobuild: false
enablePublishBuildArtifacts: false
enablePublishBuildAssets: false
enablePublishTestResults: false
enablePublishUsingPipelines: false
enableBuildRetry: false
disableComponentGovernance: ''
componentGovernanceIgnoreDirectories: ''
mergeTestResults: false
testRunTitle: ''
testResultsFormat: ''
name: ''
preSteps: []
runAsPublic: false
# Sbom related params
enableSbom: true
PackageVersion: 7.0.0
BuildDropPath: '$(Build.SourcesDirectory)/artifacts'
jobs:
- job: ${{ parameters.name }}
${{ if ne(parameters.cancelTimeoutInMinutes, '') }}:
cancelTimeoutInMinutes: ${{ parameters.cancelTimeoutInMinutes }}
${{ if ne(parameters.condition, '') }}:
condition: ${{ parameters.condition }}
${{ if ne(parameters.container, '') }}:
container: ${{ parameters.container }}
${{ if ne(parameters.continueOnError, '') }}:
continueOnError: ${{ parameters.continueOnError }}
${{ if ne(parameters.dependsOn, '') }}:
dependsOn: ${{ parameters.dependsOn }}
${{ if ne(parameters.displayName, '') }}:
displayName: ${{ parameters.displayName }}
${{ if ne(parameters.pool, '') }}:
pool: ${{ parameters.pool }}
${{ if ne(parameters.strategy, '') }}:
strategy: ${{ parameters.strategy }}
${{ if ne(parameters.timeoutInMinutes, '') }}:
timeoutInMinutes: ${{ parameters.timeoutInMinutes }}
${{ if ne(parameters.templateContext, '') }}:
templateContext: ${{ parameters.templateContext }}
variables:
- ${{ if ne(parameters.enableTelemetry, 'false') }}:
- name: DOTNET_CLI_TELEMETRY_PROFILE
value: '$(Build.Repository.Uri)'
- ${{ if eq(parameters.enableRichCodeNavigation, 'true') }}:
- name: EnableRichCodeNavigation
value: 'true'
# Retry signature validation up to three times, waiting 2 seconds between attempts.
# See https://learn.microsoft.com/en-us/nuget/reference/errors-and-warnings/nu3028#retry-untrusted-root-failures
- name: NUGET_EXPERIMENTAL_CHAIN_BUILD_RETRY_POLICY
value: 3,2000
- ${{ each variable in parameters.variables }}:
# handle name-value variable syntax
# example:
# - name: [key]
# value: [value]
- ${{ if ne(variable.name, '') }}:
- name: ${{ variable.name }}
value: ${{ variable.value }}
# handle variable groups
- ${{ if ne(variable.group, '') }}:
- group: ${{ variable.group }}
# handle template variable syntax
# example:
# - template: path/to/template.yml
# parameters:
# [key]: [value]
- ${{ if ne(variable.template, '') }}:
- template: ${{ variable.template }}
${{ if ne(variable.parameters, '') }}:
parameters: ${{ variable.parameters }}
# handle key-value variable syntax.
# example:
# - [key]: [value]
- ${{ if and(eq(variable.name, ''), eq(variable.group, ''), eq(variable.template, '')) }}:
- ${{ each pair in variable }}:
- name: ${{ pair.key }}
value: ${{ pair.value }}
# DotNet-HelixApi-Access provides 'HelixApiAccessToken' for internal builds
- ${{ if and(eq(parameters.enableTelemetry, 'true'), eq(parameters.runAsPublic, 'false'), ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}:
- group: DotNet-HelixApi-Access
${{ if ne(parameters.workspace, '') }}:
workspace: ${{ parameters.workspace }}
steps:
- ${{ if ne(parameters.preSteps, '') }}:
- ${{ each preStep in parameters.preSteps }}:
- ${{ preStep }}
- ${{ if and(eq(parameters.runAsPublic, 'false'), ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}:
- ${{ if eq(parameters.enableMicrobuild, 'true') }}:
- task: MicroBuildSigningPlugin@4
displayName: Install MicroBuild plugin
inputs:
signType: $(_SignType)
zipSources: false
feedSource: https://dnceng.pkgs.visualstudio.com/_packaging/MicroBuildToolset/nuget/v3/index.json
env:
TeamName: $(_TeamName)
MicroBuildOutputFolderOverride: '$(Agent.TempDirectory)'
continueOnError: ${{ parameters.continueOnError }}
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@1
- ${{ if and(ne(parameters.artifacts.download, 'false'), ne(parameters.artifacts.download, '')) }}:
- task: DownloadPipelineArtifact@2
inputs:
buildType: current
artifactName: ${{ coalesce(parameters.artifacts.download.name, 'Artifacts_$(Agent.OS)_$(_BuildConfig)') }}
targetPath: ${{ coalesce(parameters.artifacts.download.path, 'artifacts') }}
itemPattern: ${{ coalesce(parameters.artifacts.download.pattern, '**') }}
- ${{ each step in parameters.steps }}:
- ${{ step }}
- ${{ if eq(parameters.enableRichCodeNavigation, true) }}:
- task: RichCodeNavIndexer@0
displayName: RichCodeNav Upload
inputs:
languages: ${{ coalesce(parameters.richCodeNavigationLanguage, 'csharp') }}
environment: ${{ coalesce(parameters.richCodeNavigationEnvironment, 'production') }}
richNavLogOutputDirectory: $(Build.SourcesDirectory)/artifacts/bin
uploadRichNavArtifacts: ${{ coalesce(parameters.richCodeNavigationUploadArtifacts, false) }}
continueOnError: true
- template: /eng/common/templates-official/steps/component-governance.yml
parameters:
${{ if eq(parameters.disableComponentGovernance, '') }}:
${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest'), eq(parameters.runAsPublic, 'false'), or(startsWith(variables['Build.SourceBranch'], 'refs/heads/release/'), startsWith(variables['Build.SourceBranch'], 'refs/heads/dotnet/'), startsWith(variables['Build.SourceBranch'], 'refs/heads/microsoft/'), eq(variables['Build.SourceBranch'], 'refs/heads/main'))) }}:
disableComponentGovernance: false
${{ else }}:
disableComponentGovernance: true
${{ else }}:
disableComponentGovernance: ${{ parameters.disableComponentGovernance }}
componentGovernanceIgnoreDirectories: ${{ parameters.componentGovernanceIgnoreDirectories }}
- ${{ if eq(parameters.enableMicrobuild, 'true') }}:
- ${{ if and(eq(parameters.runAsPublic, 'false'), ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}:
- task: MicroBuildCleanup@1
displayName: Execute Microbuild cleanup tasks
condition: and(always(), in(variables['_SignType'], 'real', 'test'), eq(variables['Agent.Os'], 'Windows_NT'))
continueOnError: ${{ parameters.continueOnError }}
env:
TeamName: $(_TeamName)
- ${{ if ne(parameters.artifacts.publish, '') }}:
- ${{ if and(ne(parameters.artifacts.publish.artifacts, 'false'), ne(parameters.artifacts.publish.artifacts, '')) }}:
- task: CopyFiles@2
displayName: Gather binaries for publish to artifacts
inputs:
SourceFolder: 'artifacts/bin'
Contents: '**'
TargetFolder: '$(Build.ArtifactStagingDirectory)/artifacts/bin'
- task: CopyFiles@2
displayName: Gather packages for publish to artifacts
inputs:
SourceFolder: 'artifacts/packages'
Contents: '**'
TargetFolder: '$(Build.ArtifactStagingDirectory)/artifacts/packages'
- task: 1ES.PublishBuildArtifacts@1
displayName: Publish pipeline artifacts
inputs:
PathtoPublish: '$(Build.ArtifactStagingDirectory)/artifacts'
PublishLocation: Container
ArtifactName: ${{ coalesce(parameters.artifacts.publish.artifacts.name , 'Artifacts_$(Agent.Os)_$(_BuildConfig)') }}
continueOnError: true
condition: always()
- ${{ if and(ne(parameters.artifacts.publish.logs, 'false'), ne(parameters.artifacts.publish.logs, '')) }}:
- task: 1ES.PublishPipelineArtifact@1
inputs:
targetPath: 'artifacts/log'
artifactName: ${{ coalesce(parameters.artifacts.publish.logs.name, 'Logs_Build_$(Agent.Os)_$(_BuildConfig)') }}
displayName: 'Publish logs'
continueOnError: true
condition: always()
- ${{ if ne(parameters.enablePublishBuildArtifacts, 'false') }}:
- task: 1ES.PublishBuildArtifacts@1
displayName: Publish Logs
inputs:
PathtoPublish: '$(Build.SourcesDirectory)/artifacts/log/$(_BuildConfig)'
PublishLocation: Container
ArtifactName: ${{ coalesce(parameters.enablePublishBuildArtifacts.artifactName, '$(Agent.Os)_$(Agent.JobName)' ) }}
continueOnError: true
condition: always()
- ${{ if or(and(eq(parameters.enablePublishTestResults, 'true'), eq(parameters.testResultsFormat, '')), eq(parameters.testResultsFormat, 'xunit')) }}:
- task: PublishTestResults@2
displayName: Publish XUnit Test Results
inputs:
testResultsFormat: 'xUnit'
testResultsFiles: '*.xml'
searchFolder: '$(Build.SourcesDirectory)/artifacts/TestResults/$(_BuildConfig)'
testRunTitle: ${{ coalesce(parameters.testRunTitle, parameters.name, '$(System.JobName)') }}-xunit
mergeTestResults: ${{ parameters.mergeTestResults }}
continueOnError: true
condition: always()
- ${{ if or(and(eq(parameters.enablePublishTestResults, 'true'), eq(parameters.testResultsFormat, '')), eq(parameters.testResultsFormat, 'vstest')) }}:
- task: PublishTestResults@2
displayName: Publish TRX Test Results
inputs:
testResultsFormat: 'VSTest'
testResultsFiles: '*.trx'
searchFolder: '$(Build.SourcesDirectory)/artifacts/TestResults/$(_BuildConfig)'
testRunTitle: ${{ coalesce(parameters.testRunTitle, parameters.name, '$(System.JobName)') }}-trx
mergeTestResults: ${{ parameters.mergeTestResults }}
continueOnError: true
condition: always()
- ${{ if and(eq(parameters.runAsPublic, 'false'), ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest'), eq(parameters.enableSbom, 'true')) }}:
- template: /eng/common/templates-official/steps/generate-sbom.yml
parameters:
PackageVersion: ${{ parameters.packageVersion}}
BuildDropPath: ${{ parameters.buildDropPath }}
IgnoreDirectories: ${{ parameters.componentGovernanceIgnoreDirectories }}
- ${{ if eq(parameters.enableBuildRetry, 'true') }}:
- task: 1ES.PublishPipelineArtifact@1
inputs:
targetPath: '$(Build.SourcesDirectory)\eng\common\BuildConfiguration'
artifactName: 'BuildConfiguration'
displayName: 'Publish build retry configuration'
continueOnError: true

View file

@ -0,0 +1,112 @@
parameters:
# Optional: dependencies of the job
dependsOn: ''
# Optional: A defined YAML pool - https://docs.microsoft.com/en-us/azure/devops/pipelines/yaml-schema?view=vsts&tabs=schema#pool
pool: ''
CeapexPat: $(dn-bot-ceapex-package-r) # PAT for the loc AzDO instance https://dev.azure.com/ceapex
GithubPat: $(BotAccount-dotnet-bot-repo-PAT)
SourcesDirectory: $(Build.SourcesDirectory)
CreatePr: true
AutoCompletePr: false
ReusePr: true
UseLfLineEndings: true
UseCheckedInLocProjectJson: false
SkipLocProjectJsonGeneration: false
LanguageSet: VS_Main_Languages
LclSource: lclFilesInRepo
LclPackageId: ''
RepoType: gitHub
GitHubOrg: dotnet
MirrorRepo: ''
MirrorBranch: main
condition: ''
JobNameSuffix: ''
jobs:
- job: OneLocBuild${{ parameters.JobNameSuffix }}
dependsOn: ${{ parameters.dependsOn }}
displayName: OneLocBuild${{ parameters.JobNameSuffix }}
variables:
- group: OneLocBuildVariables # Contains the CeapexPat and GithubPat
- name: _GenerateLocProjectArguments
value: -SourcesDirectory ${{ parameters.SourcesDirectory }}
-LanguageSet "${{ parameters.LanguageSet }}"
-CreateNeutralXlfs
- ${{ if eq(parameters.UseCheckedInLocProjectJson, 'true') }}:
- name: _GenerateLocProjectArguments
value: ${{ variables._GenerateLocProjectArguments }} -UseCheckedInLocProjectJson
- template: /eng/common/templates-official/variables/pool-providers.yml
${{ if ne(parameters.pool, '') }}:
pool: ${{ parameters.pool }}
${{ if eq(parameters.pool, '') }}:
pool:
# We don't use the collection uri here because it might vary (.visualstudio.com vs. dev.azure.com)
${{ if eq(variables['System.TeamProject'], 'DevDiv') }}:
name: AzurePipelines-EO
image: 1ESPT-Windows2022
demands: Cmd
os: windows
# If it's not devdiv, it's dnceng
${{ if ne(variables['System.TeamProject'], 'DevDiv') }}:
name: $(DncEngInternalBuildPool)
image: 1es-windows-2022
os: windows
steps:
- ${{ if ne(parameters.SkipLocProjectJsonGeneration, 'true') }}:
- task: Powershell@2
inputs:
filePath: $(Build.SourcesDirectory)/eng/common/generate-locproject.ps1
arguments: $(_GenerateLocProjectArguments)
displayName: Generate LocProject.json
condition: ${{ parameters.condition }}
- task: OneLocBuild@2
displayName: OneLocBuild
env:
SYSTEM_ACCESSTOKEN: $(System.AccessToken)
inputs:
locProj: eng/Localize/LocProject.json
outDir: $(Build.ArtifactStagingDirectory)
lclSource: ${{ parameters.LclSource }}
lclPackageId: ${{ parameters.LclPackageId }}
isCreatePrSelected: ${{ parameters.CreatePr }}
isAutoCompletePrSelected: ${{ parameters.AutoCompletePr }}
${{ if eq(parameters.CreatePr, true) }}:
isUseLfLineEndingsSelected: ${{ parameters.UseLfLineEndings }}
${{ if eq(parameters.RepoType, 'gitHub') }}:
isShouldReusePrSelected: ${{ parameters.ReusePr }}
packageSourceAuth: patAuth
patVariable: ${{ parameters.CeapexPat }}
${{ if eq(parameters.RepoType, 'gitHub') }}:
repoType: ${{ parameters.RepoType }}
gitHubPatVariable: "${{ parameters.GithubPat }}"
${{ if ne(parameters.MirrorRepo, '') }}:
isMirrorRepoSelected: true
gitHubOrganization: ${{ parameters.GitHubOrg }}
mirrorRepo: ${{ parameters.MirrorRepo }}
mirrorBranch: ${{ parameters.MirrorBranch }}
condition: ${{ parameters.condition }}
- task: 1ES.PublishBuildArtifacts@1
displayName: Publish Localization Files
inputs:
PathtoPublish: '$(Build.ArtifactStagingDirectory)/loc'
PublishLocation: Container
ArtifactName: Loc
condition: ${{ parameters.condition }}
- task: 1ES.PublishBuildArtifacts@1
displayName: Publish LocProject.json
inputs:
PathtoPublish: '$(Build.SourcesDirectory)/eng/Localize/'
PublishLocation: Container
ArtifactName: Loc
condition: ${{ parameters.condition }}

View file

@ -0,0 +1,155 @@
parameters:
configuration: 'Debug'
# Optional: condition for the job to run
condition: ''
# Optional: 'true' if future jobs should run even if this job fails
continueOnError: false
# Optional: dependencies of the job
dependsOn: ''
# Optional: Include PublishBuildArtifacts task
enablePublishBuildArtifacts: false
# Optional: A defined YAML pool - https://docs.microsoft.com/en-us/azure/devops/pipelines/yaml-schema?view=vsts&tabs=schema#pool
pool: {}
# Optional: should run as a public build even in the internal project
# if 'true', the build won't run any of the internal only steps, even if it is running in non-public projects.
runAsPublic: false
# Optional: whether the build's artifacts will be published using release pipelines or direct feed publishing
publishUsingPipelines: false
# Optional: whether the build's artifacts will be published using release pipelines or direct feed publishing
publishAssetsImmediately: false
artifactsPublishingAdditionalParameters: ''
signingValidationAdditionalParameters: ''
jobs:
- job: Asset_Registry_Publish
dependsOn: ${{ parameters.dependsOn }}
timeoutInMinutes: 150
${{ if eq(parameters.publishAssetsImmediately, 'true') }}:
displayName: Publish Assets
${{ else }}:
displayName: Publish to Build Asset Registry
variables:
- template: /eng/common/templates-official/variables/pool-providers.yml
- ${{ if and(eq(parameters.runAsPublic, 'false'), ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}:
- group: Publish-Build-Assets
- group: AzureDevOps-Artifact-Feeds-Pats
- name: runCodesignValidationInjection
value: false
- ${{ if eq(parameters.publishAssetsImmediately, 'true') }}:
- template: /eng/common/templates-official/post-build/common-variables.yml
pool:
# We don't use the collection uri here because it might vary (.visualstudio.com vs. dev.azure.com)
${{ if eq(variables['System.TeamProject'], 'DevDiv') }}:
name: AzurePipelines-EO
image: 1ESPT-Windows2022
demands: Cmd
os: windows
# If it's not devdiv, it's dnceng
${{ if ne(variables['System.TeamProject'], 'DevDiv') }}:
name: NetCore1ESPool-Publishing-Internal
image: windows.vs2019.amd64
os: windows
steps:
- ${{ if and(eq(parameters.runAsPublic, 'false'), ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}:
- task: DownloadBuildArtifacts@0
displayName: Download artifact
inputs:
artifactName: AssetManifests
downloadPath: '$(Build.StagingDirectory)/Download'
checkDownloadedFiles: true
condition: ${{ parameters.condition }}
continueOnError: ${{ parameters.continueOnError }}
- task: NuGetAuthenticate@1
- task: PowerShell@2
displayName: Publish Build Assets
inputs:
filePath: eng\common\sdk-task.ps1
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:PublishUsingPipelines=${{ parameters.publishUsingPipelines }}
/p:OfficialBuildId=$(Build.BuildNumber)
condition: ${{ parameters.condition }}
continueOnError: ${{ parameters.continueOnError }}
- task: powershell@2
displayName: Create ReleaseConfigs Artifact
inputs:
targetType: inline
script: |
New-Item -Path "$(Build.StagingDirectory)/ReleaseConfigs" -ItemType Directory -Force
$filePath = "$(Build.StagingDirectory)/ReleaseConfigs/ReleaseConfigs.txt"
Add-Content -Path $filePath -Value $(BARBuildId)
Add-Content -Path $filePath -Value "$(DefaultChannels)"
Add-Content -Path $filePath -Value $(IsStableBuild)
- task: 1ES.PublishBuildArtifacts@1
displayName: Publish ReleaseConfigs Artifact
inputs:
PathtoPublish: '$(Build.StagingDirectory)/ReleaseConfigs'
PublishLocation: Container
ArtifactName: ReleaseConfigs
- task: powershell@2
displayName: Check if SymbolPublishingExclusionsFile.txt exists
inputs:
targetType: inline
script: |
$symbolExclusionfile = "$(Build.SourcesDirectory)/eng/SymbolPublishingExclusionsFile.txt"
if(Test-Path -Path $symbolExclusionfile)
{
Write-Host "SymbolExclusionFile exists"
Write-Host "##vso[task.setvariable variable=SymbolExclusionFile]true"
}
else{
Write-Host "Symbols Exclusion file does not exists"
Write-Host "##vso[task.setvariable variable=SymbolExclusionFile]false"
}
- task: 1ES.PublishBuildArtifacts@1
displayName: Publish SymbolPublishingExclusionsFile Artifact
condition: eq(variables['SymbolExclusionFile'], 'true')
inputs:
PathtoPublish: '$(Build.SourcesDirectory)/eng/SymbolPublishingExclusionsFile.txt'
PublishLocation: Container
ArtifactName: ReleaseConfigs
- ${{ if eq(parameters.publishAssetsImmediately, 'true') }}:
- template: /eng/common/templates-official/post-build/setup-maestro-vars.yml
parameters:
BARBuildId: ${{ parameters.BARBuildId }}
PromoteToChannelIds: ${{ parameters.PromoteToChannelIds }}
- task: PowerShell@2
displayName: Publish Using Darc
inputs:
filePath: $(Build.SourcesDirectory)/eng/common/post-build/publish-using-darc.ps1
arguments: -BuildId $(BARBuildId)
-PublishingInfraVersion 3
-AzdoToken '$(publishing-dnceng-devdiv-code-r-build-re)'
-MaestroToken '$(MaestroApiAccessToken)'
-WaitPublishingFinish true
-ArtifactsPublishingAdditionalParameters '${{ parameters.artifactsPublishingAdditionalParameters }}'
-SymbolPublishingAdditionalParameters '${{ parameters.symbolPublishingAdditionalParameters }}'
- ${{ if eq(parameters.enablePublishBuildArtifacts, 'true') }}:
- template: /eng/common/templates-official/steps/publish-logs.yml
parameters:
JobLabel: 'Publish_Artifacts_Logs'

View file

@ -0,0 +1,67 @@
parameters:
# This template adds arcade-powered source-build to CI. The template produces a server job with a
# default ID 'Source_Build_Complete' to put in a dependency list if necessary.
# Specifies the prefix for source-build jobs added to pipeline. Use this if disambiguation needed.
jobNamePrefix: 'Source_Build'
# Defines the platform on which to run the job. By default, a linux-x64 machine, suitable for
# managed-only repositories. This is an object with these properties:
#
# name: ''
# The name of the job. This is included in the job ID.
# targetRID: ''
# The name of the target RID to use, instead of the one auto-detected by Arcade.
# nonPortable: false
# Enables non-portable mode. This means a more specific RID (e.g. fedora.32-x64 rather than
# linux-x64), and compiling against distro-provided packages rather than portable ones.
# skipPublishValidation: false
# Disables publishing validation. By default, a check is performed to ensure no packages are
# published by source-build.
# container: ''
# A container to use. Runs in docker.
# pool: {}
# A pool to use. Runs directly on an agent.
# buildScript: ''
# Specifies the build script to invoke to perform the build in the repo. The default
# './build.sh' should work for typical Arcade repositories, but this is customizable for
# difficult situations.
# jobProperties: {}
# A list of job properties to inject at the top level, for potential extensibility beyond
# container and pool.
platform: {}
jobs:
- job: ${{ parameters.jobNamePrefix }}_${{ parameters.platform.name }}
displayName: Source-Build (${{ parameters.platform.name }})
${{ each property in parameters.platform.jobProperties }}:
${{ property.key }}: ${{ property.value }}
${{ if ne(parameters.platform.container, '') }}:
container: ${{ parameters.platform.container }}
${{ if eq(parameters.platform.pool, '') }}:
# The default VM host AzDO pool. This should be capable of running Docker containers: almost all
# source-build builds run in Docker, including the default managed platform.
# /eng/common/templates-official/variables/pool-providers.yml can't be used here (some customers declare variables already), so duplicate its logic
pool:
${{ if eq(variables['System.TeamProject'], 'public') }}:
name: $[replace(replace(eq(contains(coalesce(variables['System.PullRequest.TargetBranch'], variables['Build.SourceBranch'], 'refs/heads/main'), 'release'), 'true'), True, 'NetCore-Svc-Public' ), False, 'NetCore-Public')]
demands: ImageOverride -equals Build.Ubuntu.1804.Amd64.Open
${{ if eq(variables['System.TeamProject'], 'internal') }}:
name: $[replace(replace(eq(contains(coalesce(variables['System.PullRequest.TargetBranch'], variables['Build.SourceBranch'], 'refs/heads/main'), 'release'), 'true'), True, 'NetCore1ESPool-Svc-Internal'), False, 'NetCore1ESPool-Internal')]
image: 1es-mariner-2
os: linux
${{ if ne(parameters.platform.pool, '') }}:
pool: ${{ parameters.platform.pool }}
workspace:
clean: all
steps:
- template: /eng/common/templates-official/steps/source-build.yml
parameters:
platform: ${{ parameters.platform }}

View file

@ -0,0 +1,85 @@
parameters:
runAsPublic: false
sourceIndexUploadPackageVersion: 2.0.0-20240502.12
sourceIndexProcessBinlogPackageVersion: 1.0.1-20240129.2
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: []
binlogPath: artifacts/log/Debug/Build.binlog
condition: ''
dependsOn: ''
pool: ''
jobs:
- job: SourceIndexStage1
dependsOn: ${{ parameters.dependsOn }}
condition: ${{ parameters.condition }}
variables:
- name: SourceIndexUploadPackageVersion
value: ${{ parameters.sourceIndexUploadPackageVersion }}
- name: SourceIndexProcessBinlogPackageVersion
value: ${{ parameters.sourceIndexProcessBinlogPackageVersion }}
- name: SourceIndexPackageSource
value: ${{ parameters.sourceIndexPackageSource }}
- name: BinlogPath
value: ${{ parameters.binlogPath }}
- template: /eng/common/templates/variables/pool-providers.yml
${{ if ne(parameters.pool, '') }}:
pool: ${{ parameters.pool }}
${{ if eq(parameters.pool, '') }}:
pool:
${{ if eq(variables['System.TeamProject'], 'public') }}:
name: $(DncEngPublicBuildPool)
demands: ImageOverride -equals windows.vs2019.amd64.open
${{ if eq(variables['System.TeamProject'], 'internal') }}:
name: $(DncEngInternalBuildPool)
demands: ImageOverride -equals windows.vs2019.amd64
steps:
- ${{ each preStep in parameters.preSteps }}:
- ${{ preStep }}
- task: UseDotNet@2
displayName: Use .NET 8 SDK
inputs:
packageType: sdk
version: 8.0.x
installationPath: $(Agent.TempDirectory)/dotnet
workingDirectory: $(Agent.TempDirectory)
- script: |
$(Agent.TempDirectory)/dotnet/dotnet tool install BinLogToSln --version $(sourceIndexProcessBinlogPackageVersion) --add-source $(SourceIndexPackageSource) --tool-path $(Agent.TempDirectory)/.source-index/tools
$(Agent.TempDirectory)/dotnet/dotnet tool install UploadIndexStage1 --version $(sourceIndexUploadPackageVersion) --add-source $(SourceIndexPackageSource) --tool-path $(Agent.TempDirectory)/.source-index/tools
displayName: Download Tools
# Set working directory to temp directory so 'dotnet' doesn't try to use global.json and use the repo's sdk.
workingDirectory: $(Agent.TempDirectory)
- script: ${{ parameters.sourceIndexBuildCommand }}
displayName: Build Repository
- script: $(Agent.TempDirectory)/.source-index/tools/BinLogToSln -i $(BinlogPath) -r $(Build.SourcesDirectory) -n $(Build.Repository.Name) -o .source-index/stage1output
displayName: Process Binlog into indexable sln
- ${{ if and(eq(parameters.runAsPublic, 'false'), ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}:
- task: AzureCLI@2
displayName: Get stage 1 auth token
inputs:
azureSubscription: 'SourceDotNet Stage1 Publish'
addSpnToEnvironment: true
scriptType: 'ps'
scriptLocation: 'inlineScript'
inlineScript: |
echo "##vso[task.setvariable variable=ARM_CLIENT_ID]$env:servicePrincipalId"
echo "##vso[task.setvariable variable=ARM_ID_TOKEN]$env:idToken"
echo "##vso[task.setvariable variable=ARM_TENANT_ID]$env:tenantId"
- script: |
echo "Client ID: $(ARM_CLIENT_ID)"
echo "ID Token: $(ARM_ID_TOKEN)"
echo "Tenant ID: $(ARM_TENANT_ID)"
az login --service-principal -u $(ARM_CLIENT_ID) --tenant $(ARM_TENANT_ID) --allow-no-subscriptions --federated-token $(ARM_ID_TOKEN)
displayName: "Login to Azure"
- script: $(Agent.TempDirectory)/.source-index/tools/UploadIndexStage1 -i .source-index/stage1output -n $(Build.Repository.Name) -s netsourceindexstage1 -b stage1
displayName: Upload stage1 artifacts to source index

View file

@ -0,0 +1,31 @@
parameters:
# See schema documentation in /Documentation/AzureDevOps/TemplateSchema.md
continueOnError: false
# Required: A collection of jobs to run - https://docs.microsoft.com/en-us/azure/devops/pipelines/yaml-schema?view=vsts&tabs=schema#job
jobs: []
# Optional: if specified, restore and use this version of Guardian instead of the default.
overrideGuardianVersion: ''
jobs:
- template: /eng/common/templates-official/jobs/jobs.yml
parameters:
enableMicrobuild: false
enablePublishBuildArtifacts: false
enablePublishTestResults: false
enablePublishBuildAssets: false
enablePublishUsingPipelines: false
enableTelemetry: true
variables:
- group: Publish-Build-Assets
# The Guardian version specified in 'eng/common/sdl/packages.config'. This value must be kept in
# sync with the packages.config file.
- name: DefaultGuardianVersion
value: 0.109.0
- name: GuardianPackagesConfigFile
value: $(Build.SourcesDirectory)\eng\common\sdl\packages.config
- name: GuardianVersion
value: ${{ coalesce(parameters.overrideGuardianVersion, '$(DefaultGuardianVersion)') }}
jobs: ${{ parameters.jobs }}

View file

@ -0,0 +1,97 @@
parameters:
# See schema documentation in /Documentation/AzureDevOps/TemplateSchema.md
continueOnError: false
# Optional: Include PublishBuildArtifacts task
enablePublishBuildArtifacts: false
# Optional: Enable publishing using release pipelines
enablePublishUsingPipelines: false
# Optional: Enable running the source-build jobs to build repo from source
enableSourceBuild: false
# Optional: Parameters for source-build template.
# See /eng/common/templates-official/jobs/source-build.yml for options
sourceBuildParameters: []
graphFileGeneration:
# Optional: Enable generating the graph files at the end of the build
enabled: false
# Optional: Include toolset dependencies in the generated graph files
includeToolset: false
# Required: A collection of jobs to run - https://docs.microsoft.com/en-us/azure/devops/pipelines/yaml-schema?view=vsts&tabs=schema#job
jobs: []
# Optional: Override automatically derived dependsOn value for "publish build assets" job
publishBuildAssetsDependsOn: ''
# Optional: Publish the assets as soon as the publish to BAR stage is complete, rather doing so in a separate stage.
publishAssetsImmediately: false
# Optional: If using publishAssetsImmediately and additional parameters are needed, can be used to send along additional parameters (normally sent to post-build.yml)
artifactsPublishingAdditionalParameters: ''
signingValidationAdditionalParameters: ''
# Optional: should run as a public build even in the internal project
# if 'true', the build won't run any of the internal only steps, even if it is running in non-public projects.
runAsPublic: false
enableSourceIndex: false
sourceIndexParams: {}
# Internal resources (telemetry, microbuild) can only be accessed from non-public projects,
# and some (Microbuild) should only be applied to non-PR cases for internal builds.
jobs:
- ${{ each job in parameters.jobs }}:
- template: ../job/job.yml
parameters:
# pass along parameters
${{ each parameter in parameters }}:
${{ if ne(parameter.key, 'jobs') }}:
${{ parameter.key }}: ${{ parameter.value }}
# pass along job properties
${{ each property in job }}:
${{ if ne(property.key, 'job') }}:
${{ property.key }}: ${{ property.value }}
name: ${{ job.job }}
- ${{ if eq(parameters.enableSourceBuild, true) }}:
- template: /eng/common/templates-official/jobs/source-build.yml
parameters:
allCompletedJobId: Source_Build_Complete
${{ each parameter in parameters.sourceBuildParameters }}:
${{ parameter.key }}: ${{ parameter.value }}
- ${{ if eq(parameters.enableSourceIndex, 'true') }}:
- template: ../job/source-index-stage1.yml
parameters:
runAsPublic: ${{ parameters.runAsPublic }}
${{ each parameter in parameters.sourceIndexParams }}:
${{ parameter.key }}: ${{ parameter.value }}
- ${{ if and(eq(parameters.runAsPublic, 'false'), ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}:
- ${{ if or(eq(parameters.enablePublishBuildAssets, true), eq(parameters.artifacts.publish.manifests, 'true'), ne(parameters.artifacts.publish.manifests, '')) }}:
- template: ../job/publish-build-assets.yml
parameters:
continueOnError: ${{ parameters.continueOnError }}
dependsOn:
- ${{ if ne(parameters.publishBuildAssetsDependsOn, '') }}:
- ${{ each job in parameters.publishBuildAssetsDependsOn }}:
- ${{ job.job }}
- ${{ if eq(parameters.publishBuildAssetsDependsOn, '') }}:
- ${{ each job in parameters.jobs }}:
- ${{ job.job }}
- ${{ if eq(parameters.enableSourceBuild, true) }}:
- Source_Build_Complete
runAsPublic: ${{ parameters.runAsPublic }}
publishUsingPipelines: ${{ parameters.enablePublishUsingPipelines }}
publishAssetsImmediately: ${{ parameters.publishAssetsImmediately }}
enablePublishBuildArtifacts: ${{ parameters.enablePublishBuildArtifacts }}
artifactsPublishingAdditionalParameters: ${{ parameters.artifactsPublishingAdditionalParameters }}
signingValidationAdditionalParameters: ${{ parameters.signingValidationAdditionalParameters }}

View file

@ -0,0 +1,46 @@
parameters:
# This template adds arcade-powered source-build to CI. A job is created for each platform, as
# well as an optional server job that completes when all platform jobs complete.
# The name of the "join" job for all source-build platforms. If set to empty string, the job is
# not included. Existing repo pipelines can use this job depend on all source-build jobs
# completing without maintaining a separate list of every single job ID: just depend on this one
# server job. By default, not included. Recommended name if used: 'Source_Build_Complete'.
allCompletedJobId: ''
# See /eng/common/templates-official/job/source-build.yml
jobNamePrefix: 'Source_Build'
# This is the default platform provided by Arcade, intended for use by a managed-only repo.
defaultManagedPlatform:
name: 'Managed'
container: 'mcr.microsoft.com/dotnet-buildtools/prereqs:centos-stream8'
# Defines the platforms on which to run build jobs. One job is created for each platform, and the
# object in this array is sent to the job template as 'platform'. If no platforms are specified,
# one job runs on 'defaultManagedPlatform'.
platforms: []
jobs:
- ${{ if ne(parameters.allCompletedJobId, '') }}:
- job: ${{ parameters.allCompletedJobId }}
displayName: Source-Build Complete
pool: server
dependsOn:
- ${{ each platform in parameters.platforms }}:
- ${{ parameters.jobNamePrefix }}_${{ platform.name }}
- ${{ if eq(length(parameters.platforms), 0) }}:
- ${{ parameters.jobNamePrefix }}_${{ parameters.defaultManagedPlatform.name }}
- ${{ each platform in parameters.platforms }}:
- template: /eng/common/templates-official/job/source-build.yml
parameters:
jobNamePrefix: ${{ parameters.jobNamePrefix }}
platform: ${{ platform }}
- ${{ if eq(length(parameters.platforms), 0) }}:
- template: /eng/common/templates-official/job/source-build.yml
parameters:
jobNamePrefix: ${{ parameters.jobNamePrefix }}
platform: ${{ parameters.defaultManagedPlatform }}

View file

@ -0,0 +1,22 @@
variables:
- group: Publish-Build-Assets
# Whether the build is internal or not
- name: IsInternalBuild
value: ${{ and(ne(variables['System.TeamProject'], 'public'), contains(variables['Build.SourceBranch'], 'internal')) }}
# Default Maestro++ API Endpoint and API Version
- name: MaestroApiEndPoint
value: "https://maestro-prod.westus2.cloudapp.azure.com"
- name: MaestroApiAccessToken
value: $(MaestroAccessToken)
- name: MaestroApiVersion
value: "2020-02-20"
- name: SourceLinkCLIVersion
value: 3.0.0
- name: SymbolToolVersion
value: 1.0.1
- name: runCodesignValidationInjection
value: false

View file

@ -0,0 +1,285 @@
parameters:
# Which publishing infra should be used. THIS SHOULD MATCH THE VERSION ON THE BUILD MANIFEST.
# Publishing V1 is no longer supported
# Publishing V2 is no longer supported
# Publishing V3 is the default
- name: publishingInfraVersion
displayName: Which version of publishing should be used to promote the build definition?
type: number
default: 3
values:
- 3
- name: BARBuildId
displayName: BAR Build Id
type: number
default: 0
- name: PromoteToChannelIds
displayName: Channel to promote BARBuildId to
type: string
default: ''
- name: enableSourceLinkValidation
displayName: Enable SourceLink validation
type: boolean
default: false
- name: enableSigningValidation
displayName: Enable signing validation
type: boolean
default: true
- name: enableSymbolValidation
displayName: Enable symbol validation
type: boolean
default: false
- name: enableNugetValidation
displayName: Enable NuGet validation
type: boolean
default: true
- name: publishInstallersAndChecksums
displayName: Publish installers and checksums
type: boolean
default: true
- name: SDLValidationParameters
type: object
default:
enable: false
publishGdn: false
continueOnError: false
params: ''
artifactNames: ''
downloadArtifacts: true
# These parameters let the user customize the call to sdk-task.ps1 for publishing
# symbols & general artifacts as well as for signing validation
- name: symbolPublishingAdditionalParameters
displayName: Symbol publishing additional parameters
type: string
default: ''
- name: artifactsPublishingAdditionalParameters
displayName: Artifact publishing additional parameters
type: string
default: ''
- name: signingValidationAdditionalParameters
displayName: Signing validation additional parameters
type: string
default: ''
# Which stages should finish execution before post-build stages start
- name: validateDependsOn
type: object
default:
- build
- name: publishDependsOn
type: object
default:
- Validate
# Optional: Call asset publishing rather than running in a separate stage
- name: publishAssetsImmediately
type: boolean
default: false
stages:
- ${{ if or(eq( parameters.enableNugetValidation, 'true'), eq(parameters.enableSigningValidation, 'true'), eq(parameters.enableSourceLinkValidation, 'true'), eq(parameters.SDLValidationParameters.enable, 'true')) }}:
- stage: Validate
dependsOn: ${{ parameters.validateDependsOn }}
displayName: Validate Build Assets
variables:
- template: common-variables.yml
- template: /eng/common/templates-official/variables/pool-providers.yml
jobs:
- job:
displayName: NuGet Validation
condition: and(succeededOrFailed(), eq( ${{ parameters.enableNugetValidation }}, 'true'))
pool:
# We don't use the collection uri here because it might vary (.visualstudio.com vs. dev.azure.com)
${{ if eq(variables['System.TeamProject'], 'DevDiv') }}:
name: AzurePipelines-EO
image: 1ESPT-Windows2022
demands: Cmd
os: windows
# If it's not devdiv, it's dnceng
${{ else }}:
name: $(DncEngInternalBuildPool)
image: 1es-windows-2022
os: windows
steps:
- template: setup-maestro-vars.yml
parameters:
BARBuildId: ${{ parameters.BARBuildId }}
PromoteToChannelIds: ${{ parameters.PromoteToChannelIds }}
- task: DownloadBuildArtifacts@0
displayName: Download Package Artifacts
inputs:
buildType: specific
buildVersionToDownload: specific
project: $(AzDOProjectName)
pipeline: $(AzDOPipelineId)
buildId: $(AzDOBuildId)
artifactName: PackageArtifacts
checkDownloadedFiles: true
- task: PowerShell@2
displayName: Validate
inputs:
filePath: $(Build.SourcesDirectory)/eng/common/post-build/nuget-validation.ps1
arguments: -PackagesPath $(Build.ArtifactStagingDirectory)/PackageArtifacts/
-ToolDestinationPath $(Agent.BuildDirectory)/Extract/
- job:
displayName: Signing Validation
condition: and( eq( ${{ parameters.enableSigningValidation }}, 'true'), ne( variables['PostBuildSign'], 'true'))
pool:
# We don't use the collection uri here because it might vary (.visualstudio.com vs. dev.azure.com)
${{ if eq(variables['System.TeamProject'], 'DevDiv') }}:
name: AzurePipelines-EO
image: 1ESPT-Windows2022
demands: Cmd
os: windows
# If it's not devdiv, it's dnceng
${{ else }}:
name: $(DncEngInternalBuildPool)
image: 1es-windows-2022
os: windows
steps:
- template: setup-maestro-vars.yml
parameters:
BARBuildId: ${{ parameters.BARBuildId }}
PromoteToChannelIds: ${{ parameters.PromoteToChannelIds }}
- task: DownloadBuildArtifacts@0
displayName: Download Package Artifacts
inputs:
buildType: specific
buildVersionToDownload: specific
project: $(AzDOProjectName)
pipeline: $(AzDOPipelineId)
buildId: $(AzDOBuildId)
artifactName: PackageArtifacts
checkDownloadedFiles: true
itemPattern: |
**
!**/Microsoft.SourceBuild.Intermediate.*.nupkg
# 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@1
displayName: 'Authenticate to AzDO Feeds'
# Signing validation will optionally work with the buildmanifest file which is downloaded from
# Azure DevOps above.
- task: PowerShell@2
displayName: Validate
inputs:
filePath: eng\common\sdk-task.ps1
arguments: -task SigningValidation -restore -msbuildEngine vs
/p:PackageBasePath='$(Build.ArtifactStagingDirectory)/PackageArtifacts'
/p:SignCheckExclusionsFile='$(Build.SourcesDirectory)/eng/SignCheckExclusionsFile.txt'
${{ parameters.signingValidationAdditionalParameters }}
- template: ../steps/publish-logs.yml
parameters:
StageLabel: 'Validation'
JobLabel: 'Signing'
BinlogToolVersion: $(BinlogToolVersion)
- job:
displayName: SourceLink Validation
condition: eq( ${{ parameters.enableSourceLinkValidation }}, 'true')
pool:
# We don't use the collection uri here because it might vary (.visualstudio.com vs. dev.azure.com)
${{ if eq(variables['System.TeamProject'], 'DevDiv') }}:
name: AzurePipelines-EO
image: 1ESPT-Windows2022
demands: Cmd
os: windows
# If it's not devdiv, it's dnceng
${{ else }}:
name: $(DncEngInternalBuildPool)
image: 1es-windows-2022
os: windows
steps:
- template: setup-maestro-vars.yml
parameters:
BARBuildId: ${{ parameters.BARBuildId }}
PromoteToChannelIds: ${{ parameters.PromoteToChannelIds }}
- task: DownloadBuildArtifacts@0
displayName: Download Blob Artifacts
inputs:
buildType: specific
buildVersionToDownload: specific
project: $(AzDOProjectName)
pipeline: $(AzDOPipelineId)
buildId: $(AzDOBuildId)
artifactName: BlobArtifacts
checkDownloadedFiles: true
- task: PowerShell@2
displayName: Validate
inputs:
filePath: $(Build.SourcesDirectory)/eng/common/post-build/sourcelink-validation.ps1
arguments: -InputPath $(Build.ArtifactStagingDirectory)/BlobArtifacts/
-ExtractPath $(Agent.BuildDirectory)/Extract/
-GHRepoName $(Build.Repository.Name)
-GHCommit $(Build.SourceVersion)
-SourcelinkCliVersion $(SourceLinkCLIVersion)
continueOnError: true
- ${{ if ne(parameters.publishAssetsImmediately, 'true') }}:
- stage: publish_using_darc
${{ if or(eq(parameters.enableNugetValidation, 'true'), eq(parameters.enableSigningValidation, 'true'), eq(parameters.enableSourceLinkValidation, 'true'), eq(parameters.SDLValidationParameters.enable, 'true')) }}:
dependsOn: ${{ parameters.publishDependsOn }}
${{ else }}:
dependsOn: ${{ parameters.validateDependsOn }}
displayName: Publish using Darc
variables:
- template: common-variables.yml
- template: /eng/common/templates-official/variables/pool-providers.yml
jobs:
- job:
displayName: Publish Using Darc
timeoutInMinutes: 120
pool:
# We don't use the collection uri here because it might vary (.visualstudio.com vs. dev.azure.com)
${{ if eq(variables['System.TeamProject'], 'DevDiv') }}:
name: AzurePipelines-EO
image: 1ESPT-Windows2022
demands: Cmd
os: windows
# If it's not devdiv, it's dnceng
${{ else }}:
name: NetCore1ESPool-Publishing-Internal
image: windows.vs2019.amd64
os: windows
steps:
- template: setup-maestro-vars.yml
parameters:
BARBuildId: ${{ parameters.BARBuildId }}
PromoteToChannelIds: ${{ parameters.PromoteToChannelIds }}
- task: NuGetAuthenticate@1
- task: PowerShell@2
displayName: Publish Using Darc
inputs:
filePath: $(Build.SourcesDirectory)/eng/common/post-build/publish-using-darc.ps1
arguments: -BuildId $(BARBuildId)
-PublishingInfraVersion ${{ parameters.publishingInfraVersion }}
-AzdoToken '$(publishing-dnceng-devdiv-code-r-build-re)'
-MaestroToken '$(MaestroApiAccessToken)'
-WaitPublishingFinish true
-ArtifactsPublishingAdditionalParameters '${{ parameters.artifactsPublishingAdditionalParameters }}'
-SymbolPublishingAdditionalParameters '${{ parameters.symbolPublishingAdditionalParameters }}'

View file

@ -0,0 +1,70 @@
parameters:
BARBuildId: ''
PromoteToChannelIds: ''
steps:
- ${{ if eq(coalesce(parameters.PromoteToChannelIds, 0), 0) }}:
- task: DownloadBuildArtifacts@0
displayName: Download Release Configs
inputs:
buildType: current
artifactName: ReleaseConfigs
checkDownloadedFiles: true
- task: PowerShell@2
name: setReleaseVars
displayName: Set Release Configs Vars
inputs:
targetType: inline
pwsh: true
script: |
try {
if (!$Env:PromoteToMaestroChannels -or $Env:PromoteToMaestroChannels.Trim() -eq '') {
$Content = Get-Content $(Build.StagingDirectory)/ReleaseConfigs/ReleaseConfigs.txt
$BarId = $Content | Select -Index 0
$Channels = $Content | Select -Index 1
$IsStableBuild = $Content | Select -Index 2
$AzureDevOpsProject = $Env:System_TeamProject
$AzureDevOpsBuildDefinitionId = $Env:System_DefinitionId
$AzureDevOpsBuildId = $Env:Build_BuildId
}
else {
$buildApiEndpoint = "${Env:MaestroApiEndPoint}/api/builds/${Env:BARBuildId}?api-version=${Env:MaestroApiVersion}"
$apiHeaders = New-Object 'System.Collections.Generic.Dictionary[[String],[String]]'
$apiHeaders.Add('Accept', 'application/json')
$apiHeaders.Add('Authorization',"Bearer ${Env:MAESTRO_API_TOKEN}")
$buildInfo = try { Invoke-WebRequest -Method Get -Uri $buildApiEndpoint -Headers $apiHeaders | ConvertFrom-Json } catch { Write-Host "Error: $_" }
$BarId = $Env:BARBuildId
$Channels = $Env:PromoteToMaestroChannels -split ","
$Channels = $Channels -join "]["
$Channels = "[$Channels]"
$IsStableBuild = $buildInfo.stable
$AzureDevOpsProject = $buildInfo.azureDevOpsProject
$AzureDevOpsBuildDefinitionId = $buildInfo.azureDevOpsBuildDefinitionId
$AzureDevOpsBuildId = $buildInfo.azureDevOpsBuildId
}
Write-Host "##vso[task.setvariable variable=BARBuildId]$BarId"
Write-Host "##vso[task.setvariable variable=TargetChannels]$Channels"
Write-Host "##vso[task.setvariable variable=IsStableBuild]$IsStableBuild"
Write-Host "##vso[task.setvariable variable=AzDOProjectName]$AzureDevOpsProject"
Write-Host "##vso[task.setvariable variable=AzDOPipelineId]$AzureDevOpsBuildDefinitionId"
Write-Host "##vso[task.setvariable variable=AzDOBuildId]$AzureDevOpsBuildId"
}
catch {
Write-Host $_
Write-Host $_.Exception
Write-Host $_.ScriptStackTrace
exit 1
}
env:
MAESTRO_API_TOKEN: $(MaestroApiAccessToken)
BARBuildId: ${{ parameters.BARBuildId }}
PromoteToMaestroChannels: ${{ parameters.PromoteToChannelIds }}

View file

@ -0,0 +1,13 @@
parameters:
ChannelId: 0
steps:
- task: PowerShell@2
displayName: Triggering subscriptions
inputs:
filePath: $(Build.SourcesDirectory)/eng/common/post-build/trigger-subscriptions.ps1
arguments: -SourceRepo $(Build.Repository.Uri)
-ChannelId ${{ parameters.ChannelId }}
-MaestroApiAccessToken $(MaestroAccessToken)
-MaestroApiEndPoint $(MaestroApiEndPoint)
-MaestroApiVersion $(MaestroApiVersion)

View file

@ -0,0 +1,13 @@
parameters:
ChannelId: 0
steps:
- task: PowerShell@2
displayName: Add Build to Channel
inputs:
filePath: $(Build.SourcesDirectory)/eng/common/post-build/add-build-to-channel.ps1
arguments: -BuildId $(BARBuildId)
-ChannelId ${{ parameters.ChannelId }}
-MaestroApiAccessToken $(MaestroApiAccessToken)
-MaestroApiEndPoint $(MaestroApiEndPoint)
-MaestroApiVersion $(MaestroApiVersion)

View file

@ -0,0 +1,12 @@
# build-reason.yml
# Description: runs steps if build.reason condition is valid. conditions is a string of valid build reasons
# to include steps (',' separated).
parameters:
conditions: ''
steps: []
steps:
- ${{ if and( not(startsWith(parameters.conditions, 'not')), contains(parameters.conditions, variables['build.reason'])) }}:
- ${{ parameters.steps }}
- ${{ if and( startsWith(parameters.conditions, 'not'), not(contains(parameters.conditions, variables['build.reason']))) }}:
- ${{ parameters.steps }}

View file

@ -0,0 +1,13 @@
parameters:
disableComponentGovernance: false
componentGovernanceIgnoreDirectories: ''
steps:
- ${{ if eq(parameters.disableComponentGovernance, 'true') }}:
- script: echo "##vso[task.setvariable variable=skipComponentGovernanceDetection]true"
displayName: Set skipComponentGovernanceDetection variable
- ${{ if ne(parameters.disableComponentGovernance, 'true') }}:
- task: ComponentGovernanceComponentDetection@0
continueOnError: true
inputs:
ignoreDirectories: ${{ parameters.componentGovernanceIgnoreDirectories }}

View file

@ -0,0 +1,32 @@
parameters:
# Language that should be analyzed. Defaults to csharp
language: csharp
# Build Commands
buildCommands: ''
overrideParameters: '' # Optional: to override values for parameters.
additionalParameters: '' # Optional: parameters that need user specific values eg: '-SourceToolsList @("abc","def") -ArtifactToolsList @("ghi","jkl")'
# Optional: if specified, restore and use this version of Guardian instead of the default.
overrideGuardianVersion: ''
# Optional: if true, publish the '.gdn' folder as a pipeline artifact. This can help with in-depth
# diagnosis of problems with specific tool configurations.
publishGuardianDirectoryToPipeline: false
# The script to run to execute all SDL tools. Use this if you want to use a script to define SDL
# parameters rather than relying on YAML. It may be better to use a local script, because you can
# reproduce results locally without piecing together a command based on the YAML.
executeAllSdlToolsScript: 'eng/common/sdl/execute-all-sdl-tools.ps1'
# There is some sort of bug (has been reported) in Azure DevOps where if this parameter is named
# 'continueOnError', the parameter value is not correctly picked up.
# This can also be remedied by the caller (post-build.yml) if it does not use a nested parameter
# optional: determines whether to continue the build if the step errors;
sdlContinueOnError: false
steps:
- template: /eng/common/templates-official/steps/execute-sdl.yml
parameters:
overrideGuardianVersion: ${{ parameters.overrideGuardianVersion }}
executeAllSdlToolsScript: ${{ parameters.executeAllSdlToolsScript }}
overrideParameters: ${{ parameters.overrideParameters }}
additionalParameters: '${{ parameters.additionalParameters }}
-CodeQLAdditionalRunConfigParams @("BuildCommands < ${{ parameters.buildCommands }}", "Language < ${{ parameters.language }}")'
publishGuardianDirectoryToPipeline: ${{ parameters.publishGuardianDirectoryToPipeline }}
sdlContinueOnError: ${{ parameters.sdlContinueOnError }}

View file

@ -0,0 +1,88 @@
parameters:
overrideGuardianVersion: ''
executeAllSdlToolsScript: ''
overrideParameters: ''
additionalParameters: ''
publishGuardianDirectoryToPipeline: false
sdlContinueOnError: false
condition: ''
steps:
- task: NuGetAuthenticate@1
inputs:
nuGetServiceConnections: GuardianConnect
- task: NuGetToolInstaller@1
displayName: 'Install NuGet.exe'
- ${{ if ne(parameters.overrideGuardianVersion, '') }}:
- pwsh: |
Set-Location -Path $(Build.SourcesDirectory)\eng\common\sdl
. .\sdl.ps1
$guardianCliLocation = Install-Gdn -Path $(Build.SourcesDirectory)\.artifacts -Version ${{ parameters.overrideGuardianVersion }}
Write-Host "##vso[task.setvariable variable=GuardianCliLocation]$guardianCliLocation"
displayName: Install Guardian (Overridden)
- ${{ if eq(parameters.overrideGuardianVersion, '') }}:
- pwsh: |
Set-Location -Path $(Build.SourcesDirectory)\eng\common\sdl
. .\sdl.ps1
$guardianCliLocation = Install-Gdn -Path $(Build.SourcesDirectory)\.artifacts
Write-Host "##vso[task.setvariable variable=GuardianCliLocation]$guardianCliLocation"
displayName: Install Guardian
- ${{ if ne(parameters.overrideParameters, '') }}:
- powershell: ${{ parameters.executeAllSdlToolsScript }} ${{ parameters.overrideParameters }}
displayName: Execute SDL (Overridden)
continueOnError: ${{ parameters.sdlContinueOnError }}
condition: ${{ parameters.condition }}
- ${{ if eq(parameters.overrideParameters, '') }}:
- powershell: ${{ parameters.executeAllSdlToolsScript }}
-GuardianCliLocation $(GuardianCliLocation)
-NugetPackageDirectory $(Build.SourcesDirectory)\.packages
-AzureDevOpsAccessToken $(dn-bot-dotnet-build-rw-code-rw)
${{ parameters.additionalParameters }}
displayName: Execute SDL
continueOnError: ${{ parameters.sdlContinueOnError }}
condition: ${{ parameters.condition }}
- ${{ if ne(parameters.publishGuardianDirectoryToPipeline, 'false') }}:
# We want to publish the Guardian results and configuration for easy diagnosis. However, the
# '.gdn' dir is a mix of configuration, results, extracted dependencies, and Guardian default
# tooling files. Some of these files are large and aren't useful during an investigation, so
# exclude them by simply deleting them before publishing. (As of writing, there is no documented
# way to selectively exclude a dir from the pipeline artifact publish task.)
- task: DeleteFiles@1
displayName: Delete Guardian dependencies to avoid uploading
inputs:
SourceFolder: $(Agent.BuildDirectory)/.gdn
Contents: |
c
i
condition: succeededOrFailed()
- publish: $(Agent.BuildDirectory)/.gdn
artifact: GuardianConfiguration
displayName: Publish GuardianConfiguration
condition: succeededOrFailed()
# Publish the SARIF files in a container named CodeAnalysisLogs to enable integration
# with the "SARIF SAST Scans Tab" Azure DevOps extension
- task: CopyFiles@2
displayName: Copy SARIF files
inputs:
flattenFolders: true
sourceFolder: $(Agent.BuildDirectory)/.gdn/rc/
contents: '**/*.sarif'
targetFolder: $(Build.SourcesDirectory)/CodeAnalysisLogs
condition: succeededOrFailed()
# Use PublishBuildArtifacts because the SARIF extension only checks this case
# see microsoft/sarif-azuredevops-extension#4
- task: PublishBuildArtifacts@1
displayName: Publish SARIF files to CodeAnalysisLogs container
inputs:
pathToPublish: $(Build.SourcesDirectory)/CodeAnalysisLogs
artifactName: CodeAnalysisLogs
condition: succeededOrFailed()

View file

@ -0,0 +1,48 @@
# BuildDropPath - The root folder of the drop directory for which the manifest file will be generated.
# PackageName - The name of the package this SBOM represents.
# PackageVersion - The version of the package this SBOM represents.
# ManifestDirPath - The path of the directory where the generated manifest files will be placed
# IgnoreDirectories - Directories to ignore for SBOM generation. This will be passed through to the CG component detector.
parameters:
PackageVersion: 8.0.0
BuildDropPath: '$(Build.SourcesDirectory)/artifacts'
PackageName: '.NET'
ManifestDirPath: $(Build.ArtifactStagingDirectory)/sbom
IgnoreDirectories: ''
sbomContinueOnError: true
steps:
- task: PowerShell@2
displayName: Prep for SBOM generation in (Non-linux)
condition: or(eq(variables['Agent.Os'], 'Windows_NT'), eq(variables['Agent.Os'], 'Darwin'))
inputs:
filePath: ./eng/common/generate-sbom-prep.ps1
arguments: ${{parameters.manifestDirPath}}
# Chmodding is a workaround for https://github.com/dotnet/arcade/issues/8461
- script: |
chmod +x ./eng/common/generate-sbom-prep.sh
./eng/common/generate-sbom-prep.sh ${{parameters.manifestDirPath}}
displayName: Prep for SBOM generation in (Linux)
condition: eq(variables['Agent.Os'], 'Linux')
continueOnError: ${{ parameters.sbomContinueOnError }}
- task: AzureArtifacts.manifest-generator-task.manifest-generator-task.ManifestGeneratorTask@0
displayName: 'Generate SBOM manifest'
continueOnError: ${{ parameters.sbomContinueOnError }}
inputs:
PackageName: ${{ parameters.packageName }}
BuildDropPath: ${{ parameters.buildDropPath }}
PackageVersion: ${{ parameters.packageVersion }}
ManifestDirPath: ${{ parameters.manifestDirPath }}
${{ if ne(parameters.IgnoreDirectories, '') }}:
AdditionalComponentDetectorArgs: '--IgnoreDirectories ${{ parameters.IgnoreDirectories }}'
- task: 1ES.PublishPipelineArtifact@1
displayName: Publish SBOM manifest
continueOnError: ${{parameters.sbomContinueOnError}}
inputs:
targetPath: '${{parameters.manifestDirPath}}'
artifactName: $(ARTIFACT_NAME)

View file

@ -0,0 +1,23 @@
parameters:
StageLabel: ''
JobLabel: ''
steps:
- task: Powershell@2
displayName: Prepare Binlogs to Upload
inputs:
targetType: inline
script: |
New-Item -ItemType Directory $(Build.SourcesDirectory)/PostBuildLogs/${{parameters.StageLabel}}/${{parameters.JobLabel}}/
Move-Item -Path $(Build.SourcesDirectory)/artifacts/log/Debug/* $(Build.SourcesDirectory)/PostBuildLogs/${{parameters.StageLabel}}/${{parameters.JobLabel}}/
continueOnError: true
condition: always()
- task: 1ES.PublishBuildArtifacts@1
displayName: Publish Logs
inputs:
PathtoPublish: '$(Build.SourcesDirectory)/PostBuildLogs'
PublishLocation: Container
ArtifactName: PostBuildLogs
continueOnError: true
condition: always()

View file

@ -0,0 +1,28 @@
parameters:
# Optional azure devops PAT with build execute permissions for the build's organization,
# only needed if the build that should be retained ran on a different organization than
# the pipeline where this template is executing from
Token: ''
# Optional BuildId to retain, defaults to the current running build
BuildId: ''
# Azure devops Organization URI for the build in the https://dev.azure.com/<organization> format.
# Defaults to the organization the current pipeline is running on
AzdoOrgUri: '$(System.CollectionUri)'
# Azure devops project for the build. Defaults to the project the current pipeline is running on
AzdoProject: '$(System.TeamProject)'
steps:
- task: powershell@2
inputs:
targetType: 'filePath'
filePath: eng/common/retain-build.ps1
pwsh: true
arguments: >
-AzdoOrgUri: ${{parameters.AzdoOrgUri}}
-AzdoProject ${{parameters.AzdoProject}}
-Token ${{coalesce(parameters.Token, '$env:SYSTEM_ACCESSTOKEN') }}
-BuildId ${{coalesce(parameters.BuildId, '$env:BUILD_ID')}}
displayName: Enable permanent build retention
env:
SYSTEM_ACCESSTOKEN: $(System.AccessToken)
BUILD_ID: $(Build.BuildId)

View file

@ -0,0 +1,91 @@
# Please remember to update the documentation if you make changes to these parameters!
parameters:
HelixSource: 'pr/default' # required -- sources must start with pr/, official/, prodcon/, or agent/
HelixType: 'tests/default/' # required -- Helix telemetry which identifies what type of data this is; should include "test" for clarity and must end in '/'
HelixBuild: $(Build.BuildNumber) # required -- the build number Helix will use to identify this -- automatically set to the AzDO build number
HelixTargetQueues: '' # required -- semicolon-delimited list of Helix queues to test on; see https://helix.dot.net/ for a list of queues
HelixAccessToken: '' # required -- access token to make Helix API requests; should be provided by the appropriate variable group
HelixConfiguration: '' # optional -- additional property attached to a job
HelixPreCommands: '' # optional -- commands to run before Helix work item execution
HelixPostCommands: '' # optional -- commands to run after Helix work item execution
WorkItemDirectory: '' # optional -- a payload directory to zip up and send to Helix; requires WorkItemCommand; incompatible with XUnitProjects
WorkItemCommand: '' # optional -- a command to execute on the payload; requires WorkItemDirectory; incompatible with XUnitProjects
WorkItemTimeout: '' # optional -- a timeout in TimeSpan.Parse-ready value (e.g. 00:02:00) for the work item command; requires WorkItemDirectory; incompatible with XUnitProjects
CorrelationPayloadDirectory: '' # optional -- a directory to zip up and send to Helix as a correlation payload
XUnitProjects: '' # optional -- semicolon-delimited list of XUnitProjects to parse and send to Helix; requires XUnitRuntimeTargetFramework, XUnitPublishTargetFramework, XUnitRunnerVersion, and IncludeDotNetCli=true
XUnitWorkItemTimeout: '' # optional -- the workitem timeout in seconds for all workitems created from the xUnit projects specified by XUnitProjects
XUnitPublishTargetFramework: '' # optional -- framework to use to publish your xUnit projects
XUnitRuntimeTargetFramework: '' # optional -- framework to use for the xUnit console runner
XUnitRunnerVersion: '' # optional -- version of the xUnit nuget package you wish to use on Helix; required for XUnitProjects
IncludeDotNetCli: false # optional -- true will download a version of the .NET CLI onto the Helix machine as a correlation payload; requires DotNetCliPackageType and DotNetCliVersion
DotNetCliPackageType: '' # optional -- either 'sdk', 'runtime' or 'aspnetcore-runtime'; determines whether the sdk or runtime will be sent to Helix; see https://raw.githubusercontent.com/dotnet/core/main/release-notes/releases-index.json
DotNetCliVersion: '' # optional -- version of the CLI to send to Helix; based on this: https://raw.githubusercontent.com/dotnet/core/main/release-notes/releases-index.json
WaitForWorkItemCompletion: true # optional -- true will make the task wait until work items have been completed and fail the build if work items fail. False is "fire and forget."
IsExternal: false # [DEPRECATED] -- doesn't do anything, jobs are external if HelixAccessToken is empty and Creator is set
HelixBaseUri: 'https://helix.dot.net/' # optional -- sets the Helix API base URI (allows targeting https://helix.int-dot.net )
Creator: '' # optional -- if the build is external, use this to specify who is sending the job
DisplayNamePrefix: 'Run Tests' # optional -- rename the beginning of the displayName of the steps in AzDO
condition: succeeded() # optional -- condition for step to execute; defaults to succeeded()
continueOnError: false # optional -- determines whether to continue the build if the step errors; defaults to false
steps:
- powershell: 'powershell "$env:BUILD_SOURCESDIRECTORY\eng\common\msbuild.ps1 $env:BUILD_SOURCESDIRECTORY\eng\common\helixpublish.proj /restore /p:TreatWarningsAsErrors=false /t:Test /bl:$env:BUILD_SOURCESDIRECTORY\artifacts\log\$env:BuildConfig\SendToHelix.binlog"'
displayName: ${{ parameters.DisplayNamePrefix }} (Windows)
env:
BuildConfig: $(_BuildConfig)
HelixSource: ${{ parameters.HelixSource }}
HelixType: ${{ parameters.HelixType }}
HelixBuild: ${{ parameters.HelixBuild }}
HelixConfiguration: ${{ parameters.HelixConfiguration }}
HelixTargetQueues: ${{ parameters.HelixTargetQueues }}
HelixAccessToken: ${{ parameters.HelixAccessToken }}
HelixPreCommands: ${{ parameters.HelixPreCommands }}
HelixPostCommands: ${{ parameters.HelixPostCommands }}
WorkItemDirectory: ${{ parameters.WorkItemDirectory }}
WorkItemCommand: ${{ parameters.WorkItemCommand }}
WorkItemTimeout: ${{ parameters.WorkItemTimeout }}
CorrelationPayloadDirectory: ${{ parameters.CorrelationPayloadDirectory }}
XUnitProjects: ${{ parameters.XUnitProjects }}
XUnitWorkItemTimeout: ${{ parameters.XUnitWorkItemTimeout }}
XUnitPublishTargetFramework: ${{ parameters.XUnitPublishTargetFramework }}
XUnitRuntimeTargetFramework: ${{ parameters.XUnitRuntimeTargetFramework }}
XUnitRunnerVersion: ${{ parameters.XUnitRunnerVersion }}
IncludeDotNetCli: ${{ parameters.IncludeDotNetCli }}
DotNetCliPackageType: ${{ parameters.DotNetCliPackageType }}
DotNetCliVersion: ${{ parameters.DotNetCliVersion }}
WaitForWorkItemCompletion: ${{ parameters.WaitForWorkItemCompletion }}
HelixBaseUri: ${{ parameters.HelixBaseUri }}
Creator: ${{ parameters.Creator }}
SYSTEM_ACCESSTOKEN: $(System.AccessToken)
condition: and(${{ parameters.condition }}, eq(variables['Agent.Os'], 'Windows_NT'))
continueOnError: ${{ parameters.continueOnError }}
- script: $BUILD_SOURCESDIRECTORY/eng/common/msbuild.sh $BUILD_SOURCESDIRECTORY/eng/common/helixpublish.proj /restore /p:TreatWarningsAsErrors=false /t:Test /bl:$BUILD_SOURCESDIRECTORY/artifacts/log/$BuildConfig/SendToHelix.binlog
displayName: ${{ parameters.DisplayNamePrefix }} (Unix)
env:
BuildConfig: $(_BuildConfig)
HelixSource: ${{ parameters.HelixSource }}
HelixType: ${{ parameters.HelixType }}
HelixBuild: ${{ parameters.HelixBuild }}
HelixConfiguration: ${{ parameters.HelixConfiguration }}
HelixTargetQueues: ${{ parameters.HelixTargetQueues }}
HelixAccessToken: ${{ parameters.HelixAccessToken }}
HelixPreCommands: ${{ parameters.HelixPreCommands }}
HelixPostCommands: ${{ parameters.HelixPostCommands }}
WorkItemDirectory: ${{ parameters.WorkItemDirectory }}
WorkItemCommand: ${{ parameters.WorkItemCommand }}
WorkItemTimeout: ${{ parameters.WorkItemTimeout }}
CorrelationPayloadDirectory: ${{ parameters.CorrelationPayloadDirectory }}
XUnitProjects: ${{ parameters.XUnitProjects }}
XUnitWorkItemTimeout: ${{ parameters.XUnitWorkItemTimeout }}
XUnitPublishTargetFramework: ${{ parameters.XUnitPublishTargetFramework }}
XUnitRuntimeTargetFramework: ${{ parameters.XUnitRuntimeTargetFramework }}
XUnitRunnerVersion: ${{ parameters.XUnitRunnerVersion }}
IncludeDotNetCli: ${{ parameters.IncludeDotNetCli }}
DotNetCliPackageType: ${{ parameters.DotNetCliPackageType }}
DotNetCliVersion: ${{ parameters.DotNetCliVersion }}
WaitForWorkItemCompletion: ${{ parameters.WaitForWorkItemCompletion }}
HelixBaseUri: ${{ parameters.HelixBaseUri }}
Creator: ${{ parameters.Creator }}
SYSTEM_ACCESSTOKEN: $(System.AccessToken)
condition: and(${{ parameters.condition }}, ne(variables['Agent.Os'], 'Windows_NT'))
continueOnError: ${{ parameters.continueOnError }}

View file

@ -0,0 +1,129 @@
parameters:
# This template adds arcade-powered source-build to CI.
# This is a 'steps' template, and is intended for advanced scenarios where the existing build
# infra has a careful build methodology that must be followed. For example, a repo
# (dotnet/runtime) might choose to clone the GitHub repo only once and store it as a pipeline
# artifact for all subsequent jobs to use, to reduce dependence on a strong network connection to
# GitHub. Using this steps template leaves room for that infra to be included.
# Defines the platform on which to run the steps. See 'eng/common/templates-official/job/source-build.yml'
# for details. The entire object is described in the 'job' template for simplicity, even though
# the usage of the properties on this object is split between the 'job' and 'steps' templates.
platform: {}
steps:
# Build. Keep it self-contained for simple reusability. (No source-build-specific job variables.)
- script: |
set -x
df -h
# If building on the internal project, the artifact feeds variable may be available (usually only if needed)
# In that case, call the feed setup script to add internal feeds corresponding to public ones.
# In addition, add an msbuild argument to copy the WIP from the repo to the target build location.
# This is because SetupNuGetSources.sh will alter the current NuGet.config file, and we need to preserve those
# changes.
internalRestoreArgs=
if [ '$(dn-bot-dnceng-artifact-feeds-rw)' != '$''(dn-bot-dnceng-artifact-feeds-rw)' ]; then
# Temporarily work around https://github.com/dotnet/arcade/issues/7709
chmod +x $(Build.SourcesDirectory)/eng/common/SetupNugetSources.sh
$(Build.SourcesDirectory)/eng/common/SetupNugetSources.sh $(Build.SourcesDirectory)/NuGet.config $(dn-bot-dnceng-artifact-feeds-rw)
internalRestoreArgs='/p:CopyWipIntoInnerSourceBuildRepo=true'
# The 'Copy WIP' feature of source build uses git stash to apply changes from the original repo.
# This only works if there is a username/email configured, which won't be the case in most CI runs.
git config --get user.email
if [ $? -ne 0 ]; then
git config user.email dn-bot@microsoft.com
git config user.name dn-bot
fi
fi
# If building on the internal project, the internal storage variable may be available (usually only if needed)
# In that case, add variables to allow the download of internal runtimes if the specified versions are not found
# in the default public locations.
internalRuntimeDownloadArgs=
if [ '$(dotnetbuilds-internal-container-read-token-base64)' != '$''(dotnetbuilds-internal-container-read-token-base64)' ]; then
internalRuntimeDownloadArgs='/p:DotNetRuntimeSourceFeed=https://dotnetbuilds.blob.core.windows.net/internal /p:DotNetRuntimeSourceFeedKey=$(dotnetbuilds-internal-container-read-token-base64) --runtimesourcefeed https://dotnetbuilds.blob.core.windows.net/internal --runtimesourcefeedkey $(dotnetbuilds-internal-container-read-token-base64)'
fi
buildConfig=Release
# Check if AzDO substitutes in a build config from a variable, and use it if so.
if [ '$(_BuildConfig)' != '$''(_BuildConfig)' ]; then
buildConfig='$(_BuildConfig)'
fi
officialBuildArgs=
if [ '${{ and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}' = 'True' ]; then
officialBuildArgs='/p:DotNetPublishUsingPipelines=true /p:OfficialBuildId=$(BUILD.BUILDNUMBER)'
fi
targetRidArgs=
if [ '${{ parameters.platform.targetRID }}' != '' ]; then
targetRidArgs='/p:TargetRid=${{ parameters.platform.targetRID }}'
fi
runtimeOsArgs=
if [ '${{ parameters.platform.runtimeOS }}' != '' ]; then
runtimeOsArgs='/p:RuntimeOS=${{ parameters.platform.runtimeOS }}'
fi
baseOsArgs=
if [ '${{ parameters.platform.baseOS }}' != '' ]; then
baseOsArgs='/p:BaseOS=${{ parameters.platform.baseOS }}'
fi
publishArgs=
if [ '${{ parameters.platform.skipPublishValidation }}' != 'true' ]; then
publishArgs='--publish'
fi
assetManifestFileName=SourceBuild_RidSpecific.xml
if [ '${{ parameters.platform.name }}' != '' ]; then
assetManifestFileName=SourceBuild_${{ parameters.platform.name }}.xml
fi
${{ coalesce(parameters.platform.buildScript, './build.sh') }} --ci \
--configuration $buildConfig \
--restore --build --pack $publishArgs -bl \
$officialBuildArgs \
$internalRuntimeDownloadArgs \
$internalRestoreArgs \
$targetRidArgs \
$runtimeOsArgs \
$baseOsArgs \
/p:SourceBuildNonPortable=${{ parameters.platform.nonPortable }} \
/p:ArcadeBuildFromSource=true \
/p:AssetManifestFileName=$assetManifestFileName
displayName: Build
# Upload build logs for diagnosis.
- task: CopyFiles@2
displayName: Prepare BuildLogs staging directory
inputs:
SourceFolder: '$(Build.SourcesDirectory)'
Contents: |
**/*.log
**/*.binlog
artifacts/source-build/self/prebuilt-report/**
TargetFolder: '$(Build.StagingDirectory)/BuildLogs'
CleanTargetFolder: true
continueOnError: true
condition: succeededOrFailed()
- task: 1ES.PublishPipelineArtifact@1
displayName: Publish BuildLogs
inputs:
targetPath: '$(Build.StagingDirectory)/BuildLogs'
artifactName: BuildLogs_SourceBuild_${{ parameters.platform.name }}_Attempt$(System.JobAttempt)
continueOnError: true
condition: succeededOrFailed()
# Manually inject component detection so that we can ignore the source build upstream cache, which contains
# a nupkg cache of input packages (a local feed).
# This path must match the upstream cache path in property 'CurrentRepoSourceBuiltNupkgCacheDir'
# in src\Microsoft.DotNet.Arcade.Sdk\tools\SourceBuild\SourceBuildArcade.targets
- task: ComponentGovernanceComponentDetection@0
displayName: Component Detection (Exclude upstream cache)
inputs:
ignoreDirectories: '$(Build.SourcesDirectory)/artifacts/source-build/self/src/artifacts/obj/source-built-upstream-cache'

View file

@ -0,0 +1,45 @@
# Select a pool provider based off branch name. Anything with branch name containing 'release' must go into an -Svc pool,
# otherwise it should go into the "normal" pools. This separates out the queueing and billing of released branches.
# Motivation:
# Once a given branch of a repository's output has been officially "shipped" once, it is then considered to be COGS
# (Cost of goods sold) and should be moved to a servicing pool provider. This allows both separation of queueing
# (allowing release builds and main PR builds to not intefere with each other) and billing (required for COGS.
# Additionally, the pool provider name itself may be subject to change when the .NET Core Engineering Services
# team needs to move resources around and create new and potentially differently-named pools. Using this template
# file from an Arcade-ified repo helps guard against both having to update one's release/* branches and renaming.
# How to use:
# This yaml assumes your shipped product branches use the naming convention "release/..." (which many do).
# If we find alternate naming conventions in broad usage it can be added to the condition below.
#
# First, import the template in an arcade-ified repo to pick up the variables, e.g.:
#
# variables:
# - template: /eng/common/templates-official/variables/pool-providers.yml
#
# ... then anywhere specifying the pool provider use the runtime variables,
# $(DncEngInternalBuildPool)
#
# pool:
# name: $(DncEngInternalBuildPool)
# image: 1es-windows-2022
variables:
# Coalesce the target and source branches so we know when a PR targets a release branch
# If these variables are somehow missing, fall back to main (tends to have more capacity)
# Any new -Svc alternative pools should have variables added here to allow for splitting work
- name: DncEngInternalBuildPool
value: $[
replace(
replace(
eq(contains(coalesce(variables['System.PullRequest.TargetBranch'], variables['Build.SourceBranch'], 'refs/heads/main'), 'release'), 'true'),
True,
'NetCore1ESPool-Svc-Internal'
),
False,
'NetCore1ESPool-Internal'
)
]

View file

@ -0,0 +1,7 @@
variables:
# The Guardian version specified in 'eng/common/sdl/packages.config'. This value must be kept in
# sync with the packages.config file.
- name: DefaultGuardianVersion
value: 0.109.0
- name: GuardianPackagesConfigFile
value: $(Build.SourcesDirectory)\eng\common\sdl\packages.config

View file

@ -15,6 +15,7 @@ parameters:
timeoutInMinutes: '' timeoutInMinutes: ''
variables: [] variables: []
workspace: '' workspace: ''
templateContext: ''
# Job base template specific parameters # Job base template specific parameters
# See schema documentation - https://github.com/dotnet/arcade/blob/master/Documentation/AzureDevOps/TemplateSchema.md # See schema documentation - https://github.com/dotnet/arcade/blob/master/Documentation/AzureDevOps/TemplateSchema.md
@ -68,6 +69,9 @@ jobs:
${{ if ne(parameters.timeoutInMinutes, '') }}: ${{ if ne(parameters.timeoutInMinutes, '') }}:
timeoutInMinutes: ${{ parameters.timeoutInMinutes }} timeoutInMinutes: ${{ parameters.timeoutInMinutes }}
${{ if ne(parameters.templateContext, '') }}:
templateContext: ${{ parameters.templateContext }}
variables: variables:
- ${{ if ne(parameters.enableTelemetry, 'false') }}: - ${{ if ne(parameters.enableTelemetry, 'false') }}:
- name: DOTNET_CLI_TELEMETRY_PROFILE - name: DOTNET_CLI_TELEMETRY_PROFILE

View file

@ -1,6 +1,7 @@
parameters: parameters:
runAsPublic: false runAsPublic: false
sourceIndexPackageVersion: 1.0.1-20230228.2 sourceIndexUploadPackageVersion: 2.0.0-20240502.12
sourceIndexProcessBinlogPackageVersion: 1.0.1-20240129.2
sourceIndexPackageSource: https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-tools/nuget/v3/index.json 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" sourceIndexBuildCommand: powershell -NoLogo -NoProfile -ExecutionPolicy Bypass -Command "eng/common/build.ps1 -restore -build -binarylog -ci"
preSteps: [] preSteps: []
@ -14,14 +15,14 @@ jobs:
dependsOn: ${{ parameters.dependsOn }} dependsOn: ${{ parameters.dependsOn }}
condition: ${{ parameters.condition }} condition: ${{ parameters.condition }}
variables: variables:
- name: SourceIndexPackageVersion - name: SourceIndexUploadPackageVersion
value: ${{ parameters.sourceIndexPackageVersion }} value: ${{ parameters.sourceIndexUploadPackageVersion }}
- name: SourceIndexProcessBinlogPackageVersion
value: ${{ parameters.sourceIndexProcessBinlogPackageVersion }}
- name: SourceIndexPackageSource - name: SourceIndexPackageSource
value: ${{ parameters.sourceIndexPackageSource }} value: ${{ parameters.sourceIndexPackageSource }}
- name: BinlogPath - name: BinlogPath
value: ${{ parameters.binlogPath }} value: ${{ parameters.binlogPath }}
- ${{ if and(eq(parameters.runAsPublic, 'false'), ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}:
- group: source-dot-net stage1 variables
- template: /eng/common/templates/variables/pool-providers.yml - template: /eng/common/templates/variables/pool-providers.yml
${{ if ne(parameters.pool, '') }}: ${{ if ne(parameters.pool, '') }}:
@ -40,16 +41,16 @@ jobs:
- ${{ preStep }} - ${{ preStep }}
- task: UseDotNet@2 - task: UseDotNet@2
displayName: Use .NET Core SDK 6 displayName: Use .NET 8 SDK
inputs: inputs:
packageType: sdk packageType: sdk
version: 6.0.x version: 8.0.x
installationPath: $(Agent.TempDirectory)/dotnet installationPath: $(Agent.TempDirectory)/dotnet
workingDirectory: $(Agent.TempDirectory) workingDirectory: $(Agent.TempDirectory)
- script: | - script: |
$(Agent.TempDirectory)/dotnet/dotnet tool install BinLogToSln --version $(SourceIndexPackageVersion) --add-source $(SourceIndexPackageSource) --tool-path $(Agent.TempDirectory)/.source-index/tools $(Agent.TempDirectory)/dotnet/dotnet tool install BinLogToSln --version $(sourceIndexProcessBinlogPackageVersion) --add-source $(SourceIndexPackageSource) --tool-path $(Agent.TempDirectory)/.source-index/tools
$(Agent.TempDirectory)/dotnet/dotnet tool install UploadIndexStage1 --version $(SourceIndexPackageVersion) --add-source $(SourceIndexPackageSource) --tool-path $(Agent.TempDirectory)/.source-index/tools $(Agent.TempDirectory)/dotnet/dotnet tool install UploadIndexStage1 --version $(sourceIndexUploadPackageVersion) --add-source $(SourceIndexPackageSource) --tool-path $(Agent.TempDirectory)/.source-index/tools
displayName: Download Tools displayName: Download Tools
# Set working directory to temp directory so 'dotnet' doesn't try to use global.json and use the repo's sdk. # Set working directory to temp directory so 'dotnet' doesn't try to use global.json and use the repo's sdk.
workingDirectory: $(Agent.TempDirectory) workingDirectory: $(Agent.TempDirectory)
@ -61,7 +62,24 @@ jobs:
displayName: Process Binlog into indexable sln displayName: Process Binlog into indexable sln
- ${{ if and(eq(parameters.runAsPublic, 'false'), ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}: - ${{ if and(eq(parameters.runAsPublic, 'false'), ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}:
- script: $(Agent.TempDirectory)/.source-index/tools/UploadIndexStage1 -i .source-index/stage1output -n $(Build.Repository.Name) - task: AzureCLI@2
displayName: Upload stage1 artifacts to source index displayName: Get stage 1 auth token
env: inputs:
BLOB_CONTAINER_URL: $(source-dot-net-stage1-blob-container-url) azureSubscription: 'SourceDotNet Stage1 Publish'
addSpnToEnvironment: true
scriptType: 'ps'
scriptLocation: 'inlineScript'
inlineScript: |
echo "##vso[task.setvariable variable=ARM_CLIENT_ID]$env:servicePrincipalId"
echo "##vso[task.setvariable variable=ARM_ID_TOKEN]$env:idToken"
echo "##vso[task.setvariable variable=ARM_TENANT_ID]$env:tenantId"
- script: |
echo "Client ID: $(ARM_CLIENT_ID)"
echo "ID Token: $(ARM_ID_TOKEN)"
echo "Tenant ID: $(ARM_TENANT_ID)"
az login --service-principal -u $(ARM_CLIENT_ID) --tenant $(ARM_TENANT_ID) --allow-no-subscriptions --federated-token $(ARM_ID_TOKEN)
displayName: "Login to Azure"
- script: $(Agent.TempDirectory)/.source-index/tools/UploadIndexStage1 -i .source-index/stage1output -n $(Build.Repository.Name) -s netsourceindexstage1 -b stage1
displayName: Upload stage1 artifacts to source index

View file

@ -4,7 +4,7 @@ parameters:
steps: steps:
- ${{ if eq(parameters.disableComponentGovernance, 'true') }}: - ${{ if eq(parameters.disableComponentGovernance, 'true') }}:
- script: "echo ##vso[task.setvariable variable=skipComponentGovernanceDetection]true" - script: echo "##vso[task.setvariable variable=skipComponentGovernanceDetection]true"
displayName: Set skipComponentGovernanceDetection variable displayName: Set skipComponentGovernanceDetection variable
- ${{ if ne(parameters.disableComponentGovernance, 'true') }}: - ${{ if ne(parameters.disableComponentGovernance, 'true') }}:
- task: ComponentGovernanceComponentDetection@0 - task: ComponentGovernanceComponentDetection@0

View file

@ -5,7 +5,7 @@
# IgnoreDirectories - Directories to ignore for SBOM generation. This will be passed through to the CG component detector. # IgnoreDirectories - Directories to ignore for SBOM generation. This will be passed through to the CG component detector.
parameters: parameters:
PackageVersion: 7.0.0 PackageVersion: 8.0.0
BuildDropPath: '$(Build.SourcesDirectory)/artifacts' BuildDropPath: '$(Build.SourcesDirectory)/artifacts'
PackageName: '.NET' PackageName: '.NET'
ManifestDirPath: $(Build.ArtifactStagingDirectory)/sbom ManifestDirPath: $(Build.ArtifactStagingDirectory)/sbom

View file

@ -5,7 +5,7 @@ set -euo pipefail
# Install instructions: https://scancode-toolkit.readthedocs.io/en/latest/getting-started/install.html#installation-as-a-library-via-pip # Install instructions: https://scancode-toolkit.readthedocs.io/en/latest/getting-started/install.html#installation-as-a-library-via-pip
# See latest release at https://github.com/nexB/scancode-toolkit/releases # See latest release at https://github.com/nexB/scancode-toolkit/releases
SCANCODE_VERSION="32.0.8" SCANCODE_VERSION="32.1.0"
pyEnvPath="/tmp/scancode-env" pyEnvPath="/tmp/scancode-env"
python3 -m venv $pyEnvPath python3 -m venv $pyEnvPath

View file

@ -1,64 +0,0 @@
schedules:
- cron: "0 11 * * 1-5"
displayName: Run on weekdays at 11am UTC
branches:
include:
- main
- release/*.0.1xx*
- internal/release/*.0.1xx*
pr: none
trigger: none
pool:
name: NetCore1ESPool-Svc-Internal
demands: ImageOverride -equals 1es-ubuntu-2004
parameters:
- name: dotnetDotnetRunId
displayName: 'Specific dotnet-dotnet run ID number (e.g `2108850`)'
type: string
default: ' '
jobs:
- template: templates/jobs/sdk-diff-tests.yml
parameters:
buildName: CentOSStream8_Offline_MsftSdk
targetRid: centos.8-x64
architecture: x64
dotnetDotnetRunId: ${{ parameters.dotnetDotnetRunId }}
- template: templates/jobs/sdk-diff-tests.yml
parameters:
buildName: CentOSStream9_Offline_MsftSdk
targetRid: centos.9-x64
architecture: x64
dotnetDotnetRunId: ${{ parameters.dotnetDotnetRunId }}
- template: templates/jobs/sdk-diff-tests.yml
parameters:
buildName: Alpine317_Offline_MsftSdk
targetRid: alpine.3.17-x64
architecture: x64
dotnetDotnetRunId: ${{ parameters.dotnetDotnetRunId }}
- template: templates/jobs/sdk-diff-tests.yml
parameters:
buildName: Fedora38_Offline_MsftSdk
targetRid: fedora.38-x64
architecture: x64
dotnetDotnetRunId: ${{ parameters.dotnetDotnetRunId }}
- template: templates/jobs/sdk-diff-tests.yml
parameters:
buildName: Ubuntu2204_Offline_MsftSdk
targetRid: ubuntu.22.04-x64
architecture: x64
dotnetDotnetRunId: ${{ parameters.dotnetDotnetRunId }}
- template: templates/jobs/sdk-diff-tests.yml
parameters:
buildName: Ubuntu2204Arm64_Offline_MsftSdk
targetRid: ubuntu.22.04-arm64
architecture: arm64
dotnetDotnetRunId: ${{ parameters.dotnetDotnetRunId }}

View file

@ -67,7 +67,10 @@ jobs:
condition: succeededOrFailed() condition: succeededOrFailed()
dependsOn: ${{ parameters.reuseBuildArtifactsFrom }}_${{ parameters.architecture }} dependsOn: ${{ parameters.reuseBuildArtifactsFrom }}_${{ parameters.architecture }}
variables: variables:
- template: /eng/common/templates/variables/pool-providers.yml - ${{ if eq(variables['System.TeamProject'], 'public') }}:
- template: /eng/common/templates/variables/pool-providers.yml
- ${{ else }}:
- template: /eng/common/templates-official/variables/pool-providers.yml
- ${{ if eq(variables['System.TeamProject'], 'internal') }}: - ${{ if eq(variables['System.TeamProject'], 'internal') }}:
- group: AzureDevOps-Artifact-Feeds-Pats - group: AzureDevOps-Artifact-Feeds-Pats
- ${{ if and(not(parameters.isBuiltFromVmr), eq(variables['System.TeamProject'], 'internal'), not(startswith(parameters.vmrBranch, 'internal/release/')), not(eq(variables['Build.Reason'], 'PullRequest'))) }}: - ${{ if and(not(parameters.isBuiltFromVmr), eq(variables['System.TeamProject'], 'internal'), not(startswith(parameters.vmrBranch, 'internal/release/')), not(eq(variables['Build.Reason'], 'PullRequest'))) }}:
@ -87,8 +90,21 @@ jobs:
- name: sourcesPath - name: sourcesPath
value: ${{ parameters.vmrPath }} value: ${{ parameters.vmrPath }}
templateContext:
outputs:
- output: pipelineArtifact
displayName: 'Publish BuildLogs'
condition: succeededOrFailed()
targetPath: '$(Build.StagingDirectory)/BuildLogs'
artifactName: $(Agent.JobName)_BuildLogs_Attempt$(System.JobAttempt)
- output: pipelineArtifact
displayName: 'Publish Artifacts'
condition: succeededOrFailed()
targetPath: '${{ variables.sourcesPath }}/artifacts/${{ parameters.architecture }}/Release/'
artifactName: $(Agent.JobName)_Artifacts
steps: steps:
- template: ../steps/vmr-prepare.yml - template: ../steps/vmr-prepare.yml@self
parameters: parameters:
${{ if eq(variables['Build.Reason'], 'PullRequest') }}: ${{ if eq(variables['Build.Reason'], 'PullRequest') }}:
vmrBranch: $(System.PullRequest.TargetBranch) vmrBranch: $(System.PullRequest.TargetBranch)
@ -99,7 +115,7 @@ jobs:
# Synchronize new content in the VMR during PRs (we expect this to come # Synchronize new content in the VMR during PRs (we expect this to come
- ${{ if and(not(parameters.isBuiltFromVmr), eq(variables['Build.Reason'], 'PullRequest')) }}: - ${{ if and(not(parameters.isBuiltFromVmr), eq(variables['Build.Reason'], 'PullRequest')) }}:
- template: ../steps/vmr-pull-updates.yml - template: ../steps/vmr-pull-updates.yml@self
parameters: parameters:
vmrPath: ${{ parameters.vmrPath }} vmrPath: ${{ parameters.vmrPath }}
vmrBranch: ${{ parameters.vmrBranch }} vmrBranch: ${{ parameters.vmrBranch }}
@ -148,8 +164,8 @@ jobs:
notFoundMessage="No source-built SDK found to download..." notFoundMessage="No source-built SDK found to download..."
echo "Looking for source-built SDK to download..." echo "Looking for source-built SDK to download..."
archiveUrlLine=`grep -m 1 "<PrivateSourceBuiltSdkUrl_CentOS8Stream>" "$packageVersionsPath" || :` archiveUrlLine=`grep -m 1 "<PrivateSourceBuiltSdkUrl>" "$packageVersionsPath" || :`
urlPattern="<PrivateSourceBuiltSdkUrl_CentOS8Stream>(.*)</PrivateSourceBuiltSdkUrl_CentOS8Stream>" urlPattern="<PrivateSourceBuiltSdkUrl>(.*)</PrivateSourceBuiltSdkUrl>"
if [[ $archiveUrlLine =~ $urlPattern ]]; then if [[ $archiveUrlLine =~ $urlPattern ]]; then
archiveUrl="${BASH_REMATCH[1]}" archiveUrl="${BASH_REMATCH[1]}"
@ -251,11 +267,18 @@ jobs:
continueOnError: true continueOnError: true
condition: succeededOrFailed() condition: succeededOrFailed()
- publish: '$(Build.StagingDirectory)/BuildLogs' - ${{ if eq(variables['System.TeamProject'], 'public') }}:
artifact: $(Agent.JobName)_BuildLogs_Attempt$(System.JobAttempt) - publish: '$(Build.StagingDirectory)/BuildLogs'
displayName: Publish BuildLogs artifact: $(Agent.JobName)_BuildLogs_Attempt$(System.JobAttempt)
continueOnError: true displayName: Publish BuildLogs
condition: succeededOrFailed() continueOnError: true
condition: succeededOrFailed()
- publish: '${{ variables.sourcesPath }}/artifacts/${{ parameters.architecture }}/Release/'
artifact: $(Agent.JobName)_Artifacts
displayName: Publish Artifacts
condition: succeededOrFailed()
continueOnError: true
- task: PublishTestResults@2 - task: PublishTestResults@2
displayName: Publish Test Results displayName: Publish Test Results
@ -268,9 +291,3 @@ jobs:
mergeTestResults: true mergeTestResults: true
publishRunAttachments: true publishRunAttachments: true
testRunTitle: SourceBuild_SmokeTests_$(Agent.JobName) testRunTitle: SourceBuild_SmokeTests_$(Agent.JobName)
- publish: '${{ variables.sourcesPath }}/artifacts/${{ parameters.architecture }}/Release/'
artifact: $(Agent.JobName)_Artifacts
displayName: Publish Artifacts
condition: succeededOrFailed()
continueOnError: true

View file

@ -19,10 +19,13 @@ parameters:
jobs: jobs:
- job: Synchronize_VMR - job: Synchronize_VMR
displayName: Synchronize dotnet/dotnet displayName: Synchronize VMR's ${{ parameters.vmrBranch }}
timeoutInMinutes: 120 timeoutInMinutes: 120
variables: variables:
- template: /eng/common/templates/variables/pool-providers.yml - ${{ if eq(variables['System.TeamProject'], 'public') }}:
- template: /eng/common/templates/variables/pool-providers.yml
- ${{ else }}:
- template: /eng/common/templates-official/variables/pool-providers.yml
- name: vmrPath - name: vmrPath
value: $(Agent.BuildDirectory)/vmr value: $(Agent.BuildDirectory)/vmr
- ${{ if not(parameters.noPush) }}: - ${{ if not(parameters.noPush) }}:
@ -36,14 +39,16 @@ jobs:
- group: DotNetBot-AzDO-PAT - group: DotNetBot-AzDO-PAT
- name: vmrInternalUrl - name: vmrInternalUrl
value: https://dnceng@dev.azure.com/dnceng/internal/_git/dotnet-dotnet value: https://dnceng@dev.azure.com/dnceng/internal/_git/dotnet-dotnet
pool: pool:
${{ if eq(variables['System.TeamProject'], 'public') }}: ${{ if eq(variables['System.TeamProject'], 'public') }}:
name: $(DncEngPublicBuildPool) name: $(DncEngPublicBuildPool)
demands: ImageOverride -equals Build.Ubuntu.2004.Amd64.Open image: 1es-ubuntu-2004-open
${{ if eq(variables['System.TeamProject'], 'internal') }}: os: linux
${{ else }}:
name: $(DncEngInternalBuildPool) name: $(DncEngInternalBuildPool)
demands: ImageOverride -equals Build.Ubuntu.2004.Amd64 demands: ImageOverride -equals 1es-ubuntu-2004
os: linux
steps: steps:
- template: ../steps/vmr-prepare.yml - template: ../steps/vmr-prepare.yml
@ -57,7 +62,6 @@ jobs:
vmrBranch: ${{ parameters.vmrBranch }} vmrBranch: ${{ parameters.vmrBranch }}
targetRef: ${{ parameters.targetRef }} targetRef: ${{ parameters.targetRef }}
- ${{ if and(not(parameters.noPush), not(in(variables['Build.Reason'], 'PullRequest')), eq(variables['System.TeamProject'], 'internal')) }}: - ${{ 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 # 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'), startsWith(parameters.vmrBranch, 'release/')) }}:
@ -83,4 +87,4 @@ jobs:
--azdev-pat '$(dn-bot-dnceng-build-rw-code-rw)' --azdev-pat '$(dn-bot-dnceng-build-rw-code-rw)'
--verbose --verbose
displayName: Push changes to dotnet-dotnet (internal) displayName: Push changes to dotnet-dotnet (internal)
workingDirectory: $(Agent.BuildDirectory)/installer workingDirectory: $(Agent.BuildDirectory)/installer

View file

@ -2,38 +2,40 @@
### If run in a PR, new changes are applied to a local copy of the VMR, then it is source-built and tested ### If run in a PR, new changes are applied to a local copy of the VMR, then it is source-built and tested
parameters: parameters:
dependsOn: [] - name: dependsOn
condition: always() type: object
default: []
- name: condition
type: string
default: always()
# Branch of the VMR to use (to push to for internal builds) # Branch of the VMR to use (to push to for internal builds)
vmrBranch: $(Build.SourceBranch) - name: vmrBranch
type: string
default: $(Build.SourceBranch)
# True when build is running from dotnet/dotnet directly # True when build is running from dotnet/dotnet directly
isBuiltFromVmr: - name: isBuiltFromVmr
type: boolean
default: false
# The following parameters aren't expected to be passed in rather they are used for encapsulation # These are not expected to be passed it but rather just object variables reused below
# ----------------------------------------------------------------------------------------------- - name: pool_Linux
alpine317Container: mcr.microsoft.com/dotnet-buildtools/prereqs:alpine-3.17 type: object
centOSStream8Container: mcr.microsoft.com/dotnet-buildtools/prereqs:centos-stream8 default:
centOSStream9Container: mcr.microsoft.com/dotnet-buildtools/prereqs:centos-stream9 name: $(defaultPoolName)
fedora38Container: mcr.microsoft.com/dotnet-buildtools/prereqs:fedora-38 image: $(poolImage_Linux)
ubuntu2204Container: mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-22.04 demands: ImageOverride -equals $(poolImage_Linux)
ubuntu2204ArmContainer: mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-22.04-arm64 os: linux
# Internal builds - name: pool_LinuxArm64
poolInternalAmd64: type: object
name: NetCore1ESPool-Svc-Internal default:
demands: ImageOverride -equals Build.Ubuntu.1804.Amd64 name: $(poolName_LinuxArm64)
poolInternalAmd64PR: image: $(poolImage_LinuxArm64)
name: NetCore1ESPool-Internal-XL demands: ImageOverride -equals $(poolImage_LinuxArm64)
demands: ImageOverride -equals Build.Ubuntu.1804.Amd64 hostArchitecture: Arm64
poolInternalArm64: os: linux
name: Docker-Linux-Arm-Internal
# Public builds / PRs
poolPublicAmd64:
name: NetCore-Public-XL
demands: ImageOverride -equals Build.Ubuntu.1804.Amd64.Open
stages: stages:
- stage: VMR_Source_Build - stage: VMR_Source_Build
@ -41,23 +43,7 @@ stages:
dependsOn: ${{ parameters.dependsOn }} dependsOn: ${{ parameters.dependsOn }}
condition: ${{ parameters.condition }} condition: ${{ parameters.condition }}
variables: variables:
- ${{ if eq(variables['System.TeamProject'], 'public') }}: - template: ../variables/vmr-build.yml@self
- 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, '') }}: - ${{ if ne(parameters.vmrBranch, '') }}:
- name: VmrBranch - name: VmrBranch
value: ${{ parameters.vmrBranch }} value: ${{ parameters.vmrBranch }}
@ -69,17 +55,15 @@ stages:
# PR and CI legs ------------------------------------ # PR and CI legs ------------------------------------
- template: ../jobs/vmr-build.yml - template: ../jobs/vmr-build.yml@self
parameters: parameters:
# Changing the build name requires updating the referenced name in the source-build-sdk-diff-tests.yml pipeline # Changing the build name requires updating the referenced name in the source-build-sdk-diff-tests.yml pipeline
buildName: CentOSStream8_Online_MsftSdk buildName: ${{ format('{0}_Online_MsftSdk', variables.centOSStreamName) }}
isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }} isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }}
vmrBranch: ${{ variables.VmrBranch }} vmrBranch: ${{ variables.VmrBranch }}
architecture: x64 architecture: x64
pool: pool: ${{ parameters.pool_Linux }}
name: ${{ variables.defaultPoolName }} container: ${{ variables.centOSStreamContainer }}
demands: ${{ variables.defaultPoolDemands }}
container: ${{ parameters.centOSStream8Container }}
buildFromArchive: false # 🚫 buildFromArchive: false # 🚫
enablePoison: false # 🚫 enablePoison: false # 🚫
excludeOmniSharpTests: true # ✅ excludeOmniSharpTests: true # ✅
@ -87,17 +71,15 @@ stages:
useMonoRuntime: false # 🚫 useMonoRuntime: false # 🚫
withPreviousSDK: false # 🚫 withPreviousSDK: false # 🚫
- template: ../jobs/vmr-build.yml - template: ../jobs/vmr-build.yml@self
parameters: parameters:
# Changing the build name requires updating the referenced name in the source-build-sdk-diff-tests.yml pipeline # Changing the build name requires updating the referenced name in the source-build-sdk-diff-tests.yml pipeline
buildName: CentOSStream8_Offline_MsftSdk buildName: ${{ format('{0}_Offline_MsftSdk', variables.centOSStreamName) }}
isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }} isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }}
vmrBranch: ${{ variables.VmrBranch }} vmrBranch: ${{ variables.VmrBranch }}
architecture: x64 architecture: x64
pool: pool: ${{ parameters.pool_Linux }}
name: ${{ variables.defaultPoolName }} container: ${{ variables.centOSStreamContainer }}
demands: ${{ variables.defaultPoolDemands }}
container: ${{ parameters.centOSStream8Container }}
buildFromArchive: true # ✅ buildFromArchive: true # ✅
enablePoison: false # 🚫 enablePoison: false # 🚫
excludeOmniSharpTests: true # ✅ excludeOmniSharpTests: true # ✅
@ -109,17 +91,15 @@ stages:
# CI - Stage 1 x64 legs ------------------------------------ # CI - Stage 1 x64 legs ------------------------------------
- template: ../jobs/vmr-build.yml - template: ../jobs/vmr-build.yml@self
parameters: parameters:
# Changing the build name requires updating the referenced name in the source-build-sdk-diff-tests.yml pipeline # Changing the build name requires updating the referenced name in the source-build-sdk-diff-tests.yml pipeline
buildName: Alpine317_Offline_MsftSdk buildName: ${{ format('{0}_Offline_MsftSdk', variables.alpineName) }}
isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }} isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }}
vmrBranch: ${{ variables.VmrBranch }} vmrBranch: ${{ variables.VmrBranch }}
architecture: x64 architecture: x64
pool: pool: ${{ parameters.pool_Linux }}
name: ${{ variables.defaultPoolName }} container: ${{ variables.alpineContainer }}
demands: ${{ variables.defaultPoolDemands }}
container: ${{ parameters.alpine317Container }}
buildFromArchive: false # ✅ buildFromArchive: false # ✅
enablePoison: false # 🚫 enablePoison: false # 🚫
excludeOmniSharpTests: true # ✅ excludeOmniSharpTests: true # ✅
@ -127,17 +107,15 @@ stages:
useMonoRuntime: false # 🚫 useMonoRuntime: false # 🚫
withPreviousSDK: false # 🚫 withPreviousSDK: false # 🚫
- template: ../jobs/vmr-build.yml - template: ../jobs/vmr-build.yml@self
parameters: parameters:
# Changing the build name requires updating the referenced name in the source-build-sdk-diff-tests.yml pipeline # Changing the build name requires updating the referenced name in the source-build-sdk-diff-tests.yml pipeline
buildName: CentOSStream8_Online_PreviousSourceBuiltSdk buildName: ${{ format('{0}_Online_PreviousSourceBuiltSdk', variables.centOSStreamName) }}
isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }} isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }}
vmrBranch: ${{ variables.VmrBranch }} vmrBranch: ${{ variables.VmrBranch }}
architecture: x64 architecture: x64
pool: pool: ${{ parameters.pool_Linux }}
name: ${{ variables.defaultPoolName }} container: ${{ variables.centOSStreamContainer }}
demands: ${{ variables.defaultPoolDemands }}
container: ${{ parameters.centOSStream8Container }}
buildFromArchive: false # 🚫 buildFromArchive: false # 🚫
enablePoison: false # 🚫 enablePoison: false # 🚫
excludeOmniSharpTests: true # ✅ excludeOmniSharpTests: true # ✅
@ -145,17 +123,15 @@ stages:
useMonoRuntime: false # 🚫 useMonoRuntime: false # 🚫
withPreviousSDK: true # ✅ withPreviousSDK: true # ✅
- template: ../jobs/vmr-build.yml - template: ../jobs/vmr-build.yml@self
parameters: parameters:
# Changing the build name requires updating the referenced name in the source-build-sdk-diff-tests.yml pipeline # Changing the build name requires updating the referenced name in the source-build-sdk-diff-tests.yml pipeline
buildName: CentOSStream8_Offline_PreviousSourceBuiltSdk buildName: ${{ format('{0}_Offline_PreviousSourceBuiltSdk', variables.centOSStreamName) }}
isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }} isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }}
vmrBranch: ${{ variables.VmrBranch }} vmrBranch: ${{ variables.VmrBranch }}
architecture: x64 architecture: x64
pool: pool: ${{ parameters.pool_Linux }}
name: ${{ variables.defaultPoolName }} container: ${{ variables.centOSStreamContainer }}
demands: ${{ variables.defaultPoolDemands }}
container: ${{ parameters.centOSStream8Container }}
buildFromArchive: false # 🚫 buildFromArchive: false # 🚫
enablePoison: false # 🚫 enablePoison: false # 🚫
excludeOmniSharpTests: true # ✅ excludeOmniSharpTests: true # ✅
@ -163,17 +139,15 @@ stages:
useMonoRuntime: false # 🚫 useMonoRuntime: false # 🚫
withPreviousSDK: true # ✅ withPreviousSDK: true # ✅
- template: ../jobs/vmr-build.yml - template: ../jobs/vmr-build.yml@self
parameters: parameters:
# Changing the build name requires updating the referenced name in the source-build-sdk-diff-tests.yml pipeline # Changing the build name requires updating the referenced name in the source-build-sdk-diff-tests.yml pipeline
buildName: CentOSStream8_Mono_Offline_MsftSdk buildName: ${{ format('{0}_Mono_Offline_MsftSdk', variables.centOSStreamName) }}
isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }} isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }}
vmrBranch: ${{ variables.VmrBranch }} vmrBranch: ${{ variables.VmrBranch }}
architecture: x64 architecture: x64
pool: pool: ${{ parameters.pool_Linux }}
name: ${{ variables.defaultPoolName }} container: ${{ variables.centOSStreamContainer }}
demands: ${{ variables.defaultPoolDemands }}
container: ${{ parameters.centOSStream8Container }}
buildFromArchive: true # ✅ buildFromArchive: true # ✅
enablePoison: false # 🚫 enablePoison: false # 🚫
excludeOmniSharpTests: true # ✅ excludeOmniSharpTests: true # ✅
@ -181,35 +155,15 @@ stages:
useMonoRuntime: true # ✅ useMonoRuntime: true # ✅
withPreviousSDK: false # 🚫 withPreviousSDK: false # 🚫
- template: ../jobs/vmr-build.yml - template: ../jobs/vmr-build.yml@self
parameters: parameters:
# Changing the build name requires updating the referenced name in the source-build-sdk-diff-tests.yml pipeline # Changing the build name requires updating the referenced name in the source-build-sdk-diff-tests.yml pipeline
buildName: CentOSStream9_Offline_MsftSdk buildName: ${{ format('{0}_Offline_MsftSdk', variables.fedoraName) }}
isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }} isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }}
vmrBranch: ${{ variables.VmrBranch }} vmrBranch: ${{ variables.VmrBranch }}
architecture: x64 architecture: x64
pool: pool: ${{ parameters.pool_Linux }}
name: ${{ variables.defaultPoolName }} container: ${{ variables.fedoraContainer }}
demands: ${{ variables.defaultPoolDemands }}
container: ${{ parameters.centOSStream9Container }}
buildFromArchive: true # ✅
enablePoison: false # 🚫
excludeOmniSharpTests: false # 🚫
runOnline: false # 🚫
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
buildName: Fedora38_Offline_MsftSdk
isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }}
vmrBranch: ${{ variables.VmrBranch }}
architecture: x64
pool:
name: ${{ variables.defaultPoolName }}
demands: ${{ variables.defaultPoolDemands }}
container: ${{ parameters.fedora38Container }}
buildFromArchive: true # ✅ buildFromArchive: true # ✅
enablePoison: true # ✅ enablePoison: true # ✅
excludeOmniSharpTests: false # 🚫 excludeOmniSharpTests: false # 🚫
@ -217,17 +171,15 @@ stages:
useMonoRuntime: false # 🚫 useMonoRuntime: false # 🚫
withPreviousSDK: false # 🚫 withPreviousSDK: false # 🚫
- template: ../jobs/vmr-build.yml - template: ../jobs/vmr-build.yml@self
parameters: parameters:
# Changing the build name requires updating the referenced name in the source-build-sdk-diff-tests.yml pipeline # Changing the build name requires updating the referenced name in the source-build-sdk-diff-tests.yml pipeline
buildName: Ubuntu2204_Offline_MsftSdk buildName: ${{ format('{0}_Offline_MsftSdk', variables.ubuntuName) }}
isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }} isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }}
vmrBranch: ${{ variables.VmrBranch }} vmrBranch: ${{ variables.VmrBranch }}
architecture: x64 architecture: x64
pool: pool: ${{ parameters.pool_Linux }}
name: ${{ variables.defaultPoolName }} container: ${{ variables.ubuntuContainer }}
demands: ${{ variables.defaultPoolDemands }}
container: ${{ parameters.ubuntu2204Container }}
buildFromArchive: false # 🚫 buildFromArchive: false # 🚫
enablePoison: false # 🚫 enablePoison: false # 🚫
excludeOmniSharpTests: false # 🚫 excludeOmniSharpTests: false # 🚫
@ -237,15 +189,15 @@ stages:
# CI - Stage 1 arm64 Legs ------------------------------------ # CI - Stage 1 arm64 Legs ------------------------------------
- template: ../jobs/vmr-build.yml - template: ../jobs/vmr-build.yml@self
parameters: parameters:
# Changing the build name requires updating the referenced name in the source-build-sdk-diff-tests.yml pipeline # Changing the build name requires updating the referenced name in the source-build-sdk-diff-tests.yml pipeline
buildName: Ubuntu2204Arm64_Offline_MsftSdk buildName: ${{ format('{0}Arm64_Offline_MsftSdk', variables.ubuntuName) }}
isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }} isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }}
vmrBranch: ${{ variables.VmrBranch }} vmrBranch: ${{ variables.VmrBranch }}
architecture: arm64 architecture: arm64
pool: ${{ parameters.poolInternalArm64 }} pool: ${{ parameters.pool_LinuxArm64 }}
container: ${{ parameters.ubuntu2204ArmContainer }} container: ${{ variables.ubuntuArmContainer }}
buildFromArchive: false # 🚫 buildFromArchive: false # 🚫
enablePoison: false # 🚫 enablePoison: false # 🚫
excludeOmniSharpTests: false # 🚫 excludeOmniSharpTests: false # 🚫
@ -255,40 +207,36 @@ stages:
# CI - Stage 2 x64 Legs ------------------------------------ # CI - Stage 2 x64 Legs ------------------------------------
- template: ../jobs/vmr-build.yml - template: ../jobs/vmr-build.yml@self
parameters: parameters:
# Changing the build name requires updating the referenced name in the source-build-sdk-diff-tests.yml pipeline # Changing the build name requires updating the referenced name in the source-build-sdk-diff-tests.yml pipeline
buildName: CentOSStream8_Online_CurrentSourceBuiltSdk buildName: ${{ format('{0}_Online_CurrentSourceBuiltSdk', variables.centOSStreamName) }}
isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }} isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }}
vmrBranch: ${{ variables.VmrBranch }} vmrBranch: ${{ variables.VmrBranch }}
architecture: x64 architecture: x64
pool: pool: ${{ parameters.pool_Linux }}
name: ${{ variables.defaultPoolName }} container: ${{ variables.centOSStreamContainer }}
demands: ${{ variables.defaultPoolDemands }}
container: ${{ parameters.centOSStream8Container }}
buildFromArchive: false # 🚫 buildFromArchive: false # 🚫
enablePoison: false # 🚫 enablePoison: false # 🚫
excludeOmniSharpTests: true # ✅ excludeOmniSharpTests: true # ✅
runOnline: false # 🚫 runOnline: false # 🚫
useMonoRuntime: false # 🚫 useMonoRuntime: false # 🚫
withPreviousSDK: false # 🚫 withPreviousSDK: false # 🚫
reuseBuildArtifactsFrom: CentOSStream8_Online_MsftSdk reuseBuildArtifactsFrom: ${{ format('{0}_Online_MsftSdk', variables.centOSStreamName) }}
- template: ../jobs/vmr-build.yml - template: ../jobs/vmr-build.yml@self
parameters: parameters:
# Changing the build name requires updating the referenced name in the source-build-sdk-diff-tests.yml pipeline # Changing the build name requires updating the referenced name in the source-build-sdk-diff-tests.yml pipeline
buildName: Fedora38_Offline_CurrentSourceBuiltSdk buildName: ${{ format('{0}_Offline_CurrentSourceBuiltSdk', variables.fedoraName) }}
isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }} isBuiltFromVmr: ${{ parameters.isBuiltFromVmr }}
vmrBranch: ${{ variables.VmrBranch }} vmrBranch: ${{ variables.VmrBranch }}
architecture: x64 architecture: x64
pool: pool: ${{ parameters.pool_Linux }}
name: ${{ variables.defaultPoolName }} container: ${{ variables.fedoraContainer }}
demands: ${{ variables.defaultPoolDemands }}
container: ${{ parameters.fedora38Container }}
buildFromArchive: false # 🚫 buildFromArchive: false # 🚫
enablePoison: false # 🚫 enablePoison: false # 🚫
excludeOmniSharpTests: false # 🚫 excludeOmniSharpTests: false # 🚫
runOnline: false # 🚫 runOnline: false # 🚫
useMonoRuntime: false # 🚫 useMonoRuntime: false # 🚫
withPreviousSDK: false # 🚫 withPreviousSDK: false # 🚫
reuseBuildArtifactsFrom: Fedora38_Offline_MsftSdk reuseBuildArtifactsFrom: ${{ format('{0}_Offline_MsftSdk', variables.fedoraName) }}

View file

@ -0,0 +1,54 @@
variables:
- name: alpineContainer
value: mcr.microsoft.com/dotnet-buildtools/prereqs:alpine-3.19-WithNode
- name: centOSStreamContainer
value: mcr.microsoft.com/dotnet-buildtools/prereqs:centos-stream9
- name: fedoraContainer
value: mcr.microsoft.com/dotnet-buildtools/prereqs:fedora-40
- name: ubuntuContainer
value: mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-22.04
- name: ubuntuArmContainer
value: mcr.microsoft.com/dotnet-buildtools/prereqs:ubuntu-22.04-arm64
- name: alpineName
value: Alpine319
- name: centOSStreamName
value: CentOSStream9
- name: fedoraName
value: Fedora40
- name: ubuntuName
value: Ubuntu2204
- name: alpineX64Rid
value: alpine.3.19-x64
- name: centOSStreamX64Rid
value: centos.9-x64
- name: fedoraX64Rid
value: fedora.40-x64
- name: ubuntux64Rid
value: ubuntu.22.04-x64
- name: ubuntuArm64Rid
value: ubuntu.22.04-arm64
- ${{ if eq(variables['System.TeamProject'], 'public') }}:
- name: defaultPoolName
value: NetCore-Public-XL
- name: poolImage_Linux
value: 1es-ubuntu-2004-open
- name: poolImage_LinuxArm64
value: Mariner-2-Docker-ARM64
- name: poolName_LinuxArm64
value: Docker-Linux-Arm-Public
- ${{ else }}:
- ${{ if in(variables['Build.Reason'], 'PullRequest') }}:
- name: defaultPoolName
value: NetCore1ESPool-Internal-XL
- ${{ else }}:
- name: defaultPoolName
value: $(DncEngInternalBuildPool)
- name: poolImage_Linux
value: 1es-ubuntu-2204
- name: poolImage_LinuxArm64
value: Mariner-2-Docker-ARM64
- name: poolName_LinuxArm64
value: Docker-Linux-Arm-Internal

View file

@ -23,7 +23,7 @@ variables:
value: ${{ replace(parameters.vmrBranch, ' ', '') }} value: ${{ replace(parameters.vmrBranch, ' ', '') }}
- ${{ else }}: - ${{ else }}:
- name: VmrBranch - name: VmrBranch
value: release/8.0.1xx value: internal/release/8.0.1xx
resources: resources:
repositories: repositories:

View file

@ -0,0 +1,56 @@
# This is the non-1ES PR pipeline source-building the VMR used in installer PRs
# https://dev.azure.com/dnceng-public/public/_build?definitionId=233
trigger: none
pr:
branches:
include:
- main
- release/*
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: release/8.0.1xx
resources:
repositories:
- repository: vmr
type: github
name: dotnet/dotnet
endpoint: dotnet
ref: $(VmrBranch)
stages:
# You can temporarily disable the VMR Build stage by setting the disableVmrBuild variable
- ${{ if not(parameters.disableVmrBuild) }}:
- template: templates/stages/vmr-build.yml
parameters:
vmrBranch: ${{ variables.VmrBranch }}
isBuiltFromVmr: false
# 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

View file

@ -17,21 +17,48 @@ resources:
name: dotnet-dotnet name: dotnet-dotnet
ref: $(Build.SourceBranch) ref: $(Build.SourceBranch)
- repository: 1ESPipelineTemplates
type: git
name: 1ESPipelineTemplates/1ESPipelineTemplates
ref: refs/tags/release
parameters: parameters:
- name: vmrBranch - name: vmrBranch
displayName: dotnet-dotnet branch to push to displayName: dotnet-dotnet branch to push to
type: string type: string
default: ' ' default: ' '
variables: variables:
- template: /eng/common/templates-official/variables/pool-providers.yml@self
- ${{ if ne(parameters.vmrBranch, ' ') }}: - ${{ if ne(parameters.vmrBranch, ' ') }}:
- name: VmrBranch - name: VmrBranch
value: ${{ replace(parameters.vmrBranch, ' ', '') }} value: ${{ replace(parameters.vmrBranch, ' ', '') }}
- ${{ else }}: - ${{ else }}:
- name: VmrBranch - name: VmrBranch
value: ${{ replace(replace(variables['Build.SourceBranch'], 'refs/heads/', ''), 'refs/pull/', '') }} value: ${{ replace(replace(variables['Build.SourceBranch'], 'refs/heads/', ''), 'refs/pull/', '') }}
jobs: extends:
- template: templates/jobs/vmr-synchronization.yml template: v1/1ES.Official.PipelineTemplate.yml@1ESPipelineTemplates
parameters: parameters:
vmrBranch: ${{ variables.VmrBranch }} sdl:
sourceAnalysisPool:
name: $(DncEngInternalBuildPool)
image: 1es-windows-2022
os: windows
sourceRepositoriesToScan:
exclude:
- repository: vmr
componentgovernance:
sourceScanPath: $(Agent.BuildDirectory)/vmr
ignoreDirectories: $(Agent.BuildDirectory)/vmr/src
stages:
- stage: VMRSynchronization
displayName: VMR Synchronization
jobs:
- template: /eng/pipelines/templates/jobs/vmr-synchronization.yml@self
parameters:
vmrBranch: ${{ variables.VmrBranch }}

View file

@ -19,23 +19,48 @@ resources:
endpoint: dotnet endpoint: dotnet
ref: $(Build.SourceBranch) ref: $(Build.SourceBranch)
- repository: 1ESPipelineTemplates
type: git
name: 1ESPipelineTemplates/1ESPipelineTemplates
ref: refs/tags/release
parameters: parameters:
- name: vmrBranch - name: vmrBranch
displayName: dotnet/dotnet branch to push to displayName: dotnet/dotnet branch to push to
type: string type: string
default: ' ' default: ' '
variables: variables:
- template: /eng/common/templates-official/variables/pool-providers.yml@self
- ${{ if ne(parameters.vmrBranch, ' ') }}: - ${{ if ne(parameters.vmrBranch, ' ') }}:
- name: VmrBranch - name: VmrBranch
value: ${{ replace(parameters.vmrBranch, ' ', '') }} value: ${{ replace(parameters.vmrBranch, ' ', '') }}
- ${{ else }}: - ${{ else }}:
- name: VmrBranch - name: VmrBranch
value: ${{ replace(replace(variables['Build.SourceBranch'], 'refs/heads/', ''), 'refs/pull/', '') }} value: ${{ replace(replace(variables['Build.SourceBranch'], 'refs/heads/', ''), 'refs/pull/', '') }}
jobs: extends:
- template: /eng/pipelines/templates/jobs/vmr-synchronization.yml template: v1/1ES.Official.PipelineTemplate.yml@1ESPipelineTemplates
parameters: parameters:
vmrBranch: ${{ variables.VmrBranch }} sdl:
sourceAnalysisPool:
name: $(DncEngInternalBuildPool)
image: 1es-windows-2022
os: windows
sourceRepositoriesToScan:
exclude:
- repository: vmr
componentgovernance:
sourceScanPath: $(Agent.BuildDirectory)/vmr
ignoreDirectories: $(Agent.BuildDirectory)/vmr/src
stages:
- stage: VMRSynchronization
displayName: VMR Synchronization
jobs:
- template: /eng/pipelines/templates/jobs/vmr-synchronization.yml@self
parameters:
vmrBranch: ${{ variables.VmrBranch }}

View file

@ -11,7 +11,7 @@
"cmake": "3.21.0" "cmake": "3.21.0"
}, },
"msbuild-sdks": { "msbuild-sdks": {
"Microsoft.DotNet.Arcade.Sdk": "8.0.0-beta.24113.2", "Microsoft.DotNet.Arcade.Sdk": "8.0.0-beta.24266.3",
"Microsoft.DotNet.CMake.Sdk": "8.0.0-beta.24113.2" "Microsoft.DotNet.CMake.Sdk": "8.0.0-beta.24266.3"
} }
} }

File diff suppressed because it is too large Load diff

View file

@ -30,7 +30,7 @@
These URLs can't be composed from their base URL and version as we read them from the These URLs can't be composed from their base URL and version as we read them from the
prep.sh and pipeline scripts, outside of MSBuild. prep.sh and pipeline scripts, outside of MSBuild.
--> -->
<PrivateSourceBuiltArtifactsUrl>https://dotnetcli.azureedge.net/source-built-artifacts/assets/Private.SourceBuilt.Artifacts.8.0.102-servicing.24073.1.centos.8-x64.tar.gz</PrivateSourceBuiltArtifactsUrl> <PrivateSourceBuiltArtifactsUrl>https://dotnetcli.azureedge.net/source-built-artifacts/assets/Private.SourceBuilt.Artifacts.8.0.105-servicing.24224.1.centos.9-x64.tar.gz</PrivateSourceBuiltArtifactsUrl>
<PrivateSourceBuiltSdkUrl_CentOS8Stream>https://dotnetcli.azureedge.net/source-built-artifacts/sdks/dotnet-sdk-8.0.102-centos.8-x64.tar.gz</PrivateSourceBuiltSdkUrl_CentOS8Stream> <PrivateSourceBuiltSdkUrl>https://dotnetcli.azureedge.net/source-built-artifacts/sdks/dotnet-sdk-8.0.105-centos.9-x64.tar.gz</PrivateSourceBuiltSdkUrl>
</PropertyGroup> </PropertyGroup>
</Project> </Project>

View file

@ -15,10 +15,31 @@ pr:
- release/* - release/*
- internal/release/* - internal/release/*
stages: resources:
- ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}: repositories:
- template: templates/stages/vmr-scan.yml - repository: 1ESPipelineTemplates
type: git
name: 1ESPipelineTemplates/1ESPipelineTemplates
ref: refs/tags/release
- template: /src/installer/eng/pipelines/templates/stages/vmr-build.yml extends:
template: v1/1ES.Official.PipelineTemplate.yml@1ESPipelineTemplates
parameters: parameters:
isBuiltFromVmr: true sdl:
sourceAnalysisPool:
name: NetCore1ESPool-Internal
image: 1es-windows-2022
os: windows
baseline:
baselineFile: $(Build.SourcesDirectory)\.config\guardian\.gdnbaselines
customBuildTags:
- ES365AIMigrationTooling
stages:
- ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}:
- template: /eng/pipelines/templates/stages/vmr-scan.yml@self
- template: /src/installer/eng/pipelines/templates/stages/vmr-build.yml@self
parameters:
isBuiltFromVmr: true

View file

@ -0,0 +1,18 @@
# This is the non-1ES PR pipeline for dotnet/dotnet
# https://dev.azure.com/dnceng-public/public/_build?definitionId=240
trigger: none
pr:
branches:
include:
- main
- release/*
- internal/release/*
stages:
- ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}:
- template: templates/stages/vmr-scan.yml
- template: /src/installer/eng/pipelines/templates/stages/vmr-build.yml
parameters:
isBuiltFromVmr: true

View file

@ -0,0 +1,70 @@
schedules:
- cron: "0 11 * * 1-5"
displayName: Run on weekdays at 11am UTC
branches:
include:
- main
# Relies on dotnet-source-build being in the same repo as this pipeline
# https://learn.microsoft.com/en-us/azure/devops/pipelines/process/pipeline-triggers?view=azure-devops#branch-considerations
resources:
pipelines:
- pipeline: dotnet-source-build
source: dotnet-source-build
trigger:
branches:
include:
- release/*.0.1xx*
- internal/release/*.0.1xx*
pr: none
trigger: none
pool:
name: NetCore1ESPool-Svc-Internal
demands: ImageOverride -equals 1es-ubuntu-2004
parameters:
- name: dotnetDotnetRunId
displayName: 'Specific dotnet-dotnet run ID number (e.g `2108850`)'
type: string
default: ' '
variables:
- template: /src/installer/eng/pipelines/templates/variables/vmr-build.yml@self
jobs:
- template: templates/jobs/sdk-diff-tests.yml
parameters:
buildName: ${{ format('{0}_Offline_MsftSdk', variables.centOSStreamName) }}
targetRid: ${{ variables.centOSStreamX64Rid }}
architecture: x64
dotnetDotnetRunId: ${{ parameters.dotnetDotnetRunId }}
- template: templates/jobs/sdk-diff-tests.yml
parameters:
buildName: ${{ format('{0}_Offline_MsftSdk', variables.alpineName) }}
targetRid: ${{ variables.alpineX64Rid }}
architecture: x64
dotnetDotnetRunId: ${{ parameters.dotnetDotnetRunId }}
- template: templates/jobs/sdk-diff-tests.yml
parameters:
buildName: ${{ format('{0}_Offline_MsftSdk', variables.fedoraName) }}
targetRid: ${{ variables.fedoraX64Rid }}
architecture: x64
dotnetDotnetRunId: ${{ parameters.dotnetDotnetRunId }}
- template: templates/jobs/sdk-diff-tests.yml
parameters:
buildName: ${{ format('{0}_Offline_MsftSdk', variables.ubuntuName) }}
targetRid: ${{ variables.ubuntuX64Rid }}
architecture: x64
dotnetDotnetRunId: ${{ parameters.dotnetDotnetRunId }}
- template: templates/jobs/sdk-diff-tests.yml
parameters:
buildName: ${{ format('{0}Arm64_Offline_MsftSdk', variables.ubuntuName) }}
targetRid: ${{ variables.ubuntuArm64Rid }}
architecture: arm64
dotnetDotnetRunId: ${{ parameters.dotnetDotnetRunId }}

View file

@ -34,7 +34,7 @@ jobs:
echo "Dotnet-dotnet build: https://dev.azure.com/dnceng/internal/_build/results?buildId=$dotnet_dotnet_build&view=results" 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 --query "[?contains(@, 'installer')]" --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) 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 if [[ -z "$installer_build" ]]; then
echo "Could not find a build of installer for commit '$installer_sha'" echo "Could not find a build of installer for commit '$installer_sha'"
@ -100,7 +100,7 @@ jobs:
exit 1 exit 1
fi fi
eng/common/build.sh -bl --projects $(Build.SourcesDirectory)/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/Microsoft.DotNet.SourceBuild.SmokeTests.csproj --restore eng/common/build.sh -bl --projects $(Build.SourcesDirectory)/test/Microsoft.DotNet.SourceBuild.SmokeTests/Microsoft.DotNet.SourceBuild.SmokeTests.csproj --restore
echo "##vso[task.setvariable variable=Platform]$platform" 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=MsftSdkTarballPath]$(Pipeline.Workspace)/Artifacts/$msft_sdk_tarball_name"
@ -110,7 +110,7 @@ jobs:
- script: > - script: >
.dotnet/dotnet test .dotnet/dotnet test
$(Build.SourcesDirectory)/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/Microsoft.DotNet.SourceBuild.SmokeTests.csproj $(Build.SourcesDirectory)/test/Microsoft.DotNet.SourceBuild.SmokeTests/Microsoft.DotNet.SourceBuild.SmokeTests.csproj
--filter "Category=SdkContent" --filter "Category=SdkContent"
--logger:'trx;LogFileName=$(Agent.JobName)_SDKDiffTests.trx' --logger:'trx;LogFileName=$(Agent.JobName)_SDKDiffTests.trx'
--logger:'console;verbosity=detailed' --logger:'console;verbosity=detailed'
@ -137,7 +137,6 @@ jobs:
find artifacts/ -type f -name "BuildTests*.binlog" -exec cp {} --parents -t ${targetFolder} \; find artifacts/ -type f -name "BuildTests*.binlog" -exec cp {} --parents -t ${targetFolder} \;
find artifacts/ -type f -name "BuildTests*.log" -exec cp {} --parents -t ${targetFolder} \; find artifacts/ -type f -name "BuildTests*.log" -exec cp {} --parents -t ${targetFolder} \;
find artifacts/ -type f -name "Build.binlog" -exec cp {} --parents -t ${targetFolder} \; find artifacts/ -type f -name "Build.binlog" -exec cp {} --parents -t ${targetFolder} \;
cd "$(Build.SourcesDirectory)/src/SourceBuild/content"
find test/ -type f -name "*.binlog" -exec cp {} --parents -t ${targetFolder} \; find test/ -type f -name "*.binlog" -exec cp {} --parents -t ${targetFolder} \;
find test/ -type f -name "Updated*.diff" -exec cp {} --parents -t ${targetFolder} \; find test/ -type f -name "Updated*.diff" -exec cp {} --parents -t ${targetFolder} \;
find test/ -type f -name "Updated*.txt" -exec cp {} --parents -t ${targetFolder} \; find test/ -type f -name "Updated*.txt" -exec cp {} --parents -t ${targetFolder} \;
@ -158,7 +157,7 @@ jobs:
inputs: inputs:
testRunner: vSTest testRunner: vSTest
testResultsFiles: '*.trx' testResultsFiles: '*.trx'
searchFolder: $(Build.SourcesDirectory)/src/SourceBuild/content/test/Microsoft.DotNet.SourceBuild.SmokeTests/TestResults searchFolder: $(Build.SourcesDirectory)/test/Microsoft.DotNet.SourceBuild.SmokeTests/TestResults
mergeTestResults: true mergeTestResults: true
publishRunAttachments: true publishRunAttachments: true
testRunTitle: $(Agent.JobName) testRunTitle: $(Agent.JobName)

View file

@ -3,17 +3,22 @@ stages:
displayName: Tag & Scan displayName: Tag & Scan
dependsOn: [] dependsOn: []
variables: variables:
- template: /eng/common/templates/variables/pool-providers.yml - ${{ if eq(variables['System.TeamProject'], 'public') }}:
- template: /eng/common/templates/variables/pool-providers.yml
- ${{ else }}:
- template: /eng/common/templates-official/variables/pool-providers.yml
jobs: jobs:
- job: Tag_n_Scan - job: Tag_n_Scan
displayName: Tag & Scan displayName: Tag & Scan
pool: pool:
${{ if eq(variables['System.TeamProject'], 'public') }}: ${{ if eq(variables['System.TeamProject'], 'public') }}:
name: $(DncEngPublicBuildPool) name: $(DncEngPublicBuildPool)
demands: ImageOverride -equals Build.Ubuntu.2004.Amd64.Open image: 1es-ubuntu-2004-open
os: linux
${{ if eq(variables['System.TeamProject'], 'internal') }}: ${{ if eq(variables['System.TeamProject'], 'internal') }}:
name: $(DncEngInternalBuildPool) name: $(DncEngInternalBuildPool)
demands: ImageOverride -equals Build.Ubuntu.2004.Amd64 image: 1es-ubuntu-2004
os: linux
steps: steps:
- checkout: self - checkout: self

View file

@ -1,6 +1,6 @@
{ {
"tools": { "tools": {
"dotnet": "8.0.102" "dotnet": "8.0.105"
}, },
"msbuild-sdks": { "msbuild-sdks": {
"Microsoft.Build.CentralPackageVersions": "2.0.1", "Microsoft.Build.CentralPackageVersions": "2.0.1",

View file

@ -61,6 +61,7 @@ public class LicenseScanTests : TestBase
"cc-by-sa-3.0", // https://creativecommons.org/licenses/by-sa/3.0/legalcode "cc-by-sa-3.0", // https://creativecommons.org/licenses/by-sa/3.0/legalcode
"cc-by-sa-4.0", // https://creativecommons.org/licenses/by-sa/4.0/legalcode "cc-by-sa-4.0", // https://creativecommons.org/licenses/by-sa/4.0/legalcode
"cc-pd", // https://creativecommons.org/publicdomain/mark/1.0/ "cc-pd", // https://creativecommons.org/publicdomain/mark/1.0/
"cc-sa-1.0", // https://github.com/nexB/scancode-toolkit/blob/develop/src/licensedcode/data/licenses/cc-sa-1.0.LICENSE
"epl-1.0", // https://opensource.org/license/epl-1-0/ "epl-1.0", // https://opensource.org/license/epl-1-0/
"generic-cla", // https://github.com/nexB/scancode-toolkit/blob/develop/src/licensedcode/data/licenses/generic-cla.LICENSE "generic-cla", // https://github.com/nexB/scancode-toolkit/blob/develop/src/licensedcode/data/licenses/generic-cla.LICENSE
"gpl-1.0-plus", // https://opensource.org/license/gpl-1-0/ "gpl-1.0-plus", // https://opensource.org/license/gpl-1-0/
@ -76,6 +77,7 @@ public class LicenseScanTests : TestBase
"lzma-sdk-9.22", // https://github.com/nexB/scancode-toolkit/blob/develop/src/licensedcode/data/licenses/lzma-sdk-9.22.LICENSE "lzma-sdk-9.22", // https://github.com/nexB/scancode-toolkit/blob/develop/src/licensedcode/data/licenses/lzma-sdk-9.22.LICENSE
"mit", // https://opensource.org/license/mit/ "mit", // https://opensource.org/license/mit/
"mit-addition", // https://github.com/nexB/scancode-toolkit/blob/develop/src/licensedcode/data/licenses/mit-addition.LICENSE "mit-addition", // https://github.com/nexB/scancode-toolkit/blob/develop/src/licensedcode/data/licenses/mit-addition.LICENSE
"mit-testregex", // https://github.com/nexB/scancode-toolkit/blob/develop/src/licensedcode/data/licenses/mit-testregex.LICENSE
"ms-patent-promise", // https://github.com/nexB/scancode-toolkit/blob/develop/src/licensedcode/data/licenses/ms-patent-promise.LICENSE "ms-patent-promise", // https://github.com/nexB/scancode-toolkit/blob/develop/src/licensedcode/data/licenses/ms-patent-promise.LICENSE
"ms-lpl", // https://github.com/nexB/scancode-toolkit/blob/develop/src/licensedcode/data/licenses/ms-lpl.LICENSE "ms-lpl", // https://github.com/nexB/scancode-toolkit/blob/develop/src/licensedcode/data/licenses/ms-lpl.LICENSE
"ms-pl", // https://opensource.org/license/ms-pl-html/ "ms-pl", // https://opensource.org/license/ms-pl-html/

View file

@ -222,11 +222,11 @@ src/source-build-externals/patches/application-insights/0002-Remove-WebGrease-fr
# False positive # False positive
src/source-build-reference-packages/src/targetPacks/ILsrc/microsoft.netcore.app.ref/3.*/THIRD-PARTY-NOTICES.TXT|codesourcery-2004 src/source-build-reference-packages/src/targetPacks/ILsrc/microsoft.netcore.app.ref/3.*/THIRD-PARTY-NOTICES.TXT|codesourcery-2004
src/source-build-reference-packages/src/targetPacks/ILsrc/netstandard.library/1.6.1/ThirdPartyNotices.txt|unknown src/source-build-reference-packages/src/targetPacks/ILsrc/netstandard.library/1.6.1/ThirdPartyNotices.txt|unknown-license-reference
src/source-build-reference-packages/src/targetPacks/ILsrc/netstandard.library/2.0.*/THIRD-PARTY-NOTICES.TXT|unknown src/source-build-reference-packages/src/targetPacks/ILsrc/netstandard.library/2.0.*/THIRD-PARTY-NOTICES.TXT|unknown-license-reference
src/source-build-reference-packages/src/targetPacks/ILsrc/netstandard.library.ref/2.1.0/THIRD-PARTY-NOTICES.TXT|codesourcery-2004 src/source-build-reference-packages/src/targetPacks/ILsrc/netstandard.library.ref/2.1.0/THIRD-PARTY-NOTICES.TXT|codesourcery-2004
src/source-build-reference-packages/src/textOnlyPackages/src/microsoft.codeanalysis.collections/4.2.0-1.22102.8/ThirdPartyNotices.rtf|json src/source-build-reference-packages/src/textOnlyPackages/src/microsoft.codeanalysis.collections/4.2.0-1.22102.8/ThirdPartyNotices.rtf|json
src/source-build-reference-packages/src/textOnlyPackages/src/microsoft.netcore.*/1.*/ThirdPartyNotices.txt|unknown src/source-build-reference-packages/src/textOnlyPackages/src/microsoft.netcore.*/1.*/ThirdPartyNotices.txt|unknown-license-reference
src/source-build-reference-packages/src/textOnlyPackages/src/microsoft.private.intellisense/8.0.*/IntellisenseFiles/*/1033/System.Security.Permissions.xml|unknown-license-reference src/source-build-reference-packages/src/textOnlyPackages/src/microsoft.private.intellisense/8.0.*/IntellisenseFiles/*/1033/System.Security.Permissions.xml|unknown-license-reference
# Contains references to licenses which are not applicable to the source # Contains references to licenses which are not applicable to the source

View file

@ -0,0 +1,38 @@
From 05ad51a9be428012328a1ee199a4edaff20b5efe Mon Sep 17 00:00:00 2001
From: Antoine Martin <dev@ayakael.net>
Date: Tue, 12 Sep 2023 18:55:46 -0400
Subject: [PATCH] crashinfo.cpp/crasinfounix.cpp: use off_t instead of off64_t
Backport: https://github.com/dotnet/runtime/pull/101272
---
src/coreclr/debug/createdump/crashinfo.cpp | 2 +-
src/coreclr/debug/createdump/crashinfounix.cpp | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/coreclr/debug/createdump/crashinfo.cpp b/src/coreclr/debug/createdump/crashinfo.cpp
index 996f3a81935d..d1d1b0ea0218 100644
--- a/src/coreclr/debug/createdump/crashinfo.cpp
+++ b/src/coreclr/debug/createdump/crashinfo.cpp
@@ -803,7 +803,7 @@ CrashInfo::PageMappedToPhysicalMemory(uint64_t start)
}
uint64_t pagemapOffset = (start / PAGE_SIZE) * sizeof(uint64_t);
- uint64_t seekResult = lseek64(m_fdPagemap, (off64_t) pagemapOffset, SEEK_SET);
+ uint64_t seekResult = lseek(m_fdPagemap, (off_t) pagemapOffset, SEEK_SET);
if (seekResult != pagemapOffset)
{
int seekErrno = errno;
diff --git a/src/coreclr/debug/createdump/crashinfounix.cpp b/src/coreclr/debug/createdump/crashinfounix.cpp
index 24b975e3d655..2f4ea079de3b 100644
--- a/src/coreclr/debug/createdump/crashinfounix.cpp
+++ b/src/coreclr/debug/createdump/crashinfounix.cpp
@@ -516,7 +516,7 @@ CrashInfo::ReadProcessMemory(void* address, void* buffer, size_t size, size_t* r
// performance optimization.
m_canUseProcVmReadSyscall = false;
assert(m_fdMem != -1);
- *read = pread64(m_fdMem, buffer, size, (off64_t)address);
+ *read = pread(m_fdMem, buffer, size, (off_t)address);
}
if (*read == (size_t)-1)

View file

@ -0,0 +1,79 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Nikola Milosavljevic <nikolam@microsoft.com>
Date: Tue, 23 Apr 2024 01:55:17 +0000
Subject: [PATCH] Update MSBuild dependencies
Backport: https://github.com/dotnet/runtime/issues/101395
---
eng/Version.Details.xml | 12 ++++++++++++
eng/Versions.props | 6 +++---
src/tasks/AotCompilerTask/MonoAOTCompiler.csproj | 1 -
src/tasks/WasmAppBuilder/WasmAppBuilder.csproj | 3 ---
4 files changed, 15 insertions(+), 7 deletions(-)
diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml
index fe35dc0997e..b90337395f6 100644
--- a/eng/Version.Details.xml
+++ b/eng/Version.Details.xml
@@ -414,6 +414,18 @@
<Uri>https://github.com/dotnet/msbuild</Uri>
<Sha>195e7f5a3a8e51c37d83cd9e54cb99dc3fc69c22</Sha>
</Dependency>
+ <Dependency Name="Microsoft.Build.Framework" Version="17.8.3">
+ <Uri>https://github.com/dotnet/msbuild</Uri>
+ <Sha>195e7f5a3a8e51c37d83cd9e54cb99dc3fc69c22</Sha>
+ </Dependency>
+ <Dependency Name="Microsoft.Build.Tasks.Core" Version="17.8.3">
+ <Uri>https://github.com/dotnet/msbuild</Uri>
+ <Sha>195e7f5a3a8e51c37d83cd9e54cb99dc3fc69c22</Sha>
+ </Dependency>
+ <Dependency Name="Microsoft.Build.Utilities.Core" Version="17.8.3">
+ <Uri>https://github.com/dotnet/msbuild</Uri>
+ <Sha>195e7f5a3a8e51c37d83cd9e54cb99dc3fc69c22</Sha>
+ </Dependency>
<Dependency Name="Microsoft.SourceBuild.Intermediate.msbuild" Version="17.8.3-preview-23613-06">
<Uri>https://github.com/dotnet/msbuild</Uri>
<Sha>195e7f5a3a8e51c37d83cd9e54cb99dc3fc69c22</Sha>
diff --git a/eng/Versions.props b/eng/Versions.props
index f012e409095..bf16c6ee71f 100644
--- a/eng/Versions.props
+++ b/eng/Versions.props
@@ -173,9 +173,9 @@
<MicrosoftDiagnosticsToolsRuntimeClientVersion>1.0.4-preview6.19326.1</MicrosoftDiagnosticsToolsRuntimeClientVersion>
<DNNEVersion>2.0.5</DNNEVersion>
<MicrosoftBuildVersion>17.8.3</MicrosoftBuildVersion>
- <MicrosoftBuildTasksCoreVersion>$(MicrosoftBuildVersion)</MicrosoftBuildTasksCoreVersion>
- <MicrosoftBuildFrameworkVersion>$(MicrosoftBuildVersion)</MicrosoftBuildFrameworkVersion>
- <MicrosoftBuildUtilitiesCoreVersion>$(MicrosoftBuildVersion)</MicrosoftBuildUtilitiesCoreVersion>
+ <MicrosoftBuildTasksCoreVersion>17.8.3</MicrosoftBuildTasksCoreVersion>
+ <MicrosoftBuildFrameworkVersion>17.8.3</MicrosoftBuildFrameworkVersion>
+ <MicrosoftBuildUtilitiesCoreVersion>17.8.3</MicrosoftBuildUtilitiesCoreVersion>
<NugetProjectModelVersion>6.2.4</NugetProjectModelVersion>
<NugetPackagingVersion>6.2.4</NugetPackagingVersion>
<DotnetSosVersion>7.0.412701</DotnetSosVersion>
diff --git a/src/tasks/AotCompilerTask/MonoAOTCompiler.csproj b/src/tasks/AotCompilerTask/MonoAOTCompiler.csproj
index e76730b5aec..88ae0fb136c 100644
--- a/src/tasks/AotCompilerTask/MonoAOTCompiler.csproj
+++ b/src/tasks/AotCompilerTask/MonoAOTCompiler.csproj
@@ -14,7 +14,6 @@
<ItemGroup>
<PackageReference Include="Microsoft.Build" Version="$(MicrosoftBuildVersion)" />
<PackageReference Include="Microsoft.Build.Tasks.Core" Version="$(MicrosoftBuildTasksCoreVersion)" />
- <PackageReference Include="System.Reflection.Metadata" Version="$(SystemReflectionMetadataVersion)" />
</ItemGroup>
<ItemGroup>
<Compile Include="MonoAOTCompiler.cs" />
diff --git a/src/tasks/WasmAppBuilder/WasmAppBuilder.csproj b/src/tasks/WasmAppBuilder/WasmAppBuilder.csproj
index 34a51095986..d8c95954dd8 100644
--- a/src/tasks/WasmAppBuilder/WasmAppBuilder.csproj
+++ b/src/tasks/WasmAppBuilder/WasmAppBuilder.csproj
@@ -24,9 +24,6 @@
<PackageReference Include="Microsoft.Build" Version="$(MicrosoftBuildVersion)" />
<PackageReference Include="Microsoft.Build.Tasks.Core" Version="$(MicrosoftBuildTasksCoreVersion)" />
- <!-- FIXME: is this the correct version of SRM to use when building for .NET Framework? -->
- <PackageReference Include="System.Reflection.Metadata" Version="$(SystemReflectionMetadataVersion)" />
- <PackageReference Include="System.Collections.Immutable" Version="$(SystemCollectionsImmutableVersion)" />
</ItemGroup>
<ItemGroup>

View file

@ -32,19 +32,6 @@
<Bundled80Templates Include="Microsoft.DotNet.Test.ProjectTemplates.8.0" PackageVersion="$(MicrosoftDotNetTestProjectTemplates80PackageVersion)" /> <Bundled80Templates Include="Microsoft.DotNet.Test.ProjectTemplates.8.0" PackageVersion="$(MicrosoftDotNetTestProjectTemplates80PackageVersion)" />
</ItemGroup> </ItemGroup>
<ItemGroup>
<Bundled70Templates Include="Microsoft.DotNet.Common.ItemTemplates" PackageVersion="$(MicrosoftDotNetCommonItemTemplates70PackageVersion)" />
<Bundled70Templates Include="Microsoft.DotNet.Common.ProjectTemplates.7.0" PackageVersion="$(MicrosoftDotNetCommonItemTemplates70PackageVersion)" />
<Bundled70Templates Include="Microsoft.DotNet.Web.ItemTemplates.7.0" PackageVersion="$(AspNetCorePackageVersionFor70Templates)" />
<Bundled70Templates Include="Microsoft.DotNet.Web.ProjectTemplates.7.0" PackageVersion="$(AspNetCorePackageVersionFor70Templates)" UseVersionForTemplateInstallPath="true" />
<Bundled70Templates Include="Microsoft.DotNet.Web.Spa.ProjectTemplates.7.0" PackageVersion="$(AspNetCorePackageVersionFor70Templates)" />
<Bundled70Templates Include="Microsoft.Dotnet.Wpf.ProjectTemplates" PackageVersion="$(MicrosoftDotnetWpfProjectTemplates70PackageVersion)" Condition="'$(DotNetBuildFromSource)' != 'true'" />
<Bundled70Templates Include="Microsoft.Dotnet.WinForms.ProjectTemplates" PackageVersion="$(MicrosoftDotnetWinFormsProjectTemplates70PackageVersion)" Condition="'$(DotNetBuildFromSource)' != 'true'" />
<!-- NUnit templates are shipped in Test.ProjectTemplates -->
<Bundled70Templates Include="Microsoft.DotNet.Test.ProjectTemplates.7.0" PackageVersion="$(MicrosoftDotNetTestProjectTemplates70PackageVersion)" />
</ItemGroup>
<ItemGroup> <ItemGroup>
<Bundled60Templates Include="Microsoft.DotNet.Common.ItemTemplates" PackageVersion="$(MicrosoftDotNetCommonItemTemplates60PackageVersion)" /> <Bundled60Templates Include="Microsoft.DotNet.Common.ItemTemplates" PackageVersion="$(MicrosoftDotNetCommonItemTemplates60PackageVersion)" />
<Bundled60Templates Include="Microsoft.DotNet.Common.ProjectTemplates.6.0" PackageVersion="$(MicrosoftDotNetCommonProjectTemplates60PackageVersion)" /> <Bundled60Templates Include="Microsoft.DotNet.Common.ProjectTemplates.6.0" PackageVersion="$(MicrosoftDotNetCommonProjectTemplates60PackageVersion)" />
@ -58,63 +45,12 @@
<Bundled60Templates Include="Microsoft.DotNet.Test.ProjectTemplates.6.0" PackageVersion="$(MicrosoftDotNetTestProjectTemplates60PackageVersion)" /> <Bundled60Templates Include="Microsoft.DotNet.Test.ProjectTemplates.6.0" PackageVersion="$(MicrosoftDotNetTestProjectTemplates60PackageVersion)" />
</ItemGroup> </ItemGroup>
<ItemGroup>
<Bundled50Templates Include="Microsoft.DotNet.Common.ItemTemplates" PackageVersion="$(MicrosoftDotNetCommonItemTemplates50PackageVersion)" />
<Bundled50Templates Include="Microsoft.DotNet.Common.ProjectTemplates.5.0" PackageVersion="$(MicrosoftDotNetCommonProjectTemplates50PackageVersion)" />
<Bundled50Templates Include="Microsoft.DotNet.Test.ProjectTemplates.5.0" PackageVersion="$(MicrosoftDotNetTestProjectTemplates50PackageVersion)" />
<Bundled50Templates Include="Microsoft.DotNet.Web.ItemTemplates" PackageVersion="$(AspNetCorePackageVersionFor50Templates)" />
<Bundled50Templates Include="Microsoft.Dotnet.Wpf.ProjectTemplates" PackageVersion="$(MicrosoftDotnetWpfProjectTemplates50PackageVersion)" Condition="'$(DotNetBuildFromSource)' != 'true'" />
<Bundled50Templates Include="Microsoft.Dotnet.WinForms.ProjectTemplates" PackageVersion="$(MicrosoftDotnetWinFormsProjectTemplates50PackageVersion)" Condition="'$(DotNetBuildFromSource)' != 'true'" />
<Bundled50Templates Include="Microsoft.DotNet.Web.ProjectTemplates.5.0" PackageVersion="$(AspNetCorePackageVersionFor50Templates)" UseVersionForTemplateInstallPath="true" />
<Bundled50Templates Include="Microsoft.DotNet.Web.Spa.ProjectTemplates.5.0" PackageVersion="$(AspNetCorePackageVersionFor50Templates)" />
<Bundled50Templates Include="NUnit3.DotNetNew.Template" PackageVersion="$(NUnit3Templates50PackageVersion)" />
</ItemGroup>
<ItemGroup>
<Bundled31Templates Include="Microsoft.DotNet.Common.ItemTemplates" PackageVersion="$(MicrosoftDotNetCommonItemTemplates31PackageVersion)" />
<Bundled31Templates Include="Microsoft.DotNet.Common.ProjectTemplates.3.1" PackageVersion="$(MicrosoftDotNetCommonProjectTemplates31PackageVersion)" />
<Bundled31Templates Include="Microsoft.DotNet.Test.ProjectTemplates.3.1" PackageVersion="$(MicrosoftDotNetTestProjectTemplates31PackageVersion)" />
<Bundled31Templates Include="Microsoft.DotNet.Web.ItemTemplates" PackageVersion="$(AspNetCorePackageVersionFor31Templates)" />
<Bundled31Templates Include="Microsoft.DotNet.Web.ProjectTemplates.3.1" PackageVersion="$(AspNetCorePackageVersionFor31Templates)" UseVersionForTemplateInstallPath="true" />
<Bundled31Templates Include="Microsoft.DotNet.Web.Spa.ProjectTemplates.3.1" PackageVersion="$(AspNetCorePackageVersionFor31Templates)" />
<Bundled31Templates Include="Microsoft.AspNetCore.Components.WebAssembly.Templates" PackageVersion="$(MicrosoftAspNetCoreComponentsWebAssemblyTemplatesPackageVersion)" />
<Bundled31Templates Include="NUnit3.DotNetNew.Template" PackageVersion="$(NUnit3Templates31PackageVersion)" />
</ItemGroup>
<ItemGroup Condition="!$(Architecture.StartsWith('arm'))">
<Bundled31Templates Include="Microsoft.Dotnet.Wpf.ProjectTemplates" PackageVersion="$(MicrosoftDotnetWpfProjectTemplates31PackageVersion)" Condition="'$(DotNetBuildFromSource)' != 'true'" />
<Bundled31Templates Include="Microsoft.Dotnet.WinForms.ProjectTemplates" PackageVersion="$(MicrosoftDotnetWinFormsProjectTemplates31PackageVersion)" Condition="'$(DotNetBuildFromSource)' != 'true'" />
</ItemGroup>
<ItemGroup Condition="!$(Architecture.StartsWith('arm'))">
<Bundled30Templates Include="Microsoft.DotNet.Common.ItemTemplates" PackageVersion="$(MicrosoftDotNetCommonItemTemplates30PackageVersion)" />
<Bundled30Templates Include="Microsoft.DotNet.Common.ProjectTemplates.3.0" PackageVersion="$(MicrosoftDotNetCommonProjectTemplates30PackageVersion)" />
<Bundled30Templates Include="Microsoft.DotNet.Test.ProjectTemplates.3.0" PackageVersion="$(MicrosoftDotNetTestProjectTemplates30PackageVersion)" />
<Bundled30Templates Include="Microsoft.DotNet.Web.ItemTemplates" PackageVersion="$(AspNetCorePackageVersionFor30Templates)" />
<Bundled30Templates Include="Microsoft.Dotnet.Wpf.ProjectTemplates" PackageVersion="$(MicrosoftDotnetWpfProjectTemplates30PackageVersion)" Condition="'$(DotNetBuildFromSource)' != 'true'" />
<Bundled30Templates Include="Microsoft.Dotnet.WinForms.ProjectTemplates" PackageVersion="$(MicrosoftDotnetWinFormsProjectTemplates30PackageVersion)" Condition="'$(DotNetBuildFromSource)' != 'true'" />
<Bundled30Templates Include="Microsoft.DotNet.Web.ProjectTemplates.3.0" PackageVersion="$(AspNetCorePackageVersionFor30Templates)" UseVersionForTemplateInstallPath="true" />
<Bundled30Templates Include="Microsoft.DotNet.Web.Spa.ProjectTemplates.3.0" PackageVersion="$(AspNetCorePackageVersionFor30Templates)" />
<Bundled30Templates Include="NUnit3.DotNetNew.Template" PackageVersion="$(NUnit3Templates30PackageVersion)" />
</ItemGroup>
<ItemGroup Condition="!$(Architecture.StartsWith('arm'))">
<Bundled21Templates Include="Microsoft.DotNet.Common.ItemTemplates" PackageVersion="$(MicrosoftDotNetCommonItemTemplates21PackageVersion)" />
<Bundled21Templates Include="Microsoft.DotNet.Common.ProjectTemplates.2.1" PackageVersion="$(MicrosoftDotNetCommonProjectTemplates21PackageVersion)" />
<Bundled21Templates Include="Microsoft.DotNet.Test.ProjectTemplates.2.1" PackageVersion="$(MicrosoftDotNetTestProjectTemplates21PackageVersion)" />
<Bundled21Templates Include="Microsoft.DotNet.Web.ItemTemplates" PackageVersion="$(AspNetCorePackageVersionFor21Templates)" />
<Bundled21Templates Include="Microsoft.DotNet.Web.ProjectTemplates.2.1" PackageVersion="$(AspNetCorePackageVersionFor21Templates)" UseVersionForTemplateInstallPath="true" />
<Bundled21Templates Include="Microsoft.DotNet.Web.Spa.ProjectTemplates.2.1" PackageVersion="$(AspNetCorePackageVersionFor21Templates)" />
<Bundled21Templates Include="NUnit3.DotNetNew.Template" PackageVersion="$(NUnit3Templates21PackageVersion)" />
</ItemGroup>
<ItemGroup> <ItemGroup>
<CurrentVersionBundledTemplates Include="@(Bundled80Templates)" TemplateFrameworkVersion="8.0"/> <CurrentVersionBundledTemplates Include="@(Bundled80Templates)" TemplateFrameworkVersion="8.0"/>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<PreviousVersionBundledTemplates Include="@(Bundled70Templates)" TemplateFrameworkVersion="7.0"/>
<PreviousVersionBundledTemplates Include="@(Bundled60Templates)" TemplateFrameworkVersion="6.0"/> <PreviousVersionBundledTemplates Include="@(Bundled60Templates)" TemplateFrameworkVersion="6.0"/>
<PreviousVersionBundledTemplates Include="@(Bundled50Templates)" TemplateFrameworkVersion="5.0"/>
<PreviousVersionBundledTemplates Include="@(Bundled31Templates)" TemplateFrameworkVersion="3.1"/>
<PreviousVersionBundledTemplates Include="@(Bundled30Templates)" TemplateFrameworkVersion="3.0"/>
<PreviousVersionBundledTemplates Include="@(Bundled21Templates)" TemplateFrameworkVersion="2.1"/>
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>