Slackbot
01/10/2024, 9:42 AMVampire
01/10/2024, 10:14 AM--stacktrace or optimally a build --scan with the error?StefMa
01/10/2024, 12:09 PM--stacktrace ) it runs without issues 😳StefMa
01/10/2024, 12:11 PMenv:
GPG_SIGNING_KEY: ${{ secrets.GPG_SIGNING_KEY }}
GPG_SIGNING_PASSWORD: ${{ secrets.GPG_SIGNING_PASSWORD }}
AFAIK the secrets can't be access by depenedabot. But by "me" as a admin of the repo.. 🤔
Maybe this is somehow related...Vampire
01/10/2024, 12:18 PM--stacktrace and then let dependabot rebase so that it runs again?StefMa
01/10/2024, 12:19 PMGPG_SIGNING_KEY=2 GPG_SIGNING_PASSWORD=1 ./gradlew publishToMavenLocal
It will report the same issue...StefMa
01/10/2024, 12:20 PM* Exception is:
org.gradle.api.GradleException: Could not evaluate onlyIf predicate for task ':signCom.ioki.sentry.proguardPluginMarkerMavenPublication'.
at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:57)
at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:36)
at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.executeTask(EventFiringTaskExecuter.java:77)
at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:55)
at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:52)
at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:204)
at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:199)
at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:66)
at org.gradle.internal.operations.DefaultBuildOperationRunner$2.execute(DefaultBuildOperationRunner.java:59)
at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:157)
at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:59)
at org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:53)
at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:73)
at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter.execute(EventFiringTaskExecuter.java:52)
at org.gradle.execution.plan.LocalTaskNodeExecutor.execute(LocalTaskNodeExecutor.java:42)
at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:331)
at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:318)
at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.lambda$execute$0(DefaultTaskExecutionGraph.java:314)
at org.gradle.internal.operations.CurrentBuildOperationRef.with(CurrentBuildOperationRef.java:80)
at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:314)
at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:303)
at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.execute(DefaultPlanExecutor.java:463)
at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.run(DefaultPlanExecutor.java:380)
at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64)
at org.gradle.internal.concurrent.AbstractManagedExecutor$1.run(AbstractManagedExecutor.java:47)
Caused by: org.gradle.api.GradleException: Could not evaluate spec for 'Signing is required, or signatory is set'.
at org.gradle.api.internal.tasks.execution.SelfDescribingSpec.isSatisfiedBy(SelfDescribingSpec.java:42)
at org.gradle.api.specs.AndSpec.findUnsatisfiedSpec(AndSpec.java:67)
at org.gradle.api.internal.tasks.execution.DescribingAndSpec.findUnsatisfiedSpec(DescribingAndSpec.java:58)
at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:50)
... 24 more
Caused by: org.gradle.api.InvalidUserDataException: Could not read PGP secret key
at org.gradle.security.internal.pgp.BaseInMemoryPgpSignatoryProvider.createSignatory(BaseInMemoryPgpSignatoryProvider.java:93)
at org.gradle.security.internal.pgp.BaseInMemoryPgpSignatoryProvider.lambda$new$0(BaseInMemoryPgpSignatoryProvider.java:56)
at org.gradle.internal.lazy.LockingLazy.get(LockingLazy.java:61)
at org.gradle.security.internal.pgp.BaseInMemoryPgpSignatoryProvider.getDefaultSignatory(BaseInMemoryPgpSignatoryProvider.java:64)
at org.gradle.security.internal.pgp.BaseInMemoryPgpSignatoryProvider.getDefaultSignatory(BaseInMemoryPgpSignatoryProvider.java:43)
at org.gradle.plugins.signing.SigningExtension.getSignatory(SigningExtension.java:199)
at org.gradle.plugins.signing.SigningExtension_Decorated.getSignatory(Unknown Source)
at org.gradle.util.internal.GUtil.uncheckedCall(GUtil.java:437)
at org.gradle.internal.extensibility.ConventionAwareHelper$2.doGetValue(ConventionAwareHelper.java:115)
at org.gradle.internal.extensibility.ConventionAwareHelper$MappedPropertyImpl.getValue(ConventionAwareHelper.java:171)
at org.gradle.internal.extensibility.ConventionAwareHelper.getConventionValue(ConventionAwareHelper.java:148)
at org.gradle.plugins.signing.Sign_Decorated.getSignatory(Unknown Source)
at org.gradle.plugins.signing.Sign.lambda$new$b6ae1a43$1(Sign.java:98)
at org.gradle.api.internal.tasks.execution.SelfDescribingSpec.isSatisfiedBy(SelfDescribingSpec.java:40)
... 27 more
Caused by: java.io.IOException: secret key ring doesn't start with secret key tag: tag 0xffffffff
at org.bouncycastle.openpgp.PGPSecretKeyRing.<init>(Unknown Source)
at org.bouncycastle.openpgp.jcajce.JcaPGPSecretKeyRing.<init>(Unknown Source)
at org.gradle.security.internal.pgp.BaseInMemoryPgpSignatoryProvider.createSignatory(BaseInMemoryPgpSignatoryProvider.java:79)
... 40 moreVampire
01/10/2024, 12:27 PMuseInMemoryPgpKeys if the properties are actually set. required false does not mean you do not get signature. required true means fail if signatory is not set, required false means sign if signatory is set but do not sign if signatory is not set. As you set the signatory, signing is tried even if required is false. But when it then tries to read the signature it fails with that exception as you gave empty strings as arguments when the secrets are not available like for dependabot.StefMa
01/10/2024, 12:30 PMStefMa
01/10/2024, 12:48 PMsign not useInMemeoryGpGkeys 🙂
if (hasProperty("GPG_SIGNING_REQUIRED")) sign(publishing.publications)Vampire
01/10/2024, 12:53 PMrequired is false and no signatory is set, signing should be skipped.
Only if required is true or a signatory is set, signing is tried.
So unless you also set another signatory, for example using useGpgCmd() or by setting the according project properties for the default signatory, not calling useInMemeoryGpGkeys() should be enough.StefMa
01/10/2024, 12:58 PMsigning {
val signingKey = System.getenv("GPG_SIGNING_KEY")
val signingPassword = System.getenv("GPG_SIGNING_PASSWORD")
useInMemoryPgpKeys(signingKey, signingPassword)
if (hasProperty("GPG_SIGNING_REQUIRED")) sign(publishing.publications)
}
So I removed the isRequired property 😁
This works 👆
But if I add the if to the useInMemoryGpgKeys it will fail.
But I guess the correct solution is something like this:
signing {
val signingKey = System.getenv("GPG_SIGNING_KEY")
val signingPassword = System.getenv("GPG_SIGNING_PASSWORD")
if (hasProperty("GPG_SIGNING_REQUIRED")) useInMemoryPgpKeys(signingKey, signingPassword)
sign(publishing.publications)
isRequired = hasProperty("GPG_SIGNING_REQUIRED")
}Vampire
01/10/2024, 12:59 PMhasProperty once like
isRequired = hasProperty("GPG_SIGNING_REQUIRED")
if (isRequired) useInMemoryPgpKeys(signingKey, signingPassword)
sign(publishing.publications)StefMa
01/10/2024, 1:03 PM