Skip to content

Commit 6afcac9

Browse files
committed
RUM-3104 generate verification-metadata with pgp information
1 parent e2c7dfa commit 6afcac9

File tree

4 files changed

+29
-28
lines changed

4 files changed

+29
-28
lines changed

.gitlab-ci.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,7 @@ stages:
6363
- export GPG_PASSWORD=$(aws ssm get-parameter --region us-east-1 --name ci.dd-sdk-android.signing.gpg_passphrase --with-decryption --query "Parameter.Value" --out text)
6464
- export OSSRH_USERNAME=$(aws ssm get-parameter --region us-east-1 --name ci.dd-sdk-android.signing.ossrh_username --with-decryption --query "Parameter.Value" --out text)
6565
- export OSSRH_PASSWORD=$(aws ssm get-parameter --region us-east-1 --name ci.dd-sdk-android.signing.ossrh_password --with-decryption --query "Parameter.Value" --out text)
66+
- export GPG_PUBLIC_FINGERPRINT=$(aws ssm get-parameter --region us-east-1 --name ci.dd-sdk-android.signing.gpg_public_key --with-decryption --query "Parameter.Value" --out text | gpg --import --import-options show-only | grep -E -o -e "[A-F0-9]{40}")
6667

6768
# CI IMAGE
6869

buildSrc/src/main/kotlin/com/datadog/gradle/plugin/verification/GenerateVerificationXmlTask.kt

Lines changed: 26 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -37,40 +37,39 @@ open class GenerateVerificationXmlTask : DefaultTask() {
3737
val pomFile = File(publicationReleaseDir, "pom-default.xml")
3838
val moduleFile = File(publicationReleaseDir, "module.json")
3939

40-
val aarSha256 = aarFile.sha256()
41-
val pomSha256 = pomFile.sha256()
42-
val moduleSha256 = moduleFile.sha256()
40+
val filesWithExt = mapOf(
41+
aarFile to "aar",
42+
pomFile to "pom",
43+
moduleFile to "module"
44+
)
45+
46+
val publicKey = System.getenv("GPG_PUBLIC_FINGERPRINT")
47+
val hasPublicKey = !publicKey.isNullOrBlank()
4348

4449
val content = xml(TAG_ROOT) {
4550
xmlns = NS_DEPS_VERIF
4651
TAG_CONFIGURATION {
47-
TAG_VERIF_METADATA { -true.toString() }
48-
TAG_VERIF_SIGNATURE { -false.toString() } // TODO RUM-3104 add signature verification
52+
TAG_VERIF_METADATA { text(true.toString()) }
53+
TAG_VERIF_SIGNATURES { text(hasPublicKey.toString()) }
4954
}
5055
TAG_COMPONENTS {
5156
TAG_COMPONENT {
5257
attribute(ATTR_GROUP, project.group)
5358
attribute(ATTR_NAME, project.name)
5459
attribute(ATTR_VERSION, AndroidConfig.VERSION.name)
55-
TAG_ARTIFACT {
56-
attribute(ATTR_NAME, "${project.name}-${AndroidConfig.VERSION.name}.aar")
57-
TAG_SHA256 {
58-
attribute(ATTR_VALUE, aarSha256)
59-
attribute(ATTR_ORIGIN, ORIGIN)
60-
}
61-
}
62-
TAG_ARTIFACT {
63-
attribute(ATTR_NAME, "${project.name}-${AndroidConfig.VERSION.name}.pom")
64-
TAG_SHA256 {
65-
attribute(ATTR_VALUE, pomSha256)
66-
attribute(ATTR_ORIGIN, ORIGIN)
67-
}
68-
}
69-
TAG_ARTIFACT {
70-
attribute(ATTR_NAME, "${project.name}-${AndroidConfig.VERSION.name}.module")
71-
TAG_SHA256 {
72-
attribute(ATTR_VALUE, moduleSha256)
73-
attribute(ATTR_ORIGIN, ORIGIN)
60+
61+
filesWithExt.forEach { (file, ext) ->
62+
TAG_ARTIFACT {
63+
attribute(ATTR_NAME, "${project.name}-${AndroidConfig.VERSION.name}.$ext")
64+
TAG_SHA256 {
65+
attribute(ATTR_VALUE, file.sha256())
66+
attribute(ATTR_ORIGIN, ORIGIN)
67+
}
68+
if (hasPublicKey) {
69+
TAG_PGP {
70+
attribute(ATTR_VALUE, publicKey)
71+
}
72+
}
7473
}
7574
}
7675
}
@@ -104,10 +103,11 @@ open class GenerateVerificationXmlTask : DefaultTask() {
104103
private const val TAG_ROOT = "verification-metadata"
105104
private const val TAG_CONFIGURATION = "configuration"
106105
private const val TAG_VERIF_METADATA = "verify-metadata"
107-
private const val TAG_VERIF_SIGNATURE = "verify-signature"
106+
private const val TAG_VERIF_SIGNATURES = "verify-signatures"
108107
private const val TAG_COMPONENTS = "components"
109108
private const val TAG_COMPONENT = "component"
110109
private const val TAG_SHA256 = "sha256"
110+
private const val TAG_PGP = "pgp"
111111

112112
private const val TAG_ARTIFACT = "artifact"
113113
private const val ATTR_GROUP = "group"
@@ -116,6 +116,6 @@ open class GenerateVerificationXmlTask : DefaultTask() {
116116
private const val ATTR_VALUE = "value"
117117
private const val ATTR_ORIGIN = "origin"
118118

119-
private const val ORIGIN = "Datadog"
119+
private const val ORIGIN = "Datadog official GitHub release"
120120
}
121121
}

buildSrc/src/main/kotlin/com/datadog/gradle/plugin/verification/VerificationXmlPlugin.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ class VerificationXmlPlugin : Plugin<Project> {
2121
genTask.dependsOn("sourceReleaseJar")
2222
genTask.dependsOn("generatePomFileForReleasePublication")
2323
genTask.dependsOn("generateMetadataFileForReleasePublication")
24-
// TODO RUM-3104 depends on "signReleasePublication"
24+
genTask.dependsOn("signReleasePublication")
2525

2626
getTasksByName("publishToSonatype", false).forEach {
2727
it.dependsOn(genTask)

merge_verification_metadata.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ def run_main() -> int:
3737
metadata.text = "true"
3838
configuration.insert(0, metadata)
3939
signatures = ET.Element(SIGNATURES_TAG)
40-
signatures.text = "false" # TODO RUM-3104 also copy signatures content
40+
signatures.text = "true"
4141
configuration.insert(1, signatures)
4242
root.insert(0, configuration)
4343

0 commit comments

Comments
 (0)