Please follow the steps below to release a new version of Keva.
Requirements:
- Unix shell
- GPG key
- Sonatype Nexus credentials (need to request)
- Docker Hub credentials (need to request)
If you do not have these, please email oss@keva.dev
to request.
Before each release, we can group issues in a GitHub's Milestone,
create a GitHub milestone, and assign it to the release
label, the milestone name should be vX.Y.Z
.
First, please create a release branch from master
branch:
git fetch
git checkout master
git pull origin master
### Add a new release branch, e.g. `release/1.1.0`
git checkout -b release/1.1.0
Then, please pull (rebasing) the latest changes from develop
branch or cherry-pick the commits:
git fetch
git pull origin develop --rebase
Push the release branch to origin
:
git push origin release/1.1.0
And create a pull request on Github, request reviewers, after the pull request is merged, you can release the new version.
Create a version tag (via git command or Github UI):
git tag -a v1.1.0 -m "Keva v1.0.0-rc0"
Remember to add binary artifacts to the release tag (check how to get binary artifacts below).
Run:
sh build.sh
Update version at build.gradle
:
group 'dev.keva'
version '1.0.0-rc0'
Set environment variables at ./gradlew.properties
:
sonatypeUsername=SONARUSERNAME
sonatypePassword=SONARPASSWORD
signing.keyId=KeyID # e.g. "0xAA279C9C"
signing.password=password
signing.secretKeyRingFile=FileLocation # e.g. "/Users/keva/.gnupg/secring.gpg"
Run:
./gradlew publish
Login to Docker Hub:
docker login -u kevadev -p kevapassword
Build Docker image:
docker build -t keva-server .
Tag and push image:
docker tag keva-server:latest kevadev/keva-server:1.0.0-rc0
docker push kevadev/keva-server:1.1.0