97 lines
2.9 KiB
Markdown
97 lines
2.9 KiB
Markdown
# Release Process for SimpleLogUpload
|
|
|
|
This document describes the process of creating new releases for the SimpleLogUpload Android application using GitHub Actions.
|
|
|
|
## Versioning Scheme
|
|
|
|
We use a `vYY.MM.PATCH` versioning format:
|
|
- `YY`: Year (last two digits, e.g., 25 for 2025)
|
|
- `MM`: Month (two digits, e.g., 04 for April)
|
|
- `PATCH`: Incremental patch number within the month (starting at 1)
|
|
|
|
Example: `v25.04.1` represents the first release in April 2025.
|
|
|
|
## Prerequisites
|
|
|
|
Before you can use the automated release process, you need to set up the signing configuration:
|
|
|
|
1. **Create a keystore** (if you don't already have one):
|
|
```bash
|
|
keytool -genkey -v -keystore simplelogupload.keystore -alias upload_key -keyalg RSA -keysize 2048 -validity 10000
|
|
```
|
|
|
|
2. **Encode your keystore file**:
|
|
```bash
|
|
# Make the script executable
|
|
chmod +x scripts/prepare_signing_key.sh
|
|
|
|
# Run the script with your keystore file
|
|
./scripts/prepare_signing_key.sh /path/to/your/simplelogupload.keystore
|
|
```
|
|
|
|
3. **Add the required secrets to your GitHub repository**:
|
|
- `SIGNING_KEY`: The Base64-encoded keystore file (output from step 2)
|
|
- `KEY_ALIAS`: The alias of your key (e.g., `upload_key`)
|
|
- `KEY_STORE_PASSWORD`: The password for your keystore
|
|
- `KEY_PASSWORD`: The password for your key
|
|
|
|
Add these at: https://github.com/YOUR-USERNAME/SimpleLogUpload/settings/secrets/actions
|
|
|
|
## Creating a New Release
|
|
|
|
1. **Update your code**:
|
|
- Make all necessary code changes
|
|
- Update version numbers in app/build.gradle if needed
|
|
- Commit and push your changes to the main branch
|
|
|
|
2. **Create and push a tag**:
|
|
```bash
|
|
# Get the latest changes
|
|
git pull origin main
|
|
|
|
# Create a new tag
|
|
git tag v25.04.1
|
|
|
|
# Push the tag to GitHub
|
|
git push origin v25.04.1
|
|
```
|
|
|
|
3. **Monitor the GitHub Actions workflow**:
|
|
- Go to the "Actions" tab in your repository
|
|
- You should see a workflow named "Android Release Build" running
|
|
- When complete, it will create a new release with the APK attached
|
|
|
|
4. **Verify the release**:
|
|
- Check the "Releases" section of your repository
|
|
- Ensure the APK file is attached
|
|
- Download and test the APK on a device
|
|
|
|
## Troubleshooting
|
|
|
|
If the automatic release process fails:
|
|
|
|
1. **Check the GitHub Actions logs**:
|
|
- Go to the "Actions" tab and click on the failed workflow
|
|
- Examine the logs for errors
|
|
|
|
2. **Common issues**:
|
|
- Missing GitHub secrets
|
|
- Incorrect keystore information
|
|
- Build errors in the codebase
|
|
|
|
3. **Manual release**:
|
|
If needed, you can build and release manually:
|
|
```bash
|
|
# Build the release APK
|
|
./gradlew assembleRelease
|
|
|
|
# Sign the APK using your keystore
|
|
# (Use apksigner from the Android SDK)
|
|
```
|
|
|
|
## Post-Release Steps
|
|
|
|
1. **Announce the release** to users or stakeholders
|
|
2. **Monitor for issues** after the release
|
|
3. **Plan the next release** and begin work on new features
|