Skip to content

Commit 08c54b4

Browse files
authored
Merge 2b2eb49 into 9f6cc81
2 parents 9f6cc81 + 2b2eb49 commit 08c54b4

File tree

5 files changed

+39
-201
lines changed

5 files changed

+39
-201
lines changed

eng/maven.publish.settings.xml

Lines changed: 1 addition & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
1+
<settings xmlns="http://maven.apache.org/SETTINGS/1.0.0"
22
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/SETTINGS/1.0.0
33
https://maven.apache.org/xsd/settings-1.0.0.xsd">
44
<servers>
@@ -21,15 +21,4 @@
2121
<activeProfiles>
2222
<activeProfile>signing</activeProfile>
2323
</activeProfiles>
24-
25-
<!--
26-
NOTE: Maven Central downloads are quite unreliable. This gives us better reliability.
27-
-->
28-
<mirrors>
29-
<mirror>
30-
<id>repo-maven-apache-org-mirror</id>
31-
<url>https://repo-maven-apache-org.azurefd.net/maven2</url>
32-
<mirrorOf>central</mirrorOf>
33-
</mirror>
34-
</mirrors>
3524
</settings>

eng/pipelines/templates/steps/java-publishing.yml

Lines changed: 12 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,8 @@ steps:
1919
filePath: ${{ parameters.JavaRepoRoot }}/eng/scripts/Publish-MavenPackages.ps1
2020
arguments: >
2121
-ArtifactDirectory ${{ parameters.ArtifactDirectory }}
22-
-GroupIDFilter ${{ parameters.GroupID }}
23-
-ArtifactIDFilter ${{ parameters.ArtifactID }}
22+
-GroupIDFilter "${{ parameters.GroupID }}"
23+
-ArtifactIDFilter "${{ parameters.ArtifactID }}"
2424
-RepositoryUrl https://pkgs.dev.azure.com/azure-sdk/public/_packaging/azure-sdk-$(Build.BuildID)/maven/v1
2525
-RepositoryUsername nobody
2626
-RepositoryPassword $(System.AccessToken)
@@ -37,8 +37,8 @@ steps:
3737
filePath: ${{ parameters.JavaRepoRoot }}/eng/scripts/Publish-MavenPackages.ps1
3838
arguments: >
3939
-ArtifactDirectory ${{ parameters.ArtifactDirectory }}
40-
-GroupIDFilter ${{ parameters.GroupID }}
41-
-ArtifactIDFilter ${{ parameters.ArtifactID }}
40+
-GroupIDFilter "${{ parameters.GroupID }}"
41+
-ArtifactIDFilter "${{ parameters.ArtifactID }}"
4242
-RepositoryUrl ${{ parameters.RepositoryUrl }}
4343
-RepositoryUsername nobody
4444
-RepositoryPassword $(System.AccessToken)
@@ -55,34 +55,15 @@ steps:
5555
filePath: ${{ parameters.JavaRepoRoot }}/eng/scripts/Publish-MavenPackages.ps1
5656
arguments: >
5757
-ArtifactDirectory ${{ parameters.ArtifactDirectory }}
58-
-GroupIDFilter ${{ parameters.GroupID }}
59-
-ArtifactIDFilter ${{ parameters.ArtifactID }}
58+
-GroupIDFilter "${{ parameters.GroupID }}"
59+
-ArtifactIDFilter "${{ parameters.ArtifactID }}"
6060
-RepositoryUrl https://pkgs.dev.azure.com/azure-sdk/public/_packaging/azure-sdk-for-android/maven/v1
6161
-RepositoryUsername nobody
6262
-RepositoryPassword $(System.AccessToken)
6363
-GPGExecutablePath ${{ parameters.GPGExecutablePath }}
6464
-ShouldPublish:$${{parameters.ShouldPublish}}
6565
-InformationAction Continue
6666
67-
- ${{if eq(parameters.Target, 'MavenCentral')}}:
68-
- task: PowerShell@2
69-
displayName: 'Publish to Maven Central'
70-
inputs:
71-
pwsh: true
72-
workingDirectory: $(Agent.BuildDirectory)
73-
filePath: ${{ parameters.JavaRepoRoot }}/eng/scripts/Publish-MavenPackages.ps1
74-
arguments: >
75-
-ArtifactDirectory ${{ parameters.ArtifactDirectory }}
76-
-GroupIDFilter "${{ parameters.GroupID }}"
77-
-ArtifactIDFilter "${{ parameters.ArtifactID }}"
78-
-RepositoryUrl https://oss.sonatype.org/service/local/staging/deploy/maven2/
79-
-RepositoryUsername azuresdk
80-
-RepositoryPassword $(azuresdk-sonatype-password)
81-
-GPGExecutablePath ${{ parameters.GPGExecutablePath }}
82-
-StageOnly:$${{parameters.StageOnly}}
83-
-ShouldPublish:$${{parameters.ShouldPublish}}
84-
-InformationAction Continue
85-
8667
- ${{if eq(parameters.Target, 'EsrpRelease')}}:
8768
- task: PowerShell@2
8869
displayName: 'Gpg sign and hash packages'
@@ -98,10 +79,14 @@ steps:
9879
-GPGExecutablePath ${{ parameters.GPGExecutablePath }}
9980
-InformationAction Continue
10081
- ${{if and(eq(parameters.ShouldPublish, 'true'), ne(parameters.StageOnly, 'true'))}}:
101-
- task: EsrpRelease@1
82+
- task: EsrpRelease@7
10283
displayName: 'Publish to ESRP'
10384
inputs:
104-
ConnectedServiceName: 'ESRP Release Service'
85+
ConnectedServiceName: 'Azure SDK Engineering System'
86+
ClientId: '5f81938c-2544-4f1f-9251-dd9de5b8a81b'
87+
KeyVaultName: 'AzureSDKEngKeyVault'
88+
AuthCertName: 'azure-sdk-esrp-release-auth-certificate'
89+
SignCertName: 'azure-sdk-esrp-release-sign-certificate'
10590
Intent: 'PackageDistribution'
10691
ContentType: 'Maven'
10792
PackageLocation: $(PackageLocation)

