Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 12 additions & 0 deletions eng/common/scripts/copy-from-blobstorage.ps1
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
param (
[Parameter(Mandatory = $true)]
[string] $SourceBlobPath,
[Parameter(Mandatory = $true)]
[string] $ApplicationId,
[Parameter(Mandatory = $true)]
[string] $DestinationDirectory
)

azcopy login --service-principal --application-id $ApplicationId
Write-Host "Copying from $SourceBlobPath to $DestinationDirectory ..."
azcopy cp "${SourceBlobPath}/*" $DestinationDirectory --recursive=true
14 changes: 14 additions & 0 deletions eng/pipelines/azuresdkpartnerdrops-to-devops.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
parameters:
- name: PartnerDropsBlobSourceSuffix
type: string
default: ''
- name: DevOpsFeedID
type: string
# Publish to https://dev.azure.com/azure-sdk/public/_packaging?_a=feed&feed=azure-sdk-for-net
default: '29ec6040-b234-4e31-b139-33dc4287b756/fa8c16a3-dbe0-4de2-a297-03065ec1ba3f'
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Could this be simplified by removing these two wrapper yml files and just setting a boolean for something like UseDevopsFeedID? Will the devops feed need to be customized?

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would have gone that route, but Wes wants us to have separate entry points.


extends:
template: /eng/pipelines/templates/jobs/azuresdkpartnerdrops-to-nugetfeed.yml
parameters:
DevOpsFeedID: ${{ parameters.DevOpsFeedID }}
PartnerDropsBlobSourceSuffix: ${{ parameters.PartnerDropsBlobSourceSuffix }}
9 changes: 9 additions & 0 deletions eng/pipelines/azuresdkpartnerdrops-to-nuget.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
parameters:
- name: PartnerDropsBlobSourceSuffix
type: string
default: ''

extends:
template: /eng/pipelines/templates/jobs/azuresdkpartnerdrops-to-nugetfeed.yml
parameters:
PartnerDropsBlobSourceSuffix: ${{ parameters.PartnerDropsBlobSourceSuffix }}
113 changes: 113 additions & 0 deletions eng/pipelines/templates/jobs/azuresdkpartnerdrops-to-nugetfeed.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,113 @@

resources:
repositories:
- repository: azure-sdk-build-tools
type: git
name: internal/azure-sdk-build-tools
ref: refs/tags/azure-sdk-build-tools_20211215.1

parameters:
- name: BuildToolsRepoPath
type: string
default: '$(Build.SourcesDirectory)/azure-sdk-build-tools'
- name: ArtifactsPath
type: string
default: '$(System.DefaultWorkingDirectory)/artifacts'
- name: PartnerDropsBlobBase
type: string
default: 'https://azuresdkpartnerdrops.blob.core.windows.net/drops'
- name: PartnerDropsBlobSourceSuffix
type: string
default: ''
- name: NugetVersion
type: string
default: '5.4.x'
- name: DevOpsFeedID
type: string
default: ''
- name: PartnerDropsSubscription
type: string
default: 'azuresdkpartnerdrops-kv Secrets'
- name: PartnerDropsStorageName
type: string
default: 'azuresdkpartnerdrops'
- name: PartnerDropsContainerName
type: string
default: 'drops-signed'
- name: PartnerDropsBlobDestPrefix
type: string
default: '$(Release.DefinitionName)\$(Release.ReleaseId)-$(Release.AttemptNumber)'

jobs:
- job: AzurePartnerDropsToNuget
pool:
name: azsdk-pool-mms-win-2019-general
vmImage: MMS2019

steps:
- checkout: self
- checkout: azure-sdk-build-tools

- task: Powershell@2
inputs:
filePath: $(Build.SourcesDirectory)/azure-sdk-tools/eng/common/scripts/copy-from-blobstorage.ps1
arguments: >
-SourceBlobPath '${{ parameters.PartnerDropsBlobBase }}/${{ parameters.PartnerDropsBlobSourceSuffix }}'
-ApplicationId $(azuresdkpartnerdrops-application-id)
-DestinationDirectory '${{ parameters.ArtifactsPath }}'
pwsh: true
displayName: 'Copy from AzureSdkPartnerDrops'
env:
AZCOPY_SPA_CLIENT_SECRET: $(azuresdkpartnerdrops-service-principal-key)
condition: and(succeeded(), ne(variables['SkipCopyFromPartnerDrops'], 'true'))

- ${{ if ne(variables['SkipSigning'], 'true') }}:
- template: pipelines/steps/net-signing.yml@azure-sdk-build-tools
parameters:
PackagesPath: ${{ parameters.ArtifactsPath }}
BuildToolsPath: ${{ parameters.BuildToolsRepoPath }}

- task: MSBuild@1
displayName: 'Upload Symbols'
inputs:
solution: '${{ parameters.BuildToolsRepoPath }}/tools/symboltool/SymbolUploader.proj'
msbuildArguments: >
/p:PackagesPath=${{ parameters.ArtifactsPath }}
/p:MSPublicSymbolsPAT=$(azuresdk-microsoftpublicsymbols-devops-pat)
/p:MSSymbolsPAT=$(azuresdk-microsoft-devops-pat)
/p:AzureSDKSymbolsPAT=$(azuresdk-azure-sdk-devops-pat)
condition: and(succeeded(), ne(variables['SkipPublishSymbols'], 'true'))

- task: NuGetToolInstaller@1
displayName: 'Use NuGet ${{ parameters.NugetVersion }}'
inputs:
versionSpec: ${{ parameters.NugetVersion }}
condition: and(succeeded(), ne(variables['SkipPublishToNuget'], 'true'))

- ${{ if ne(parameters.DevOpsFeedID, '') }}:
- task: NuGetCommand@2
displayName: 'Publish to DevOps Feed'
inputs:
command: push
packagesToPush: '${{ parameters.ArtifactsPath }}/**/*.nupkg;!${{ parameters.ArtifactsPath }}/**/*.symbols.nupkg'
publishVstsFeed: ${{ parameters.DevOpsFeedID }}

- ${{ if eq(parameters.DevOpsFeedID, '') }}:
Comment thread
chidozieononiwu marked this conversation as resolved.
- task: NuGetCommand@2
displayName: 'Publish to Nuget'
inputs:
command: push
packagesToPush: '${{ parameters.ArtifactsPath }}/**/*.nupkg;!${{ parameters.ArtifactsPath }}/**/*.symbols.nupkg'
nuGetFeedType: external
publishFeedCredentials: Nuget.org

- task: AzureFileCopy@2
displayName: 'Copy Signed Files to Blob'
inputs:
SourcePath: '${{ parameters.ArtifactsPath }}'
azureSubscription: '${{ parameters.PartnerDropsSubscription }}'
Destination: AzureBlob
storage: '${{ parameters.PartnerDropsStorageName }}'
ContainerName: '${{ parameters.PartnerDropsContainerName }}'
BlobPrefix: '${{ parameters.PartnerDropsBlobDestPrefix }}'
condition: and(succeeded(), ne(variables['SkipCopySignedFilestoBlob'], 'true'))