@@ -6,6 +6,8 @@ parameters:
66 DependsOn : Build
77 DocArtifact : ' documentation'
88 DevFeedName : ' public/azure-sdk-for-python'
9+ PublicFeed : PyPi
10+ PublicPublishEnvironment : package-publish
911 TargetDocRepoOwner : ' '
1012 TargetDocRepoName : ' '
1113 PackageSourceOverride : " https://pkgs.dev.azure.com/azure-sdk/public/_packaging/azure-sdk-for-python/pypi/simple/"
@@ -93,9 +95,9 @@ stages:
9395
9496 - ${{if ne(artifact.skipPublishPackage, 'true')}} :
9597 - deployment : PublishPackage
96- displayName : " Publish to PyPI "
98+ displayName : " Publish to ${{ parameters.PublicFeed }} "
9799 condition : and(succeeded(), ne(variables['Skip.PublishPackage'], 'true'))
98- environment : package-publish
100+ environment : ${{ parameters.PublicPublishEnvironment }}
99101 dependsOn : TagRepository
100102
101103 templateContext :
@@ -127,39 +129,54 @@ stages:
127129 python -m pip install -r $(Pipeline.Workspace)/release_artifact/release_requirements.txt
128130 displayName: Install Release Dependencies
129131
132+ - ${{ if eq(parameters.PublicFeed, 'PyPi') }} :
133+ - pwsh : |
134+ $esrpDirectory = "$(Pipeline.Workspace)/esrp-release/${{parameters.ArtifactName}}/${{artifact.name}}"
135+ New-Item -ItemType Directory -Force -Path $esrpDirectory
136+
137+ Get-ChildItem -Path "$(Pipeline.Workspace)/${{parameters.ArtifactName}}/${{artifact.name}}" `
138+ | Where-Object { ($_.Name -like "*.tar.gz" -or $_.Name -like "*.whl") } `
139+ | Copy-Item -Destination $esrpDirectory
140+
141+ Get-ChildItem $esrpDirectory
142+ displayName : Isolate files for ESRP Publish
143+
144+ - task : EsrpRelease@9
145+ displayName : ' Publish to ESRP'
146+ inputs :
147+ ConnectedServiceName : ' Azure SDK PME Managed Identity'
148+ ClientId : ' 5f81938c-2544-4f1f-9251-dd9de5b8a81b'
149+ DomainTenantId : ' 975f013f-7f24-47e8-a7d3-abc4752bf346'
150+ UseManagedIdentity : true
151+ KeyVaultName : ' kv-azuresdk-codesign'
152+ SignCertName : ' azure-sdk-esrp-release-certificate'
153+ Intent : ' PackageDistribution'
154+ ContentType : ' PyPI'
155+ FolderLocation : $(Pipeline.Workspace)/esrp-release/${{parameters.ArtifactName}}/${{artifact.name}}
156+ Owners : $(Build.RequestedForEmail)
157+ Approvers : $(Build.RequestedForEmail)
158+ ServiceEndpointUrl : ' https://api.esrp.microsoft.com'
159+ MainPublisher : ' ESRPRELPACMANTEST'
160+
161+ - ${{ if ne(parameters.PublicFeed, 'PyPi') }} :
162+ - task : TwineAuthenticate@0
163+ displayName : ' Authenticate to feed: ${{parameters.PublicFeed}}'
164+ inputs :
165+ artifactFeeds : ${{parameters.PublicFeed}}
166+
167+ - script : |
168+ set -e
169+ twine upload --repository ${{parameters.PublicFeed}} --config-file $(PYPIRC_PATH) $(Pipeline.Workspace)/${{parameters.ArtifactName}}/${{artifact.name}}/*.whl
170+ echo "Uploaded whl to devops feed"
171+ twine upload --repository ${{parameters.PublicFeed}} --config-file $(PYPIRC_PATH) $(Pipeline.Workspace)/${{parameters.ArtifactName}}/${{artifact.name}}/*.tar.gz
172+ echo "Uploaded sdist to devops feed"
173+ displayName: 'Publish package to feed: ${{parameters.PublicFeed}}'
174+
130175 - task : TwineAuthenticate@0
131176 displayName : ' Authenticate to feed: ${{parameters.DevFeedName}}'
132177 inputs :
133178 artifactFeeds : ${{parameters.DevFeedName}}
134-
135- - pwsh : |
136- $esrpDirectory = "$(Pipeline.Workspace)/esrp-release/${{parameters.ArtifactName}}/${{artifact.name}}"
137- New-Item -ItemType Directory -Force -Path $esrpDirectory
138-
139- Get-ChildItem -Path "$(Pipeline.Workspace)/${{parameters.ArtifactName}}/${{artifact.name}}" `
140- | Where-Object { ($_.Name -like "*.tar.gz" -or $_.Name -like "*.whl") } `
141- | Copy-Item -Destination $esrpDirectory
142-
143- Get-ChildItem $esrpDirectory
144- displayName: Isolate files for ESRP Publish
145-
146- - task : EsrpRelease@9
147- displayName : ' Publish to ESRP'
148- inputs :
149- ConnectedServiceName : ' Azure SDK PME Managed Identity'
150- ClientId : ' 5f81938c-2544-4f1f-9251-dd9de5b8a81b'
151- DomainTenantId : ' 975f013f-7f24-47e8-a7d3-abc4752bf346'
152- UseManagedIdentity : true
153- KeyVaultName : ' kv-azuresdk-codesign'
154- SignCertName : ' azure-sdk-esrp-release-certificate'
155- Intent : ' PackageDistribution'
156- ContentType : ' PyPI'
157- FolderLocation : $(Pipeline.Workspace)/esrp-release/${{parameters.ArtifactName}}/${{artifact.name}}
158- Owners : $(Build.RequestedForEmail)
159- Approvers : $(Build.RequestedForEmail)
160- ServiceEndpointUrl : ' https://api.esrp.microsoft.com'
161- MainPublisher : ' ESRPRELPACMANTEST'
162-
179+
163180 - script : |
164181 set -e
165182 twine upload --repository ${{parameters.DevFeedName}} --config-file $(PYPIRC_PATH) $(Pipeline.Workspace)/${{parameters.ArtifactName}}/${{artifact.name}}/*.whl
0 commit comments