build: specify the key to use when invoking gpg:sign-and-deploy-file (#16696)
This commit is contained in:
parent
c4a4613d95
commit
eab6e5a317
21
build/ci.go
21
build/ci.go
@ -755,14 +755,18 @@ func doAndroidArchive(cmdline []string) {
|
|||||||
os.Rename(archive, meta.Package+".aar")
|
os.Rename(archive, meta.Package+".aar")
|
||||||
if *signer != "" && *deploy != "" {
|
if *signer != "" && *deploy != "" {
|
||||||
// Import the signing key into the local GPG instance
|
// Import the signing key into the local GPG instance
|
||||||
if b64key := os.Getenv(*signer); b64key != "" {
|
b64key := os.Getenv(*signer)
|
||||||
key, err := base64.StdEncoding.DecodeString(b64key)
|
key, err := base64.StdEncoding.DecodeString(b64key)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Fatalf("invalid base64 %s", *signer)
|
log.Fatalf("invalid base64 %s", *signer)
|
||||||
}
|
}
|
||||||
gpg := exec.Command("gpg", "--import")
|
gpg := exec.Command("gpg", "--import")
|
||||||
gpg.Stdin = bytes.NewReader(key)
|
gpg.Stdin = bytes.NewReader(key)
|
||||||
build.MustRun(gpg)
|
build.MustRun(gpg)
|
||||||
|
|
||||||
|
keyID, err := build.PGPKeyID(string(key))
|
||||||
|
if err != nil {
|
||||||
|
log.Fatal(err)
|
||||||
}
|
}
|
||||||
// Upload the artifacts to Sonatype and/or Maven Central
|
// Upload the artifacts to Sonatype and/or Maven Central
|
||||||
repo := *deploy + "/service/local/staging/deploy/maven2"
|
repo := *deploy + "/service/local/staging/deploy/maven2"
|
||||||
@ -771,6 +775,7 @@ func doAndroidArchive(cmdline []string) {
|
|||||||
}
|
}
|
||||||
build.MustRunCommand("mvn", "gpg:sign-and-deploy-file", "-e", "-X",
|
build.MustRunCommand("mvn", "gpg:sign-and-deploy-file", "-e", "-X",
|
||||||
"-settings=build/mvn.settings", "-Durl="+repo, "-DrepositoryId=ossrh",
|
"-settings=build/mvn.settings", "-Durl="+repo, "-DrepositoryId=ossrh",
|
||||||
|
"-Dgpg.keyname="+keyID,
|
||||||
"-DpomFile="+meta.Package+".pom", "-Dfile="+meta.Package+".aar")
|
"-DpomFile="+meta.Package+".pom", "-Dfile="+meta.Package+".aar")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -57,3 +57,15 @@ func PGPSignFile(input string, output string, pgpkey string) error {
|
|||||||
// Generate the signature and return
|
// Generate the signature and return
|
||||||
return openpgp.ArmoredDetachSign(out, keys[0], in, nil)
|
return openpgp.ArmoredDetachSign(out, keys[0], in, nil)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// PGPKeyID parses an armored key and returns the key ID.
|
||||||
|
func PGPKeyID(pgpkey string) (string, error) {
|
||||||
|
keys, err := openpgp.ReadArmoredKeyRing(bytes.NewBufferString(pgpkey))
|
||||||
|
if err != nil {
|
||||||
|
return "", err
|
||||||
|
}
|
||||||
|
if len(keys) != 1 {
|
||||||
|
return "", fmt.Errorf("key count mismatch: have %d, want %d", len(keys), 1)
|
||||||
|
}
|
||||||
|
return keys[0].PrimaryKey.KeyIdString(), nil
|
||||||
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user