|
1 | 1 | # Release process
|
2 | 2 |
|
3 |
| -Testcontainers' release process is automated as a Travis deployment. This describes the basic steps for a project member to perform a release. |
| 3 | +Testcontainers' release process is semi-automated through GitHub Actions. This describes the basic steps for a project member to perform a release. |
4 | 4 |
|
5 | 5 | ## Steps
|
6 | 6 |
|
7 | 7 | 1. Ensure that the master branch is building and that tests are passing.
|
8 |
| -1. Ensure that the [`CHANGELOG`](CHANGELOG.md) file is up to date and includes all merged features. |
9 | 8 | 1. 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).
|
10 |
| -1. Check that the Travis build passed. |
11 |
| -1. Release of published artifacts to Bintray is fully automated. |
12 |
| -1. After successful publication to Bintray, the artifacts must be synced to Maven Central. |
| 9 | +1. 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. |
| 10 | +1. Login to Sonatype to check the staging repository. |
| 11 | +1. Get the staging url after GitHub Action workflow finished. |
| 12 | +1. Manually test the release with the staging url as maven repository url (e.g. critical issues and features). |
| 13 | +1. Run [TinSalver](https://github.com/bsideup/tinsalver) from GitHub using `npx` to sign artifact (see [TinsSalver README](https://github.com/bsideup/tinsalver/blob/main/README.md)). |
| 14 | +1. Close the release in Sonatype. This will evaluate the release based on given Sontaype rules and afterwards automatically sync to Maven Central. |
| 15 | +1. Handcraft and polish some of the release notes (e.g. substitute combinded dependency PRs and highlight certain features). |
13 | 16 | 1. When available through Maven Central, poke [Richard North](https://github.com/rnorth) to announce the release on Twitter!
|
14 | 17 |
|
15 | 18 | ## Internal details
|
16 | 19 |
|
17 |
| -* The process is done with Gradle and Bintray. |
18 |
| -* Bintray will automatically promote the release to Maven Central. |
19 |
| -* Travis secrets hold Bintray username/passwords that are used for publishing. |
| 20 | +* The process is done with GitHub Actions, TinSalver and Sonatype. |
| 21 | +* Sonatype will automatically promote the staging release to Maven Central. |
| 22 | +* Keybase needs to be installed on the developer machine. |
| 23 | +* GPG key of signing developer needs to be uplodaed to the Ubuntu keyserver (or other server supported by Sonatype). |
0 commit comments