nilslice / protolock

Protocol Buffer companion tool. Track your .proto files and prevent changes to messages and services which impact API compatibility.
https://protolock.dev
BSD 3-Clause "New" or "Revised" License
600 stars 36 forks source link

Add artefacts to Maven repository #143

Open rost5000 opened 2 years ago

rost5000 commented 2 years ago

I wrote a protolint plugin for gradle. I want to add feature with automatically downloading executable file without installation in PATH environment. (It was in protoc plugin: https://github.com/google/protobuf-gradle-plugin ).

Could you, please, publish artifacts to Maven Repo as it was in Maven and https://repo1.maven.org/maven2/com/google/protobuf/protoc/3.8.0/?

nilslice commented 2 years ago

@rost5000 - that sounds cool, thanks for sharing. I'm not sure how to publish to Maven repo though.. is this something that you could PR as a Github Action? I can convert protolock's CI to Github Action and automate the release (which is long overdue...), but if you know how to do the Maven portion, I'd be grateful for a PR that at least illustrates how it is done.

rost5000 commented 2 years ago

@nilslice, Thank you for replying. I think that the optimal way is publishing to sonar (https://central.sonatype.org/publish/requirements/coordinates/) using Gradle. The following steps are needed:

  1. Register to sonar jira and create task to open public artifacts (https://central.sonatype.org/publish/publish-guide/#create-a-ticket-with-sonatype)
  2. The gpg keys with tool: https://www.gnupg.org/download/
  3. Then publish using gradle

I can do it myself manually with your permition. However, I did not face with github CI actions...

You also can see an example of Gradle publishing to local Maven repository in: https://github.com/rost5000/protoloc-gradle-publisher

nilslice commented 2 years ago

Thanks for the info, @rost5000 -- I have a few other things on my list with higher priority right now, but will get to this as soon as possible.

clamothebb commented 5 months ago

This would be nice to have, so Gradle builds can use this tool without requiring that developers manually install it. Is there anything I can do to help make this happen?

nilslice commented 5 months ago

@clamothebb i have zero experience publishing to the mentioned artifact management repository, so would take any help you'd offer!

I can probably get as far as supplying a token as a secret to the Action environment if you tell me what name & scopes (if needed), in case you'd like to provide a PR to automate this on releases?

rost5000 commented 5 months ago

Hi, @nilslice , I manually published the binaries (as a workaround). The current URL: https://central.sonatype.com/artifact/io.github.rost5000.protolock/protolock-binaries

If you want to change the scope or naming or integrate auto-publishing to your pipeline, I'll be glad to explain what you require for that

murdos commented 3 months ago

FYI here are two similar go projects that publish to maven central using gradle and github action: