Ошибка подписи pgp при публикации артефакта - PullRequest
0 голосов
/ 30 мая 2018

Это первый раз, когда я пытаюсь опубликовать артефакт, и он не может быть сложнее.

Я использую sbt 0.13.8 с плагинами sbt-release 1.0.8, sbt-sonatype 2.0 sbt-pgp 1.1.1

соответствующая часть моей сборки sbt выглядит следующим образом:

pgpSecretRing := file("""C:\Users\kali\.sbt\gpg\secring.asc""")
pgpPublicRing := file("""C:\Users\kali\.sbt\gpg\pubring.asc""")
//pgpSecretRing := file("""C:\Users\kali\AppData\Local\lxss\home\kali\.gnupg\secring.gpg""")
//pgpPublicRing := file("""C:\Users\kali\AppData\Local\lxss\home\kali\.gnupg\pubring.gpg""")
usePgpKeyHex("c500a525a2efcb99")

name := "project-name"
organization := "com.mehmetyucel"
version := "0.0.2-SNAPSHOT"
scalaVersion := "2.12.2"
crossScalaVersions := Seq("2.11.11", "2.12.2")

lazy val projectName = project in file(".")

homepage := Some(url("https://some-github-url"))
scmInfo := Some(
  ScmInfo(url(
    "some-github-url"),
    "some-github-url.git"))

developers := List(
  Developer(
    "mehmetyucel",
    "Mehmet Yucel",
    "mehmet@mehmetyucel.com",
    url("some-github-url")))

licenses += ("MIT", url("http://opensource.org/licenses/MIT"))
publishMavenStyle := true

publishTo := Some(
  if (isSnapshot.value)
    Opts.resolver.sonatypeSnapshots
  else
    Opts.resolver.sonatypeStaging
)

releaseCrossBuild := true

releaseProcess := Seq[ReleaseStep](
  checkSnapshotDependencies,
  inquireVersions,
  runClean,
  runTest,
  setReleaseVersion,
  commitReleaseVersion,
  tagRelease,
  // For non cross-build projects, use releaseStepCommand("publishSigned")
  releaseStepCommandAndRemaining("+publishSigned"),
  setNextVersion,
  commitNextVersion,
  releaseStepCommand("sonatypeReleaseAll"),
  pushChanges
)

Первые 5 строк здесь я добавил из отчаяния, потому что когда я делаю sbt release "Я думаю", это подписывает мои пакетыс ключом, о котором я не знаю.

полученное сообщение об ошибке:

[info] Evaluate: signature-staging
[info] Failed: signature-staging, failureMessage:No public key: Key with id: (5b09423c9d5fbb5d) was not able to be located on <a href="http://keyserver.ubuntu.com:11371/">http://keyserver.ubuntu.com:11371/</a>. Upload your public key and try the operation again.

но мой ключ уже загружен.Я могу пойти и найти свой ключ на keyserver.ubuntu.com (http://keyserver.ubuntu.com/pks/lookup?op=get&search=0xC500A525A2EFCB99), к сожалению, вы поймете, что идентификатор ключа здесь другой. И я понятия не имею, откуда взялся этот "5b09423c9d5fbb5d".

Я попытался клонировать репозиторий в 3 разных системы (macos, ubuntu и win10), создать новый ключ, загрузить ключ на сервер ключей ubuntu и попробовать выпустить его снова. Идентификатор в сообщении об ошибке всегда одинаков (5b09423c9d5fbb5d) У меня естьпонятия не имею, откуда это происходит и как оно одинаково, несмотря на использование совершенно другого ключа / системы

Я попытался изменить usePgpKeyHex("c500a525a2efcb99") на usePgpKeyHex("c500a525a2efcb91") (в основном то, чего не существует), и я получил

[error] Not a valid command: failure-- (similar: onFailure)
[error] Not a valid project ID: failure--
[error] Expected ':' (if selecting a configuration)
[error] Not a valid key: failure--
[error] failure--
[error]          ^ 

на стадии подписания, что удивительно, что на самом деле означает, что sbt использует мой ключ для подписи, так откуда же 5b09423c9d5fbb5d?

1 Ответ

0 голосов
/ 30 мая 2018

Решено: Судя по всему, этот идентификатор ключа был получен с самого первого «publishSigned», которое я сделал для этого проекта, но по другой причине это не удалось.Я продолжал запускать publishSigned sonatypeRelease спина к спине довольно много раз, и это вызывало множество «открытых» репозиториев сценического исполнения в сонатипе.

Я перешел на https://oss.sonatype.org/ и отбросил все открытые инсталляциирепозитории, использующие пользовательский интерфейс Nexus, перезапустили процесс выпуска и все работает.

...