Release process
Requirements
- A release process should be run withing macOS environment
- The machine should contain:
homebrew
- Package managergh
- Github CLI tool
Current setup
Current scripts run on GitHub actions environment with macos-latest
os.
Script could be found on path
Each push:
- to master
branch run Snapshot release
- of tag v*
run regular release
Triggering release
Manually
- Navigate to Github Actions
- Run job
Generate release notes for next commit
by usingRun Workflow
button - After merging PR, the next tag will be pushed to repository
- Wait for CI job to finish
Automatically
- Release job will run each 1st day of month
- After merging PR, the next tag will be pushed to repository
- Wait for CI job to finish
CI Steps
- Gradle Build flankScripts and add it to PATH
- Set environment variables
- Delete old snapshot
- Gradle Build Flank
- Authenticate to hub
- Remove old release
- Rename old tag
- Release flank
- Snapshot for snapshot flow (push to master)
- Stable for regular flow (push tag
v*
)
- Publish binary for Maven Central
- Publish binary to GithubPackages (non snapshot only)