Instead of playing whac-a-mole by listing specific tasks to disable (publish, publish-local, publish-signed, etc), another option is to turn off artifact publishing at the source.
publishArtifact := false
Even though there’s no publishing happening, I also found I needed to supply a publishTo value to make sbt-pgp’s publish-signed task happy. It needs this value, even if it never uses it.
publishTo := Some(Resolver.file("Unused transient repository", file("target/unusedrepo")))