|
|
@ -67,176 +67,180 @@ parameters: |
|
|
VSMasterChannelId: 1012 |
|
|
VSMasterChannelId: 1012 |
|
|
|
|
|
|
|
|
stages: |
|
|
stages: |
|
|
- stage: Validate |
|
|
- ${{ if or(and(le(parameters.publishingInfraVersion, 2), eq(parameters.inline, 'true')), eq( parameters.enableNugetValidation, 'true'), eq(parameters.enableSigningValidation, 'true'), eq(parameters.enableSourceLinkValidation, 'true'), eq(parameters.SDLValidationParameters.enable, 'true')) }}: |
|
|
dependsOn: ${{ parameters.validateDependsOn }} |
|
|
- stage: Validate |
|
|
displayName: Validate Build Assets |
|
|
dependsOn: ${{ parameters.validateDependsOn }} |
|
|
variables: |
|
|
displayName: Validate Build Assets |
|
|
- template: common-variables.yml |
|
|
variables: |
|
|
jobs: |
|
|
- template: common-variables.yml |
|
|
- template: setup-maestro-vars.yml |
|
|
jobs: |
|
|
parameters: |
|
|
- template: setup-maestro-vars.yml |
|
|
BARBuildId: ${{ parameters.BARBuildId }} |
|
|
parameters: |
|
|
PromoteToChannelIds: ${{ parameters.PromoteToChannelIds }} |
|
|
BARBuildId: ${{ parameters.BARBuildId }} |
|
|
|
|
|
PromoteToChannelIds: ${{ parameters.PromoteToChannelIds }} |
|
|
|
|
|
|
|
|
|
|
|
- ${{ if and(le(parameters.publishingInfraVersion, 2), eq(parameters.inline, 'true')) }}: |
|
|
|
|
|
- job: |
|
|
|
|
|
displayName: Post-build Checks |
|
|
|
|
|
dependsOn: setupMaestroVars |
|
|
|
|
|
variables: |
|
|
|
|
|
- name: TargetChannels |
|
|
|
|
|
value: $[ dependencies.setupMaestroVars.outputs['setReleaseVars.TargetChannels'] ] |
|
|
|
|
|
pool: |
|
|
|
|
|
vmImage: 'windows-2019' |
|
|
|
|
|
steps: |
|
|
|
|
|
- task: PowerShell@2 |
|
|
|
|
|
displayName: Maestro Channels Consistency |
|
|
|
|
|
inputs: |
|
|
|
|
|
filePath: $(Build.SourcesDirectory)/eng/common/post-build/check-channel-consistency.ps1 |
|
|
|
|
|
arguments: -PromoteToChannels "$(TargetChannels)" |
|
|
|
|
|
-AvailableChannelIds ${{parameters.NetEngLatestChannelId}},${{parameters.NetEngValidationChannelId}},${{parameters.NetDev5ChannelId}},${{parameters.NetDev6ChannelId}},${{parameters.GeneralTestingChannelId}},${{parameters.NETCoreToolingDevChannelId}},${{parameters.NETCoreToolingReleaseChannelId}},${{parameters.NETInternalToolingChannelId}},${{parameters.NETCoreExperimentalChannelId}},${{parameters.NetEngServicesIntChannelId}},${{parameters.NetEngServicesProdChannelId}},${{parameters.Net5Preview8ChannelId}},${{parameters.Net5RC1ChannelId}},${{parameters.Net5RC2ChannelId}},${{parameters.NetCoreSDK313xxChannelId}},${{parameters.NetCoreSDK313xxInternalChannelId}},${{parameters.NetCoreSDK314xxChannelId}},${{parameters.NetCoreSDK314xxInternalChannelId}},${{parameters.VS166ChannelId}},${{parameters.VS167ChannelId}},${{parameters.VS168ChannelId}},${{parameters.VSMasterChannelId}} |
|
|
|
|
|
|
|
|
- ${{ if and(le(parameters.publishingInfraVersion, 2), eq(parameters.inline, 'true')) }}: |
|
|
|
|
|
- job: |
|
|
- job: |
|
|
displayName: Post-build Checks |
|
|
displayName: NuGet Validation |
|
|
dependsOn: setupMaestroVars |
|
|
dependsOn: setupMaestroVars |
|
|
variables: |
|
|
condition: eq( ${{ parameters.enableNugetValidation }}, 'true') |
|
|
- name: TargetChannels |
|
|
|
|
|
value: $[ dependencies.setupMaestroVars.outputs['setReleaseVars.TargetChannels'] ] |
|
|
|
|
|
pool: |
|
|
pool: |
|
|
vmImage: 'windows-2019' |
|
|
vmImage: 'windows-2019' |
|
|
|
|
|
variables: |
|
|
|
|
|
- name: AzDOProjectName |
|
|
|
|
|
value: $[ dependencies.setupMaestroVars.outputs['setReleaseVars.AzDOProjectName'] ] |
|
|
|
|
|
- name: AzDOPipelineId |
|
|
|
|
|
value: $[ dependencies.setupMaestroVars.outputs['setReleaseVars.AzDOPipelineId'] ] |
|
|
|
|
|
- name: AzDOBuildId |
|
|
|
|
|
value: $[ dependencies.setupMaestroVars.outputs['setReleaseVars.AzDOBuildId'] ] |
|
|
steps: |
|
|
steps: |
|
|
|
|
|
- task: DownloadBuildArtifacts@0 |
|
|
|
|
|
displayName: Download Package Artifacts |
|
|
|
|
|
inputs: |
|
|
|
|
|
buildType: specific |
|
|
|
|
|
buildVersionToDownload: specific |
|
|
|
|
|
project: $(AzDOProjectName) |
|
|
|
|
|
pipeline: $(AzDOPipelineId) |
|
|
|
|
|
buildId: $(AzDOBuildId) |
|
|
|
|
|
artifactName: PackageArtifacts |
|
|
|
|
|
|
|
|
- task: PowerShell@2 |
|
|
- task: PowerShell@2 |
|
|
displayName: Maestro Channels Consistency |
|
|
displayName: Validate |
|
|
inputs: |
|
|
inputs: |
|
|
filePath: $(Build.SourcesDirectory)/eng/common/post-build/check-channel-consistency.ps1 |
|
|
filePath: $(Build.SourcesDirectory)/eng/common/post-build/nuget-validation.ps1 |
|
|
arguments: -PromoteToChannels "$(TargetChannels)" |
|
|
arguments: -PackagesPath $(Build.ArtifactStagingDirectory)/PackageArtifacts/ |
|
|
-AvailableChannelIds ${{parameters.NetEngLatestChannelId}},${{parameters.NetEngValidationChannelId}},${{parameters.NetDev5ChannelId}},${{parameters.NetDev6ChannelId}},${{parameters.GeneralTestingChannelId}},${{parameters.NETCoreToolingDevChannelId}},${{parameters.NETCoreToolingReleaseChannelId}},${{parameters.NETInternalToolingChannelId}},${{parameters.NETCoreExperimentalChannelId}},${{parameters.NetEngServicesIntChannelId}},${{parameters.NetEngServicesProdChannelId}},${{parameters.Net5Preview8ChannelId}},${{parameters.Net5RC1ChannelId}},${{parameters.Net5RC2ChannelId}},${{parameters.NetCoreSDK313xxChannelId}},${{parameters.NetCoreSDK313xxInternalChannelId}},${{parameters.NetCoreSDK314xxChannelId}},${{parameters.NetCoreSDK314xxInternalChannelId}},${{parameters.VS166ChannelId}},${{parameters.VS167ChannelId}},${{parameters.VS168ChannelId}},${{parameters.VSMasterChannelId}} |
|
|
-ToolDestinationPath $(Agent.BuildDirectory)/Extract/ |
|
|
|
|
|
|
|
|
- job: |
|
|
- job: |
|
|
displayName: NuGet Validation |
|
|
displayName: Signing Validation |
|
|
dependsOn: setupMaestroVars |
|
|
dependsOn: setupMaestroVars |
|
|
condition: eq( ${{ parameters.enableNugetValidation }}, 'true') |
|
|
condition: eq( ${{ parameters.enableSigningValidation }}, 'true') |
|
|
pool: |
|
|
variables: |
|
|
vmImage: 'windows-2019' |
|
|
- template: common-variables.yml |
|
|
variables: |
|
|
- name: AzDOProjectName |
|
|
- name: AzDOProjectName |
|
|
value: $[ dependencies.setupMaestroVars.outputs['setReleaseVars.AzDOProjectName'] ] |
|
|
value: $[ dependencies.setupMaestroVars.outputs['setReleaseVars.AzDOProjectName'] ] |
|
|
- name: AzDOPipelineId |
|
|
- name: AzDOPipelineId |
|
|
value: $[ dependencies.setupMaestroVars.outputs['setReleaseVars.AzDOPipelineId'] ] |
|
|
value: $[ dependencies.setupMaestroVars.outputs['setReleaseVars.AzDOPipelineId'] ] |
|
|
- name: AzDOBuildId |
|
|
- name: AzDOBuildId |
|
|
value: $[ dependencies.setupMaestroVars.outputs['setReleaseVars.AzDOBuildId'] ] |
|
|
value: $[ dependencies.setupMaestroVars.outputs['setReleaseVars.AzDOBuildId'] ] |
|
|
pool: |
|
|
steps: |
|
|
vmImage: 'windows-2019' |
|
|
- task: DownloadBuildArtifacts@0 |
|
|
steps: |
|
|
displayName: Download Package Artifacts |
|
|
- ${{ if eq(parameters.useBuildManifest, true) }}: |
|
|
inputs: |
|
|
- task: DownloadBuildArtifacts@0 |
|
|
buildType: specific |
|
|
displayName: Download build manifest |
|
|
buildVersionToDownload: specific |
|
|
inputs: |
|
|
project: $(AzDOProjectName) |
|
|
buildType: specific |
|
|
pipeline: $(AzDOPipelineId) |
|
|
buildVersionToDownload: specific |
|
|
buildId: $(AzDOBuildId) |
|
|
project: $(AzDOProjectName) |
|
|
artifactName: PackageArtifacts |
|
|
pipeline: $(AzDOPipelineId) |
|
|
|
|
|
buildId: $(AzDOBuildId) |
|
|
- task: PowerShell@2 |
|
|
artifactName: BuildManifests |
|
|
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 |
|
|
|
|
|
dependsOn: setupMaestroVars |
|
|
|
|
|
condition: eq( ${{ parameters.enableSigningValidation }}, 'true') |
|
|
|
|
|
variables: |
|
|
|
|
|
- template: common-variables.yml |
|
|
|
|
|
- name: AzDOProjectName |
|
|
|
|
|
value: $[ dependencies.setupMaestroVars.outputs['setReleaseVars.AzDOProjectName'] ] |
|
|
|
|
|
- name: AzDOPipelineId |
|
|
|
|
|
value: $[ dependencies.setupMaestroVars.outputs['setReleaseVars.AzDOPipelineId'] ] |
|
|
|
|
|
- name: AzDOBuildId |
|
|
|
|
|
value: $[ dependencies.setupMaestroVars.outputs['setReleaseVars.AzDOBuildId'] ] |
|
|
|
|
|
pool: |
|
|
|
|
|
vmImage: 'windows-2019' |
|
|
|
|
|
steps: |
|
|
|
|
|
- ${{ if eq(parameters.useBuildManifest, true) }}: |
|
|
|
|
|
- task: DownloadBuildArtifacts@0 |
|
|
- task: DownloadBuildArtifacts@0 |
|
|
displayName: Download build manifest |
|
|
displayName: Download Package Artifacts |
|
|
inputs: |
|
|
inputs: |
|
|
buildType: specific |
|
|
buildType: specific |
|
|
buildVersionToDownload: specific |
|
|
buildVersionToDownload: specific |
|
|
project: $(AzDOProjectName) |
|
|
project: $(AzDOProjectName) |
|
|
pipeline: $(AzDOPipelineId) |
|
|
pipeline: $(AzDOPipelineId) |
|
|
buildId: $(AzDOBuildId) |
|
|
buildId: $(AzDOBuildId) |
|
|
artifactName: BuildManifests |
|
|
artifactName: PackageArtifacts |
|
|
- task: DownloadBuildArtifacts@0 |
|
|
|
|
|
displayName: Download Package Artifacts |
|
|
# This is necessary whenever we want to publish/restore to an AzDO private feed |
|
|
inputs: |
|
|
# Since sdk-task.ps1 tries to restore packages we need to do this authentication here |
|
|
buildType: specific |
|
|
# otherwise it'll complain about accessing a private feed. |
|
|
buildVersionToDownload: specific |
|
|
- task: NuGetAuthenticate@0 |
|
|
project: $(AzDOProjectName) |
|
|
displayName: 'Authenticate to AzDO Feeds' |
|
|
pipeline: $(AzDOPipelineId) |
|
|
|
|
|
buildId: $(AzDOBuildId) |
|
|
- task: PowerShell@2 |
|
|
artifactName: PackageArtifacts |
|
|
displayName: Enable cross-org publishing |
|
|
|
|
|
inputs: |
|
|
# This is necessary whenever we want to publish/restore to an AzDO private feed |
|
|
filePath: eng\common\enable-cross-org-publishing.ps1 |
|
|
# Since sdk-task.ps1 tries to restore packages we need to do this authentication here |
|
|
arguments: -token $(dn-bot-dnceng-artifact-feeds-rw) |
|
|
# otherwise it'll complain about accessing a private feed. |
|
|
|
|
|
- task: NuGetAuthenticate@0 |
|
|
# Signing validation will optionally work with the buildmanifest file which is downloaded from |
|
|
displayName: 'Authenticate to AzDO Feeds' |
|
|
# Azure DevOps above. |
|
|
|
|
|
- task: PowerShell@2 |
|
|
- task: PowerShell@2 |
|
|
displayName: Validate |
|
|
displayName: Enable cross-org publishing |
|
|
inputs: |
|
|
inputs: |
|
|
filePath: eng\common\sdk-task.ps1 |
|
|
filePath: eng\common\enable-cross-org-publishing.ps1 |
|
|
arguments: -task SigningValidation -restore -msbuildEngine vs |
|
|
arguments: -token $(dn-bot-dnceng-artifact-feeds-rw) |
|
|
/p:PackageBasePath='$(Build.ArtifactStagingDirectory)/PackageArtifacts' |
|
|
|
|
|
/p:SignCheckExclusionsFile='$(Build.SourcesDirectory)/eng/SignCheckExclusionsFile.txt' |
|
|
# Signing validation will optionally work with the buildmanifest file which is downloaded from |
|
|
${{ parameters.signingValidationAdditionalParameters }} |
|
|
# Azure DevOps above. |
|
|
|
|
|
- task: PowerShell@2 |
|
|
- template: ../steps/publish-logs.yml |
|
|
displayName: Validate |
|
|
parameters: |
|
|
inputs: |
|
|
StageLabel: 'Validation' |
|
|
filePath: eng\common\sdk-task.ps1 |
|
|
JobLabel: 'Signing' |
|
|
arguments: -task SigningValidation -restore -msbuildEngine vs |
|
|
|
|
|
/p:PackageBasePath='$(Build.ArtifactStagingDirectory)/PackageArtifacts' |
|
|
- job: |
|
|
/p:SignCheckExclusionsFile='$(Build.SourcesDirectory)/eng/SignCheckExclusionsFile.txt' |
|
|
displayName: SourceLink Validation |
|
|
${{ parameters.signingValidationAdditionalParameters }} |
|
|
|
|
|
|
|
|
|
|
|
- template: ../steps/publish-logs.yml |
|
|
|
|
|
parameters: |
|
|
|
|
|
StageLabel: 'Validation' |
|
|
|
|
|
JobLabel: 'Signing' |
|
|
|
|
|
|
|
|
|
|
|
- job: |
|
|
|
|
|
displayName: SourceLink Validation |
|
|
|
|
|
dependsOn: setupMaestroVars |
|
|
|
|
|
condition: eq( ${{ parameters.enableSourceLinkValidation }}, 'true') |
|
|
|
|
|
variables: |
|
|
|
|
|
- template: common-variables.yml |
|
|
|
|
|
- name: AzDOProjectName |
|
|
|
|
|
value: $[ dependencies.setupMaestroVars.outputs['setReleaseVars.AzDOProjectName'] ] |
|
|
|
|
|
- name: AzDOPipelineId |
|
|
|
|
|
value: $[ dependencies.setupMaestroVars.outputs['setReleaseVars.AzDOPipelineId'] ] |
|
|
|
|
|
- name: AzDOBuildId |
|
|
|
|
|
value: $[ dependencies.setupMaestroVars.outputs['setReleaseVars.AzDOBuildId'] ] |
|
|
|
|
|
pool: |
|
|
|
|
|
vmImage: 'windows-2019' |
|
|
|
|
|
steps: |
|
|
|
|
|
- task: DownloadBuildArtifacts@0 |
|
|
|
|
|
displayName: Download Blob Artifacts |
|
|
|
|
|
inputs: |
|
|
|
|
|
buildType: specific |
|
|
|
|
|
buildVersionToDownload: specific |
|
|
|
|
|
project: $(AzDOProjectName) |
|
|
|
|
|
pipeline: $(AzDOPipelineId) |
|
|
|
|
|
buildId: $(AzDOBuildId) |
|
|
|
|
|
artifactName: BlobArtifacts |
|
|
|
|
|
|
|
|
|
|
|
- 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 |
|
|
|
|
|
|
|
|
|
|
|
- template: /eng/common/templates/job/execute-sdl.yml |
|
|
|
|
|
parameters: |
|
|
|
|
|
enable: ${{ parameters.SDLValidationParameters.enable }} |
|
|
|
|
|
dependsOn: setupMaestroVars |
|
|
dependsOn: setupMaestroVars |
|
|
additionalParameters: ${{ parameters.SDLValidationParameters.params }} |
|
|
condition: eq( ${{ parameters.enableSourceLinkValidation }}, 'true') |
|
|
continueOnError: ${{ parameters.SDLValidationParameters.continueOnError }} |
|
|
variables: |
|
|
artifactNames: ${{ parameters.SDLValidationParameters.artifactNames }} |
|
|
- template: common-variables.yml |
|
|
downloadArtifacts: ${{ parameters.SDLValidationParameters.downloadArtifacts }} |
|
|
- name: AzDOProjectName |
|
|
|
|
|
value: $[ dependencies.setupMaestroVars.outputs['setReleaseVars.AzDOProjectName'] ] |
|
|
|
|
|
- name: AzDOPipelineId |
|
|
|
|
|
value: $[ dependencies.setupMaestroVars.outputs['setReleaseVars.AzDOPipelineId'] ] |
|
|
|
|
|
- name: AzDOBuildId |
|
|
|
|
|
value: $[ dependencies.setupMaestroVars.outputs['setReleaseVars.AzDOBuildId'] ] |
|
|
|
|
|
pool: |
|
|
|
|
|
vmImage: 'windows-2019' |
|
|
|
|
|
steps: |
|
|
|
|
|
- task: DownloadBuildArtifacts@0 |
|
|
|
|
|
displayName: Download Blob Artifacts |
|
|
|
|
|
inputs: |
|
|
|
|
|
buildType: specific |
|
|
|
|
|
buildVersionToDownload: specific |
|
|
|
|
|
project: $(AzDOProjectName) |
|
|
|
|
|
pipeline: $(AzDOPipelineId) |
|
|
|
|
|
buildId: $(AzDOBuildId) |
|
|
|
|
|
artifactName: BlobArtifacts |
|
|
|
|
|
|
|
|
|
|
|
- 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 |
|
|
|
|
|
|
|
|
|
|
|
- template: /eng/common/templates/job/execute-sdl.yml |
|
|
|
|
|
parameters: |
|
|
|
|
|
enable: ${{ parameters.SDLValidationParameters.enable }} |
|
|
|
|
|
dependsOn: setupMaestroVars |
|
|
|
|
|
additionalParameters: ${{ parameters.SDLValidationParameters.params }} |
|
|
|
|
|
continueOnError: ${{ parameters.SDLValidationParameters.continueOnError }} |
|
|
|
|
|
artifactNames: ${{ parameters.SDLValidationParameters.artifactNames }} |
|
|
|
|
|
downloadArtifacts: ${{ parameters.SDLValidationParameters.downloadArtifacts }} |
|
|
|
|
|
|
|
|
- ${{ if or(ge(parameters.publishingInfraVersion, 3), eq(parameters.inline, 'false')) }}: |
|
|
- ${{ if or(ge(parameters.publishingInfraVersion, 3), eq(parameters.inline, 'false')) }}: |
|
|
- stage: publish_using_darc |
|
|
- stage: publish_using_darc |
|
|
dependsOn: Validate |
|
|
${{ if or(eq(parameters.enableNugetValidation, 'true'), eq(parameters.enableSigningValidation, 'true'), eq(parameters.enableSourceLinkValidation, 'true'), eq(parameters.SDLValidationParameters.enable, 'true')) }}: |
|
|
|
|
|
dependsOn: Validate |
|
|
|
|
|
${{ if and(ne(parameters.enableNugetValidation, 'true'), ne(parameters.enableSigningValidation, 'true'), ne(parameters.enableSourceLinkValidation, 'true'), ne(parameters.SDLValidationParameters.enable, 'true')) }}: |
|
|
|
|
|
dependsOn: ${{ parameters.validateDependsOn }} |
|
|
displayName: Publish using Darc |
|
|
displayName: Publish using Darc |
|
|
variables: |
|
|
variables: |
|
|
- template: common-variables.yml |
|
|
- template: common-variables.yml |
|
|
|