GitHub user pjfanning edited a discussion: Automate the build of the RC jars

For this, the main stumbling block is getting an approved signing key from the 
ASF Infrastructure Team. We would need the signing key and its password to be 
set up as GitHub Application secrets that all the `apache/pekko*` repos have 
access to.

https://github.com/sbt/sbt-ci-release has good documentation and we could use 
that plugin. Ideally the base64 encoded key would be added as a secret in the 
format described by sbt-ci-release.

We already publish unsigned snapshot jars nightly to the ASF Nexus instance 
(repository.apache.org) and access to GitHub secrets with a username and 
password for authentication on that instance.

```
      - name: Publish to Apache Maven repo
        env:
          NEXUS_USER: ${{ secrets.NEXUS_USER }}
          NEXUS_PW: ${{ secrets.NEXUS_PW }}
        run: sbt -Dsbt.repository.publish.attempts=10 +publish
```

For the signing key, ASF Infrastructure would probably create it and add the 
GitHub secrets. We should talk to them about the format of the encode key value 
so that it is in a format that we can use.
The public part of the key would need to be provided to use so that we can add 
it to https://dist.apache.org/repos/dist/release/pekko/KEYS and the copy of the 
KEYS file that we keep in this repo. It should also be added to a key server 
(https://infra.apache.org/release-signing.html#keyserver). 

We could start by signing the snapshot jars that we build using GitHub actions 
and once this works, we can add a new GitHub workflow that:
* takes a git tag as input - eg `v2.0.0-M1-RC1`
* sets up the preferred Java version for the release
* checks out the code as at that tag point
* runs `sbt +publishSigned` and `sbt "sonatypePrepare; sonatypeBundleUpload; 
sonatypeClose"` to stage the release jars.
* this automates some of the steps in 
https://github.com/apache/pekko-site/wiki/Pekko-Release-Process

GitHub link: https://github.com/apache/pekko/discussions/2140

----
This is an automatically sent email for [email protected].
To unsubscribe, please send an email to: 
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to