Files
simplefileupload-android/docs/RELEASE_PROCESS.md
2025-04-16 21:48:00 -04:00

2.9 KiB

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):

    keytool -genkey -v -keystore simplelogupload.keystore -alias upload_key -keyalg RSA -keysize 2048 -validity 10000
    
  2. Encode your keystore file:

    # 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:

    # 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:

    # 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