@@ -60,29 +60,73 @@ extends:
6060 Copy-Item $(downloadLocalProperties.secureFilePath) local.properties -Verbose
6161 displayName: Copy secring and 'local.properties'
6262
63- - script : ./gradlew --no-daemon publishToMavenLocal -PmavenCentralPublishingEnabled=true -PmavenCentralSnapshotArtifactSuffix=""
63+ - pwsh : |
64+ # maven-gpg-plugin signs via the local gpg keyring, so the key from
65+ # secring.gpg must be imported into gpg before signing can succeed.
66+ gpg --batch --import secring.gpg
67+ displayName: Import GPG signing key
68+
69+ - pwsh : |
70+ $props = Get-Content local.properties -Raw
71+ $keyId = ($props | Select-String -Pattern 'signing\.keyId=(.+)').Matches.Groups[1].Value
72+ $keyPassword = ($props | Select-String -Pattern 'signing\.password=(.+)').Matches.Groups[1].Value
73+
74+ $settingsXml = @"
75+ <settings>
76+ <mirrors>
77+ <mirror>
78+ <id>GraphDeveloperExperiences_Public</id>
79+ <mirrorOf>*</mirrorOf>
80+ <url>https://microsoftgraph.pkgs.visualstudio.com/0985d294-5762-4bc2-a565-161ef349ca3e/_packaging/GraphDeveloperExperiences_Public/maven/v1</url>
81+ </mirror>
82+ </mirrors>
83+ <profiles>
84+ <profile>
85+ <id>signing</id>
86+ <properties>
87+ <gpg.keyname>$keyId</gpg.keyname>
88+ <gpg.passphrase>$keyPassword</gpg.passphrase>
89+ </properties>
90+ </profile>
91+ </profiles>
92+ </settings>
93+ "@
94+ $settingsDir = Join-Path $HOME ".m2"
95+ New-Item -ItemType Directory -Path $settingsDir -Force | Out-Null
96+ $settingsXml | Set-Content (Join-Path $settingsDir "settings.xml") -Encoding UTF8
97+ displayName: Configure Maven settings
98+
99+ - task : MavenAuthenticate@0
100+ displayName : Authenticate to Azure Artifacts feed (PAT-less)
101+ inputs :
102+ artifactsFeeds : ' GraphDeveloperExperiences_Public'
103+
104+ - script : ./mvnw install -Psigning --no-transfer-progress
64105 displayName : Publish to local Maven for verification
65106 condition : contains(variables['build.sourceBranch'], 'refs/tags/v')
66107
67- - script : ./gradlew -- no-daemon publishToMavenLocal -PmavenCentralPublishingEnabled=true
108+ - script : ./mvnw install -Psigning -- no-transfer-progress
68109 displayName : Publish to local Maven for verification
69110 condition : not(contains(variables['build.sourceBranch'], 'refs/tags/v'))
70111
71- - script : ./gradlew -- no-daemon publishMavenPublicationToADORepository -PmavenCentralPublishingEnabled=true -PmavenCentralSnapshotArtifactSuffix=""
72- displayName : Publish to local Maven ADO for ESRP
112+ - script : ./mvnw deploy -Psigning -- no-transfer-progress -DaltDeploymentRepository=ADO::default::file://$(Build.SourcesDirectory)/target/staging-deploy
113+ displayName : Stage artifacts for ESRP
73114 condition : contains(variables['build.sourceBranch'], 'refs/tags/v')
74115
75- - script : ./gradlew -- no-daemon publishMavenPublicationToADORepository -PmavenCentralPublishingEnabled=true
76- displayName : Publish to local Maven ADO for ESRP
116+ - script : ./mvnw deploy -Psigning -- no-transfer-progress -DaltDeploymentRepository=ADO::default::file://$(Build.SourcesDirectory)/target/staging-deploy
117+ displayName : Stage artifacts for ESRP
77118 condition : not(contains(variables['build.sourceBranch'], 'refs/tags/v'))
78119
79120 - pwsh : |
80- $contents = Get-Content gradle.properties -Raw
81- $major = $contents | Select-String -Pattern 'mavenMajorVersion\s*=\s*([0-9]+)' | ForEach- Object { $_.Matches.Groups[1].Value }
82- $minor = $contents | Select-String -Pattern 'mavenMinorVersion\s*=\s*([0-9]+)' | ForEach-Object { $_.Matches.Groups[1].Value }
83- $patch = $contents | Select-String -Pattern 'mavenPatchVersion\s*=\s*([0-9]+)' | ForEach-Object { $_.Matches.Groups[1].Value }
121+ $pomXml = [xml]( Get-Content pom.xml -Raw)
122+ $ns = New- Object System.Xml.XmlNamespaceManager($pomXml.NameTable)
123+ $ns.AddNamespace('m', $pomXml.DocumentElement.NamespaceURI)
124+ $version = $pomXml.SelectSingleNode('/m:project/m:version', $ns).InnerText
84125 $snapshot_suffix = if ($Env:BRANCH_NAME.StartsWith('refs/tags/v')) { '' } else { '-SNAPSHOT' }
85- $version = "$major.$minor.$patch$snapshot_suffix"
126+ # If version already contains -SNAPSHOT and we're on a tag, strip it
127+ if ($Env:BRANCH_NAME.StartsWith('refs/tags/v')) {
128+ $version = $version -replace '-SNAPSHOT$', ''
129+ }
86130 echo "Current version is $version"
87131 echo "##vso[task.setvariable variable=PACKAGE_VERSION;]$version"
88132 displayName: Get current version
@@ -95,7 +139,7 @@ extends:
95139 displayName: Inspect contents of local Maven cache
96140
97141 - pwsh : |
98- $packageFullPath = Join-Path -Path "./" -ChildPath "build/publishing-repository/ com/microsoft/graph/microsoft-graph" -AdditionalChildPath "$(PACKAGE_VERSION)"
142+ $packageFullPath = Join-Path -Path "./target/staging-deploy " -ChildPath "com/microsoft/graph/microsoft-graph" -AdditionalChildPath "$(PACKAGE_VERSION)"
99143 echo "Package full path: $packageFullPath"
100144 echo "##vso[task.setvariable variable=PACKAGE_PATH;]$packageFullPath"
101145 displayName: Get the package full path
0 commit comments