eng/scripts/MavenPackaging.ps1

Lines changed: 0 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,6 @@ class MavenPackageDetail {
1010
[string]$ArtifactID
1111
[string]$Version
1212
[bool]$IsSnapshot
13-
[string]$SonaTypeProfileID
1413
[AssociatedArtifact[]]$AssociatedArtifacts
1514
}
1615

@@ -63,35 +62,6 @@ function Get-AssociatedArtifacts([MavenPackageDetail]$PackageDetail) {
6362
return $associatedArtifacts
6463
}
6564

66-
# This function maps the group ID that is detected in the POM file against a
67-
# know set of mappings to SonaType Nexus profile IDs. A profile ID is needed
68-
# to stage a Maven package in https://oss.sonatype.org prior to being "released"
69-
# into the public Maven Central repository (and mirrors).
70-
#
71-
# NOTE that the current azuresdk SonaType user identity has access to all of
72-
# the profile Ids below for publishing. If a new profile is introduced then
73-
# the azuresdk identity will need to be granted access to it so that it can
74-
# publish to it.
75-
function Get-SonaTypeProfileID([string]$GroupID) {
76-
$sonaTypeProfileID = switch -wildcard ($GroupID)
77-
{
78-
"com.azure*" { "88192f04117501" }
79-
"com.microsoft" { "108eda13eb3910" }
80-
"com.microsoft.azure*" { "534d15ee3800f4" }
81-
"com.microsoft.commondatamodel*" { "36ba35bb1eff8" }
82-
"com.microsoft.rest*" { "66eef5eb9b85bd" }
83-
"com.microsoft.servicefabric*" { "8acff2e04dc15e" }
84-
"com.microsoft.spring*" { "615994e851c580" }
85-
"com.microsoft.sqlserver*" { "2bafd8aecdb240" }
86-
"com.windowsazure*" { "222b383b84716" }
87-
default {
88-
throw "Profile ID for group ID $GroupID was not found."
89-
}
90-
}
91-
92-
return $sonaTypeProfileID
93-
}
94-
9565
# This function returns an array of object where each object represents a logical Maven package
9666
# including all of its associated artifacts. It takes care of extracting out group ID, artifact ID,
9767
# and version information, as well as providing metadata for each of the associated files including
@@ -127,9 +97,6 @@ function Get-MavenPackageDetails([string]$ArtifactDirectory) {
12797
$packageDetail.IsSnapshot = $packageDetail.Version.EndsWith("-SNAPSHOT")
12898
Write-Information "IsSnapshot is: $($packageDetail.IsSnapshot)"
12999

130-
$packageDetail.SonaTypeProfileID = Get-SonaTypeProfileID($packageDetail.GroupID)
131-
Write-Information "SonaType Profile ID is: $($packageDetail.SonaTypeProfileID)"
132-
133100
$packageDetail.FullyQualifiedName = "$($packageDetail.GroupID):$($packageDetail.ArtifactID):$($packageDetail.Version)"
134101
Write-Information "Fully-qualified name is: $($packageDetail.FullyQualifiedName)"
135102

eng/scripts/Publish-MavenPackages.ps1

Lines changed: 25 additions & 128 deletions
Original file line numberDiff line numberDiff line change
@@ -128,23 +128,9 @@ foreach ($packageDetail in $packageDetails) {
128128
if ($packageReposityUrl -match "https://pkgs.dev.azure.com/azure-sdk/\b(internal|public)\b/*") {
129129
# Azure DevOps feeds don't support staging
130130
$shouldPublishPackage = $ShouldPublish -and !$StageOnly
131-
$releaseType = 'AzureDevOps'
132-
}
133-
elseif ($packageReposityUrl -like "https://oss.sonatype.org/service/local/staging/deploy/maven2/") {
134-
if ($packageDetail.IsSnapshot) {
135-
# Snapshots don't go to the standard maven central url
136-
$packageReposityUrl = "https://oss.sonatype.org/content/repositories/snapshots/"
137-
$releaseType = 'MavenCentralSnapshot'
138-
}
139-
elseif ($StageOnly) {
140-
$releaseType = 'MavenCentralStaging'
141-
}
142-
else {
143-
$releaseType = 'MavenCentral'
144-
}
145131
}
146132
else {
147-
throw "Repository URL must be either an Azure Artifacts feed, or a SonaType Nexus feed."
133+
throw "Repository URL must be an Azure Artifacts feed, anything else must be published through ESRP."
148134
}
149135

150136
#Local GPG deployment is required when we're not going to publish a package, or when we're publishing to maven central
@@ -161,6 +147,15 @@ foreach ($packageDetail in $packageDetails) {
161147
$gpgexeOption = "-Dgpgexe=$GPGExecutablePath"
162148
Write-Information "GPG Executable Option is: $gpgexeOption"
163149

150+
$gpgPluginVersion = . $PSScriptRoot\Get-ExternalDependencyVersion.ps1 -GroupId 'org.apache.maven.plugins' -ArtifactId 'maven-gpg-plugin'
151+
if ($LASTEXITCODE) {
152+
Write-Information "##vso[task.logissue type=error]Unable to resolve version of external dependency 'org.apache.maven.plugins:maven-gpg-plugin'"
153+
exit $LASTEXITCODE
154+
}
155+
156+
$gpgSignAndDeployWithVer = "org.apache.maven.plugins:maven-gpg-plugin:$gpgPluginVersion`:sign-and-deploy-file"
157+
158+
164159
if ($requiresLocalGpg) {
165160
$localRepositoryDirectory = Get-RandomRepositoryDirectory
166161
$localRepositoryDirectoryUri = $([Uri]$localRepositoryDirectory.FullName).AbsoluteUri
@@ -170,8 +165,8 @@ foreach ($packageDetail in $packageDetails) {
170165
Write-Information "URL Option is: $urlOption"
171166

172167
Write-Information "Signing and deploying package to $localRepositoryDirectoryUri"
173-
Write-Information "mvn gpg:sign-and-deploy-file `"--batch-mode`" `"$pomOption`" `"$fileOption`" `"$javadocOption`" `"$sourcesOption`" `"$filesOption`" $classifiersOption `"$typesOption`" `"$urlOption`" `"$gpgexeOption`" `"-DrepositoryId=target-repo`" `"--settings=$PSScriptRoot\..\maven.publish.settings.xml`""
174-
mvn gpg:sign-and-deploy-file "--batch-mode" "$pomOption" "$fileOption" "$javadocOption" "$sourcesOption" "$filesOption" $classifiersOption "$typesOption" "$urlOption" "$gpgexeOption" "-DrepositoryId=target-repo" "--settings=$PSScriptRoot\..\maven.publish.settings.xml"
168+
Write-Information "mvn $gpgSignAndDeployWithVer `"--batch-mode`" `"$pomOption`" `"$fileOption`" `"$javadocOption`" `"$sourcesOption`" `"$filesOption`" $classifiersOption `"$typesOption`" `"$urlOption`" `"$gpgexeOption`" `"-DrepositoryId=target-repo`" `"--settings=$PSScriptRoot\..\maven.publish.settings.xml`""
169+
mvn $gpgSignAndDeployWithVer "--batch-mode" "$pomOption" "$fileOption" "$javadocOption" "$sourcesOption" "$filesOption" $classifiersOption "$typesOption" "$urlOption" "$gpgexeOption" "-DrepositoryId=target-repo" "--settings=$PSScriptRoot\..\maven.publish.settings.xml"
175170
if ($LASTEXITCODE) { exit $LASTEXITCODE }
176171
}
177172

@@ -181,121 +176,23 @@ foreach ($packageDetail in $packageDetails) {
181176
continue
182177
}
183178

184-
if ($releaseType -eq 'AzureDevOps') {
185-
Write-Information "GPG Signing and deploying package in one step to devops feed: $packageReposityUrl"
186-
Write-Information "mvn gpg:sign-and-deploy-file `"--batch-mode`" `"$pomOption`" `"$fileOption`" `"$javadocOption`" `"$sourcesOption`" `"$filesOption`" $classifiersOption `"$typesOption`" `"-Durl=$packageReposityUrl`" `"$gpgexeOption`" `"-DrepositoryId=target-repo`" `"-Drepo.password=[redacted]`" `"--settings=$PSScriptRoot\..\maven.publish.settings.xml`""
187-
mvn gpg:sign-and-deploy-file "--batch-mode" "$pomOption" "$fileOption" "$javadocOption" "$sourcesOption" "$filesOption" $classifiersOption "$typesOption" "-Durl=$packageReposityUrl" "$gpgexeOption" "-DrepositoryId=target-repo" "-Drepo.password=$RepositoryPassword" "--settings=$PSScriptRoot\..\maven.publish.settings.xml"
188-
189-
if ($LASTEXITCODE -eq 0) {
190-
Write-Information "Package $($packageDetail.FullyQualifiedName) deployed"
191-
continue
192-
}
193-
194-
Write-Information "Release attempt $attemt exited with code $LASTEXITCODE"
195-
Write-Information "Checking Azure DevOps to see if release was successful"
196-
if (Test-ReleasedPackage -RepositoryUrl $packageReposityUrl -PackageDetail $packageDetail -BearerToken $RepositoryPassword) {
197-
Write-Information "Package $($packageDetail.FullyQualifiedName) deployed despite non-zero exit code."
198-
continue
199-
}
179+
Write-Information "GPG Signing and deploying package in one step to devops feed: $packageReposityUrl"
180+
Write-Information "mvn $gpgSignAndDeployWithVer `"--batch-mode`" `"$pomOption`" `"$fileOption`" `"$javadocOption`" `"$sourcesOption`" `"$filesOption`" $classifiersOption `"$typesOption`" `"-Durl=$packageReposityUrl`" `"$gpgexeOption`" `"-DrepositoryId=target-repo`" `"-Drepo.password=[redacted]`" `"--settings=$PSScriptRoot\..\maven.publish.settings.xml`""
181+
mvn $gpgSignAndDeployWithVer "--batch-mode" "$pomOption" "$fileOption" "$javadocOption" "$sourcesOption" "$filesOption" $classifiersOption "$typesOption" "-Durl=$packageReposityUrl" "$gpgexeOption" "-DrepositoryId=target-repo" "-Drepo.password=$RepositoryPassword" "--settings=$PSScriptRoot\..\maven.publish.settings.xml"
200182

201-
exit $LASTEXITCODE
202-
}
203-
elseif ($releaseType -eq 'MavenCentralSnapshot') {
204-
Write-Information "GPG Signing and deploying package in one step to Sonatype snapshots: $packageReposityUrl"
205-
Write-Information "mvn gpg:sign-and-deploy-file `"--batch-mode`" `"$pomOption`" `"$fileOption`" `"$javadocOption`" `"$sourcesOption`" `"$filesOption`" $classifiersOption `"$typesOption`" `"-Durl=$packageReposityUrl`" `"$gpgexeOption`" `"-DrepositoryId=target-repo`" `"-Drepo.username=`"`"$RepositoryUsername`"`"`" `"-Drepo.password=[redacted]`" `"--settings=$PSScriptRoot\..\maven.publish.settings.xml`""
206-
mvn gpg:sign-and-deploy-file "--batch-mode" "$pomOption" "$fileOption" "$javadocOption" "$sourcesOption" "$filesOption" $classifiersOption "$typesOption" "-Durl=$packageReposityUrl" "$gpgexeOption" "-DrepositoryId=target-repo" "-Drepo.username=""$RepositoryUsername""" "-Drepo.password=""$RepositoryPassword""" "--settings=$PSScriptRoot\..\maven.publish.settings.xml"
207-
if ($LASTEXITCODE) { exit $LASTEXITCODE }
183+
if ($LASTEXITCODE -eq 0) {
184+
Write-Information "Package $($packageDetail.FullyQualifiedName) deployed"
185+
continue
208186
}
209-
else {
210-
211-
$resultsTime = [diagnostics.stopwatch]::StartNew()
212-
# IsMavenPackageVersionPublished is a very quick check to see if the pom is on maven which takes about 1-2 seconds
213-
# to complete. If the POM if there, Test-ReleasedPackage will look at all of the package artifacts (pom, jars, .md)
214-
# and compare their hashes. The reason we need the quick check first, is that Test-ReleasedPackage, when called
215-
# on something that hasn't been released, takes 90 seconds if none of the artifacts have been released and about
216-
# 25 seconds, if they have. The first time an artifact is being released we use IsMavenPackageVersionPublished so
217-
# we don't add 90 seconds on to every Maven release.
218-
if (IsMavenPackageVersionPublished -pkgId $packageDetail.ArtifactID -pkgVersion $packageDetail.Version -groupId $packageDetail.GroupId) {
219-
if (Test-ReleasedPackage -RepositoryUrl $packageReposityUrl -PackageDetail $packageDetail) {
220-
Write-Information "Package $($packageDetail.FullyQualifiedName) has already been deployed."
221-
continue
222-
}
223-
} else {
224-
Write-Information "$($packageDetail.FullyQualifiedName) has not yet deployed."
225-
}
226-
Write-Information "Time to test released package=$($resultstime.Elapsed.ToString('dd\.hh\:mm\:ss'))"
227-
228-
# Maven Central Staging + optional Release
229-
$repositoryDirectoryOption = "-DrepositoryDirectory=$localRepositoryDirectory"
230-
Write-Information "Repository Directory Option is: $repositoryDirectoryOption"
231187

232-
$stagingProfileIdOption = "-DstagingProfileId=$($packageDetail.SonaTypeProfileID)"
233-
Write-Information "Staging Profile ID Option is: $stagingProfileIdOption"
234-
235-
$stagingDescriptionOption = "-DstagingDescription=$($packageDetail.FullyQualifiedName)"
236-
Write-Information "Staging Description Option is: $stagingDescriptionOption"
237-
238-
$nexusPluginVersion = . $PSScriptRoot\Get-ExternalDependencyVersion.ps1 -GroupId 'org.sonatype.plugins' -ArtifactId 'nexus-staging-maven-plugin'
239-
if ($LASTEXITCODE) {
240-
Write-Information "##vso[task.logissue type=error]Unable to resolve version of external dependency 'org.sonatype.plugins:nexus-staging-maven-plugin'"
241-
exit $LASTEXITCODE
242-
}
243-
244-
$stagingGoal = "org.sonatype.plugins:nexus-staging-maven-plugin:$nexusPluginVersion`:deploy-staged-repository"
245-
$releaseGoal = "org.sonatype.plugins:nexus-staging-maven-plugin:$nexusPluginVersion`:rc-release"
246-
247-
Write-Information "Staging package to Maven Central"
248-
Write-Information "mvn $stagingGoal `"--batch-mode`" `"-DnexusUrl=https://oss.sonatype.org`" `"$repositoryDirectoryOption`" `"$stagingProfileIdOption`" `"$stagingDescriptionOption`" `"-DrepositoryId=target-repo`" `"-DserverId=target-repo`" `"-Drepo.username=$RepositoryUsername`" `"-Drepo.password=`"[redacted]`"`" `"--settings=$PSScriptRoot\..\maven.publish.settings.xml`""
249-
mvn $stagingGoal "--batch-mode" "-DnexusUrl=https://oss.sonatype.org" "$repositoryDirectoryOption" "$stagingProfileIdOption" "$stagingDescriptionOption" "-DrepositoryId=target-repo" "-DserverId=target-repo" "-Drepo.username=$RepositoryUsername" "-Drepo.password=""$RepositoryPassword""" "--settings=$PSScriptRoot\..\maven.publish.settings.xml"
250-
251-
if ($LASTEXITCODE) {
252-
Write-Information '##vso[task.logissue type=error]Staging to Maven Central failed. For troubleshooting, see https://aka.ms/azsdk/maven-central-tsg'
253-
exit $LASTEXITCODE
254-
}
255-
256-
Write-Information "Reading staging properties."
257-
$stagedRepositoryProperties = ConvertFrom-StringData (Get-Content "$localRepositoryDirectory\$($packageDetail.SonaTypeProfileID).properties" -Raw)
258-
259-
$stagedRepositoryId = $stagedRepositoryProperties["stagingRepository.id"]
260-
Write-Information "Staging Repository ID is: $stagedRepositoryId"
261-
262-
$stagedRepositoryUrl = $stagedRepositoryProperties["stagingRepository.url"]
263-
Write-Information "Staging Repository URL is: $stagedRepositoryUrl"
264-
265-
if ($releaseType -eq 'MavenCentralStaging') {
266-
Write-Information "Skipping release of staging repository because Stage Only == true."
267-
continue
268-
}
269-
270-
$attempt = 0
271-
$success = $false;
272-
273-
while ($attempt++ -lt 3) {
274-
Write-Information "Releasing staging repostiory $stagedRepositoryId, attempt $attempt"
275-
Write-Information "mvn $releaseGoal `"-DstagingRepositoryId=$stagedRepositoryId`" `"-DnexusUrl=https://oss.sonatype.org`" `"-DrepositoryId=target-repo`" `"-DserverId=target-repo`" `"-Drepo.username=$RepositoryUsername`" `"-Drepo.password=`"`"[redacted]`"`"`" `"--settings=$PSScriptRoot\..\maven.publish.settings.xml`""
276-
mvn $releaseGoal "-DstagingRepositoryId=$stagedRepositoryId" "-DnexusUrl=https://oss.sonatype.org" "-DrepositoryId=target-repo" "-DserverId=target-repo" "-Drepo.username=$RepositoryUsername" "-Drepo.password=""$RepositoryPassword""" "--settings=$PSScriptRoot\..\maven.publish.settings.xml"
277-
278-
if ($LASTEXITCODE -eq 0) {
279-
Write-Information "Package $($packageDetail.FullyQualifiedName) deployed"
280-
$success = $true
281-
break
282-
}
283-
284-
Write-Information "Release attempt $attempt exited with code $LASTEXITCODE"
285-
Write-Information "Checking Maven Central to see if release was successful"
286-
287-
if (Test-ReleasedPackage -RepositoryUrl $packageReposityUrl -PackageDetail $packageDetail) {
288-
Write-Information "Package $($packageDetail.FullyQualifiedName) deployed despite non-zero exit code."
289-
$success = $true
290-
break
291-
}
292-
}
293-
294-
if (!$success) {
295-
Write-Information '##vso[task.logissue type=error]Release to Maven Central failed. For troubleshooting, see https://aka.ms/azsdk/maven-central-tsg'
296-
exit 1
297-
}
188+
Write-Information "Release attempt $attemt exited with code $LASTEXITCODE"
189+
Write-Information "Checking Azure DevOps to see if release was successful"
190+
if (Test-ReleasedPackage -RepositoryUrl $packageReposityUrl -PackageDetail $packageDetail -BearerToken $RepositoryPassword) {
191+
Write-Information "Package $($packageDetail.FullyQualifiedName) deployed despite non-zero exit code."
192+
continue
298193
}
194+
195+
exit $LASTEXITCODE
299196
}
300197

301198
exit 0
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
version=1.0.0-beta.14
1+
version=1.0.0-beta.16

0 commit comments

Comments
 (0)