Skip to content

Commit 82f6661

Browse files
jruauxbsbodden
authored andcommitted
docs: Update release process documentation
1 parent 6db190d commit 82f6661

File tree

1 file changed

+34
-44
lines changed

1 file changed

+34
-44
lines changed

docs/release_process.md

Lines changed: 34 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -10,49 +10,24 @@ Redis OM Spring uses [JReleaser](https://jreleaser.org/) to automate the publica
1010

1111
The release process involves these key files:
1212

13-
1. `.github/workflows/version-and-release.yml` - GitHub Actions workflow triggered by GitHub releases
14-
2. `jreleaser.yml` - JReleaser configuration defining how artifacts are published
15-
3. `scripts/prepare-release.sh` - Helper script to prepare a new release version
13+
1. `.github/workflows/release.yml` - GitHub Actions workflow triggered by GitHub releases
14+
2. `jreleaser.yml` - JReleaser configuration defining how artifacts are released and/or published
1615

1716
## Release Steps
1817

19-
To release a new version:
20-
21-
1. **Prepare the release**:
22-
```bash
23-
./scripts/prepare-release.sh <version>
24-
```
25-
This script sets the version in all POM files.
26-
27-
2. **Verify and test**:
28-
```bash
29-
mvn clean verify
30-
```
31-
Ensure all tests pass.
32-
33-
3. **Commit version changes**:
34-
```bash
35-
git commit -a -m "chore: prepare release v<version>"
36-
git push
37-
```
38-
39-
4. **Create a GitHub Release**:
40-
- Go to GitHub and create a new release
41-
- Set the tag to `v<version>` (e.g., `v0.6.0`)
42-
- Provide release notes
43-
- Publish the release
44-
45-
5. **Workflow Execution**:
46-
- When the release is published, the GitHub workflow will:
47-
- Check out the repository
48-
- Set the version from the release tag
49-
- Build the artifacts with the publication profile
50-
- Stage the artifacts for publication (excluding the parent POM)
51-
- Use JReleaser to sign and publish the artifacts to Maven Central
52-
53-
6. **Monitoring**:
54-
- Monitor the workflow execution in the "Actions" tab
55-
- Check the JReleaser output artifact for detailed logs
18+
To release a new version, go to the GitHub repo *Actions* section and click on the [Release workflow](https://github.com/redis/redis-om-spring/actions/workflows/release.yml).
19+
20+
Then click on **Run worflow** and specify the version to release (for example `1.1.0`).
21+
22+
Finally, click on *Run workflow*.
23+
This will start the release process which consists of the following steps:
24+
25+
* Update `gradle.properties` with the specified version.
26+
* Build the project using the Gradle wrapper: `./gradlew build test aggregateTestReport publish`
27+
* Call the JReleaser action which performs the following tasks:
28+
* Publish the artifacts to Maven Central
29+
* Tag the repository with the specified version, generate the changelog using [conventional commits](https://www.conventionalcommits.org/en/v1.0.0/), and create a GitHub release
30+
* If enabled, announce the release to Slack and other channels
5631

5732
## Published Artifacts
5833

@@ -67,16 +42,31 @@ Each artifact includes:
6742
- Javadoc JAR
6843
- POM file
6944

70-
The parent POM (`redis-om-spring-parent`) is intentionally excluded from publication by only staging the specific artifacts we want to publish.
71-
7245
## Troubleshooting
7346

74-
If the release fails:
47+
### Check the GitHub actions logs
7548

7649
1. Check the JReleaser output artifact in the GitHub Actions run
7750
2. Verify that all required environment secrets are configured:
7851
- `GIT_ACCESS_TOKEN` and `GIT_USER` - For GitHub access
7952
- `GPG_PASSPHRASE`, `GPG_PUBLIC_KEY`, and `GPG_SECRET_KEY` - For signing artifacts
8053
- `SONATYPE_USERNAME` and `SONATYPE_PASSWORD` - For Maven Central access
8154
3. Review the staging directory output to ensure the correct artifacts are being included
82-
4. If the release fails due to validation issues, fix them and create a new patch release
55+
4. If the release fails due to validation issues, fix them and create a new patch release
56+
57+
### Run locally
58+
59+
To troubleshoot the release process locally, run the Gradle command specified above under *Release Steps* and make sure the proper artifacts are created under `build/staging-deploy`.
60+
61+
Then [install JReleaser](https://jreleaser.org/guide/latest/index.html) and set the following environment variables:
62+
* `JRELEASER_PROJECT_VERSION`: Should match version in `gradle.properties` (e.g. `1.0.1`)
63+
* `JRELEASER_GPG_SECRET_KEY`, `JRELEASER_GPG_PUBLIC_KEY`, `JRELEASER_GPG_PASSPHRASE`
64+
* `JRELEASER_GITHUB_TOKEN`
65+
* `JRELEASER_MAVENCENTRAL_USERNAME` and `JRELEASER_MAVENCENTRAL_PASSWORD`
66+
67+
Run jreleaser with the `dry-run` option:
68+
69+
```shell
70+
jreleaser full-release --dry-run
71+
```
72+

0 commit comments

Comments
 (0)