From 0e075581fecc14e745af37c8ac8d858b84e01cc5 Mon Sep 17 00:00:00 2001 From: Chidozie Ononiwu Date: Tue, 15 Feb 2022 17:41:57 -0800 Subject: [PATCH 1/3] Add Partner Drop Yml Pipelines --- .../azuresdkpartnerdrops-to-devops.yml | 30 ++++++ .../azuresdkpartnerdrops-to-nuget.yml | 25 +++++ .../azuresdkpartnerdrops-to-nugetfeed.yml | 94 +++++++++++++++++++ eng/scripts/copy-from-blob-storage.ps1 | 10 ++ 4 files changed, 159 insertions(+) create mode 100644 eng/pipelines/azuresdkpartnerdrops-to-devops.yml create mode 100644 eng/pipelines/azuresdkpartnerdrops-to-nuget.yml create mode 100644 eng/pipelines/templates/jobs/azuresdkpartnerdrops-to-nugetfeed.yml create mode 100644 eng/scripts/copy-from-blob-storage.ps1 diff --git a/eng/pipelines/azuresdkpartnerdrops-to-devops.yml b/eng/pipelines/azuresdkpartnerdrops-to-devops.yml new file mode 100644 index 00000000000..821f5389530 --- /dev/null +++ b/eng/pipelines/azuresdkpartnerdrops-to-devops.yml @@ -0,0 +1,30 @@ +parameters: +- name: PartnerDropsBlobPath + type: string + default: '' +- name: PartnerDropsSubscription + type: string + default: '' +- name: PartnerDropsStorageName + type: string + default: '' +- name: PartnerDropsContainerName + type: string + default: '' +- name: PartnerDropsBlobPrefix + 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' + +extends: + template: /eng/pipelines/templates/steps/azuresdkpartnerdrops-to-nugetfeed.yml + parameters: + PartnerDropsBlobPath: ${{ parameters.PartnerDropsBlobPath }} + PartnerDropsSubscription: ${{ parameters.PartnerDropsSubscription }} + PartnerDropsStorageName: ${{ parameters.PartnerDropsStorageName }} + PartnerDropsContainerName: ${{ parameters.PartnerDropsContainerName }} + PartnerDropsBlobPrefix: ${{ parameters.PartnerDropsBlobPrefix }} + DevOpsFeedID: ${{ parameters.DevOpsFeedID }} \ No newline at end of file diff --git a/eng/pipelines/azuresdkpartnerdrops-to-nuget.yml b/eng/pipelines/azuresdkpartnerdrops-to-nuget.yml new file mode 100644 index 00000000000..c57707469a3 --- /dev/null +++ b/eng/pipelines/azuresdkpartnerdrops-to-nuget.yml @@ -0,0 +1,25 @@ +parameters: +- name: PartnerDropsBlobPath + type: string + default: '' +- name: PartnerDropsSubscription + type: string + default: '' +- name: PartnerDropsStorageName + type: string + default: '' +- name: PartnerDropsContainerName + type: string + default: '' +- name: PartnerDropsBlobPrefix + type: string + default: '' + +extends: + template: /eng/pipelines/templates/steps/azuresdkpartnerdrops-to-nugetfeed.yml + parameters: + PartnerDropsBlobPath: ${{ parameters.PartnerDropsBlobPath }} + PartnerDropsSubscription: ${{ parameters.PartnerDropsSubscription }} + PartnerDropsStorageName: ${{ parameters.PartnerDropsStorageName }} + PartnerDropsContainerName: ${{ parameters.PartnerDropsContainerName }} + PartnerDropsBlobPrefix: ${{ parameters.PartnerDropsBlobPrefix }} \ No newline at end of file diff --git a/eng/pipelines/templates/jobs/azuresdkpartnerdrops-to-nugetfeed.yml b/eng/pipelines/templates/jobs/azuresdkpartnerdrops-to-nugetfeed.yml new file mode 100644 index 00000000000..aa0f623f3be --- /dev/null +++ b/eng/pipelines/templates/jobs/azuresdkpartnerdrops-to-nugetfeed.yml @@ -0,0 +1,94 @@ + +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: + BuildToolsRepoPath: '$(Build.SourcesDirectory)/azure-sdk-build-tools' + ArtifactsPath: '$(System.DefaultWorkingDirectory)/artifacts' + PartnerDropsBlobBase: 'https://azuresdkpartnerdrops.blob.core.windows.net/drops' + PartnerDropsBlobPath: '' + NugetVersion: '5.4.x' + DevOpsFeedID: '' + PartnerDropsSubscription: '' + PartnerDropsStorageName: '' + PartnerDropsContainerName: '' + PartnerDropsBlobPrefix: '' + +jobs: + - job: AzurePartnerDropsToNuget + pool: + name: azsdk-pool-mms-win-2019-general + vmImage: MMS2019 + + steps: + - checkout: self + - checkout: azure-sdk-build-tools + + - task: PowerShell@2 + displayName: 'Copy from AzureSdkPartnerDrops' + inputs: + targetType: filePath + filePath: '$(Build.SourcesDirectory)/azure-sdk-tools/eng/scripts/copy-from-blob-storage.ps1' + arguments: > + -SourceBlobPath '${{ parameters.PartnerDropsBlobBase }}/${{ parameters.PartnerDropsBlobPath }}' + -SASKey $(azuresdkpartnerdrops-SAS) + -DestinationDirectory ${{ parameters.ArtifactsPath }} + pwsh: true + condition: and(succeeded(), ne(variables['SkipCopyFromPartnerDrops'], 'true')) + + - template: pipelines/steps/net-signing.yml@azure-sdk-build-tools + parameters: + PackagesPath: ${{ parameters.ArtifactsPath }} + BuildToolsPath: ${{ parameters.BuildToolsRepoPath }} + condition: and(succeeded(), ne(variables['SkipSigning'], 'true')) + + - 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 }} + condition: and(succeeded(), ne(variables['SkipPublishToDevOpdFeed'], 'true')) + + - ${{ if eq(parameters.DevOpsFeedID, '') }}: + - task: NuGetCommand@2 + displayName: 'Publish to Nuget' + inputs: + command: push + packagesToPush: '${{ parameters.ArtifactsPath }}/**/*.nupkg;!${{ parameters.ArtifactsPath }}/**/*.symbols.nupkg' + nuGetFeedType: external + publishFeedCredentials: Nuget.org + condition: and(succeeded(), ne(variables['SkipPublishToNuget'], 'true')) + + - 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.PartnerDropsBlobPrefix }}' + condition: and(succeeded(), ne(variables['SkipCopySignedFilestoBlob'], 'true')) \ No newline at end of file diff --git a/eng/scripts/copy-from-blob-storage.ps1 b/eng/scripts/copy-from-blob-storage.ps1 new file mode 100644 index 00000000000..65f72676ab8 --- /dev/null +++ b/eng/scripts/copy-from-blob-storage.ps1 @@ -0,0 +1,10 @@ +param ( + [Parameter(Mandatory = $true)] + [string] $SourceBlobPath, + [Parameter(Mandatory = $true)] + [string] $SASKey, + [Parameter(Mandatory = $true)] + [string] $DestinationDirectory +) + +azcopy cp "${SourceBlobPath}?${SASKey}" "${DestinationDirectory}" --recursive=true \ No newline at end of file From 138da06e7ca7b9bf60d663e6211420e7caf4517d Mon Sep 17 00:00:00 2001 From: Chidozie Ononiwu Date: Tue, 22 Feb 2022 15:13:07 -0800 Subject: [PATCH 2/3] Fix up parameters --- .../scripts/copy-from-blob-storage.ps1 | 4 +- .../azuresdkpartnerdrops-to-devops.yml | 24 +-- .../azuresdkpartnerdrops-to-nuget.yml | 22 +-- .../azuresdkpartnerdrops-to-nugetfeed.yml | 158 ++++++++++-------- 4 files changed, 97 insertions(+), 111 deletions(-) rename eng/{ => common}/scripts/copy-from-blob-storage.ps1 (55%) diff --git a/eng/scripts/copy-from-blob-storage.ps1 b/eng/common/scripts/copy-from-blob-storage.ps1 similarity index 55% rename from eng/scripts/copy-from-blob-storage.ps1 rename to eng/common/scripts/copy-from-blob-storage.ps1 index 65f72676ab8..413fbfd1c5e 100644 --- a/eng/scripts/copy-from-blob-storage.ps1 +++ b/eng/common/scripts/copy-from-blob-storage.ps1 @@ -7,4 +7,6 @@ param ( [string] $DestinationDirectory ) -azcopy cp "${SourceBlobPath}?${SASKey}" "${DestinationDirectory}" --recursive=true \ No newline at end of file +Write-Host "Copying from $SourceBlobPath to $DestinationDirectory ..." +$Source = $SourceBlobPath + $SASKey +& azcopy cp $Source $DestinationDirectory --recursive \ No newline at end of file diff --git a/eng/pipelines/azuresdkpartnerdrops-to-devops.yml b/eng/pipelines/azuresdkpartnerdrops-to-devops.yml index 821f5389530..d4eb79acba6 100644 --- a/eng/pipelines/azuresdkpartnerdrops-to-devops.yml +++ b/eng/pipelines/azuresdkpartnerdrops-to-devops.yml @@ -1,17 +1,5 @@ parameters: -- name: PartnerDropsBlobPath - type: string - default: '' -- name: PartnerDropsSubscription - type: string - default: '' -- name: PartnerDropsStorageName - type: string - default: '' -- name: PartnerDropsContainerName - type: string - default: '' -- name: PartnerDropsBlobPrefix +- name: PartnerDropsBlobSourceSuffix type: string default: '' - name: DevOpsFeedID @@ -20,11 +8,7 @@ parameters: default: '29ec6040-b234-4e31-b139-33dc4287b756/fa8c16a3-dbe0-4de2-a297-03065ec1ba3f' extends: - template: /eng/pipelines/templates/steps/azuresdkpartnerdrops-to-nugetfeed.yml + template: /eng/pipelines/templates/jobs/azuresdkpartnerdrops-to-nugetfeed.yml parameters: - PartnerDropsBlobPath: ${{ parameters.PartnerDropsBlobPath }} - PartnerDropsSubscription: ${{ parameters.PartnerDropsSubscription }} - PartnerDropsStorageName: ${{ parameters.PartnerDropsStorageName }} - PartnerDropsContainerName: ${{ parameters.PartnerDropsContainerName }} - PartnerDropsBlobPrefix: ${{ parameters.PartnerDropsBlobPrefix }} - DevOpsFeedID: ${{ parameters.DevOpsFeedID }} \ No newline at end of file + DevOpsFeedID: ${{ parameters.DevOpsFeedID }} + PartnerDropsBlobSourceSuffix: ${{ parameters.PartnerDropsBlobSourceSuffix }} \ No newline at end of file diff --git a/eng/pipelines/azuresdkpartnerdrops-to-nuget.yml b/eng/pipelines/azuresdkpartnerdrops-to-nuget.yml index c57707469a3..6b1c3ce0d07 100644 --- a/eng/pipelines/azuresdkpartnerdrops-to-nuget.yml +++ b/eng/pipelines/azuresdkpartnerdrops-to-nuget.yml @@ -1,25 +1,9 @@ parameters: -- name: PartnerDropsBlobPath - type: string - default: '' -- name: PartnerDropsSubscription - type: string - default: '' -- name: PartnerDropsStorageName - type: string - default: '' -- name: PartnerDropsContainerName - type: string - default: '' -- name: PartnerDropsBlobPrefix +- name: PartnerDropsBlobSourceSuffix type: string default: '' extends: - template: /eng/pipelines/templates/steps/azuresdkpartnerdrops-to-nugetfeed.yml + template: /eng/pipelines/templates/jobs/azuresdkpartnerdrops-to-nugetfeed.yml parameters: - PartnerDropsBlobPath: ${{ parameters.PartnerDropsBlobPath }} - PartnerDropsSubscription: ${{ parameters.PartnerDropsSubscription }} - PartnerDropsStorageName: ${{ parameters.PartnerDropsStorageName }} - PartnerDropsContainerName: ${{ parameters.PartnerDropsContainerName }} - PartnerDropsBlobPrefix: ${{ parameters.PartnerDropsBlobPrefix }} \ No newline at end of file + PartnerDropsBlobSourceSuffix: ${{ parameters.PartnerDropsBlobSourceSuffix }} \ No newline at end of file diff --git a/eng/pipelines/templates/jobs/azuresdkpartnerdrops-to-nugetfeed.yml b/eng/pipelines/templates/jobs/azuresdkpartnerdrops-to-nugetfeed.yml index aa0f623f3be..241582dc587 100644 --- a/eng/pipelines/templates/jobs/azuresdkpartnerdrops-to-nugetfeed.yml +++ b/eng/pipelines/templates/jobs/azuresdkpartnerdrops-to-nugetfeed.yml @@ -7,16 +7,36 @@ resources: ref: refs/tags/azure-sdk-build-tools_20211215.1 parameters: - BuildToolsRepoPath: '$(Build.SourcesDirectory)/azure-sdk-build-tools' - ArtifactsPath: '$(System.DefaultWorkingDirectory)/artifacts' - PartnerDropsBlobBase: 'https://azuresdkpartnerdrops.blob.core.windows.net/drops' - PartnerDropsBlobPath: '' - NugetVersion: '5.4.x' - DevOpsFeedID: '' - PartnerDropsSubscription: '' - PartnerDropsStorageName: '' - PartnerDropsContainerName: '' - PartnerDropsBlobPrefix: '' + - 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 @@ -24,71 +44,67 @@ jobs: name: azsdk-pool-mms-win-2019-general vmImage: MMS2019 - steps: - - checkout: self - - checkout: azure-sdk-build-tools + steps: + - checkout: self + - checkout: azure-sdk-build-tools - - task: PowerShell@2 - displayName: 'Copy from AzureSdkPartnerDrops' - inputs: - targetType: filePath - filePath: '$(Build.SourcesDirectory)/azure-sdk-tools/eng/scripts/copy-from-blob-storage.ps1' - arguments: > - -SourceBlobPath '${{ parameters.PartnerDropsBlobBase }}/${{ parameters.PartnerDropsBlobPath }}' - -SASKey $(azuresdkpartnerdrops-SAS) - -DestinationDirectory ${{ parameters.ArtifactsPath }} - pwsh: true - condition: and(succeeded(), ne(variables['SkipCopyFromPartnerDrops'], 'true')) + - pwsh: | + azcopy login --service-principal --application-id $(azuresdkpartnerdrops-application-id) + $SourceBlob = "${{ parameters.PartnerDropsBlobBase }}/${{ parameters.PartnerDropsBlobSourceSuffix }}" + Write-Host "Copying from $SourceBlob to ${{ parameters.ArtifactsPath }} ..." + azcopy cp "${SourceBlob}/*" "${{ parameters.ArtifactsPath }}" --recursive=true + displayName: 'Copy from AzureSdkPartnerDrops' + env: + AZCOPY_SPA_CLIENT_SECRET: $(azuresdkpartnerdrops-service-principal-key) + condition: and(succeeded(), ne(variables['SkipCopyFromPartnerDrops'], 'true')) - - template: pipelines/steps/net-signing.yml@azure-sdk-build-tools - parameters: - PackagesPath: ${{ parameters.ArtifactsPath }} - BuildToolsPath: ${{ parameters.BuildToolsRepoPath }} - condition: and(succeeded(), ne(variables['SkipSigning'], '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: 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')) + - 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 }} - condition: and(succeeded(), ne(variables['SkipPublishToDevOpdFeed'], '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, '') }}: - - task: NuGetCommand@2 - displayName: 'Publish to Nuget' - inputs: - command: push - packagesToPush: '${{ parameters.ArtifactsPath }}/**/*.nupkg;!${{ parameters.ArtifactsPath }}/**/*.symbols.nupkg' - nuGetFeedType: external - publishFeedCredentials: Nuget.org - condition: and(succeeded(), ne(variables['SkipPublishToNuget'], 'true')) + - ${{ if eq(parameters.DevOpsFeedID, '') }}: + - 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.PartnerDropsBlobPrefix }}' - condition: and(succeeded(), ne(variables['SkipCopySignedFilestoBlob'], 'true')) \ No newline at end of file + - 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')) \ No newline at end of file From 56974512a3c9847b0610974f39fed6283ebb90b6 Mon Sep 17 00:00:00 2001 From: Chidozie Ononiwu Date: Fri, 25 Feb 2022 11:40:15 -0800 Subject: [PATCH 3/3] Update general azcopy tool for copying from blobstorage --- ...m-blob-storage.ps1 => copy-from-blobstorage.ps1} | 6 +++--- .../jobs/azuresdkpartnerdrops-to-nugetfeed.yml | 13 ++++++++----- 2 files changed, 11 insertions(+), 8 deletions(-) rename eng/common/scripts/{copy-from-blob-storage.ps1 => copy-from-blobstorage.ps1} (60%) diff --git a/eng/common/scripts/copy-from-blob-storage.ps1 b/eng/common/scripts/copy-from-blobstorage.ps1 similarity index 60% rename from eng/common/scripts/copy-from-blob-storage.ps1 rename to eng/common/scripts/copy-from-blobstorage.ps1 index 413fbfd1c5e..3cc1133aeaf 100644 --- a/eng/common/scripts/copy-from-blob-storage.ps1 +++ b/eng/common/scripts/copy-from-blobstorage.ps1 @@ -2,11 +2,11 @@ param ( [Parameter(Mandatory = $true)] [string] $SourceBlobPath, [Parameter(Mandatory = $true)] - [string] $SASKey, + [string] $ApplicationId, [Parameter(Mandatory = $true)] [string] $DestinationDirectory ) +azcopy login --service-principal --application-id $ApplicationId Write-Host "Copying from $SourceBlobPath to $DestinationDirectory ..." -$Source = $SourceBlobPath + $SASKey -& azcopy cp $Source $DestinationDirectory --recursive \ No newline at end of file +azcopy cp "${SourceBlobPath}/*" $DestinationDirectory --recursive=true \ No newline at end of file diff --git a/eng/pipelines/templates/jobs/azuresdkpartnerdrops-to-nugetfeed.yml b/eng/pipelines/templates/jobs/azuresdkpartnerdrops-to-nugetfeed.yml index 241582dc587..a0a80925f20 100644 --- a/eng/pipelines/templates/jobs/azuresdkpartnerdrops-to-nugetfeed.yml +++ b/eng/pipelines/templates/jobs/azuresdkpartnerdrops-to-nugetfeed.yml @@ -48,11 +48,14 @@ jobs: - checkout: self - checkout: azure-sdk-build-tools - - pwsh: | - azcopy login --service-principal --application-id $(azuresdkpartnerdrops-application-id) - $SourceBlob = "${{ parameters.PartnerDropsBlobBase }}/${{ parameters.PartnerDropsBlobSourceSuffix }}" - Write-Host "Copying from $SourceBlob to ${{ parameters.ArtifactsPath }} ..." - azcopy cp "${SourceBlob}/*" "${{ parameters.ArtifactsPath }}" --recursive=true + - 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)