Testcontainers' release process is semi-automated through GitHub Actions. This describes the basic steps for a project member to perform a release.
- Ensure that the master branch is building and that tests are passing.
- Create a new release on GitHub. The tag name is used as the version, so please keep the tag name plain (e.g. 1.2.3).
- The release triggers a GitHub Action workflow, but it gets mostly build using results from the Gradle remote-cache. Therefore, this should be fairly fast.
- Login to Sonatype to check the staging repository.
- Get the staging url after GitHub Action workflow finished.
- Manually test the release with the staging url as maven repository url (e.g. critical issues and features).
- Run TinSalver from GitHub using
npx
to sign artifact (see TinsSalver README). - Close the release in Sonatype. This will evaluate the release based on given Sontaype rules and afterwards automatically sync to Maven Central.
- Handcraft and polish some of the release notes (e.g. substitute combinded dependency PRs and highlight certain features).
- When available through Maven Central, poke Richard North to announce the release on Twitter!
- The process is done with GitHub Actions, TinSalver and Sonatype.
- Sonatype will automatically promote the staging release to Maven Central.
- Keybase needs to be installed on the developer machine.
- GPG key of signing developer needs to be uplodaed to the Ubuntu keyserver (or other server supported by Sonatype).