DEV Community

Cover image for Streamline Your Mobile App Releases with GitHub Actions
AppDeployPro for AppDeployPro

Posted on

Streamline Your Mobile App Releases with GitHub Actions

Releasing a mobile app can be a time-consuming process filled with manual steps—from building and testing your code to generating changelogs and submitting your app to the Google Play Store. In this tutorial, we’ll walk through how to automate your mobile app release workflow using GitHub Actions, so you can focus on coding while your pipeline handles the heavy lifting.

While many developers build custom CI/CD pipelines, platforms like AppDeployPro are already streamlining app releases with features like Release Autopilot and seamless GitHub integration. Let’s dive into setting up your own automated release workflow and discover how it can elevate your release process.


What You’ll Need

  • A GitHub repository for your mobile app project
  • A working build setup for your Android app (using Gradle/Android Studio)
  • Basic familiarity with GitHub Actions and YAML configuration files
  • Optionally, Fastlane installed for advanced deployment tasks

Step 1: Create a GitHub Actions Workflow

First, create a workflow file in your repository at .github/workflows/release.yml. This file will define the steps to build, test, and prepare your app for release.

name: Mobile App Release

on:
  push:
    branches:
      - main
  workflow_dispatch:

jobs:
  build:
    runs-on: ubuntu-latest

    steps:
      - name: Checkout Code
        uses: actions/checkout@v3

      - name: Set up JDK 11
        uses: actions/setup-java@v3
        with:
          java-version: '11'

      - name: Build App
        run: ./gradlew assembleRelease

      - name: Run Tests
        run: ./gradlew test

      - name: Generate Changelog
        run: |
          python3 scripts/generate_changelog.py
        # This script extracts commit messages and formats them as a changelog

      - name: Archive Artifacts
        uses: actions/upload-artifact@v3
        with:
          name: release-apk
          path: app/build/outputs/apk/release/app-release.apk
Enter fullscreen mode Exit fullscreen mode

In this workflow, we:

  • Checkout the repository and set up the environment
  • Build the Android release APK
  • Run tests to ensure stability
  • Generate a changelog automatically (using your custom Python script)
  • Archive the build artifact for later deployment

Step 2: Automate Changelog Generation

A professional release isn’t complete without a changelog. Create a simple Python script (scripts/generate_changelog.py) to extract commit messages from your Git history and format them nicely:

import subprocess

def generate_changelog():
    # Get the last 10 commit messages
    changelog = subprocess.check_output(["git", "log", "-n", "10", "--pretty=format:%s"]).decode()
    with open("CHANGELOG.md", "w") as file:
        file.write("## Recent Changes\n")
        for line in changelog.split("\n"):
            file.write(f"- {line}\n")
    print("Changelog generated!")

if __name__ == "__main__":
    generate_changelog()
Enter fullscreen mode Exit fullscreen mode

This script creates a CHANGELOG.md file that summarizes the latest commit messages—perfect for keeping your users in the loop.


Step 3: (Optional) Integrate Fastlane for Deployment

For those looking to automate submissions to the Google Play Store, integrating Fastlane into your workflow can further simplify the process. In your workflow, add a deployment job that triggers Fastlane to handle app submission.

Note: While Fastlane is a popular solution for app deployments, platforms like AppDeployPro take release management to the next level by providing an intuitive UI, automated scheduling (Release Autopilot), and consolidated changelog tracking—all without the hassle of setting up your own pipeline.


Step 4: Monitor and Iterate

Once your workflow is in place, every push to your main branch will trigger a new build and generate a changelog automatically. Monitor your workflow runs in the GitHub Actions dashboard and refine the steps as needed to fit your project requirements.


Conclusion

By automating your mobile app release process with GitHub Actions, you can save valuable time, reduce manual errors, and keep your release cycle consistent. This tutorial demonstrated how to build a workflow that compiles your app, runs tests, generates a changelog, and archives your build artifacts.

For developers seeking an even simpler and more integrated release experience, platforms like AppDeployPro offer a comprehensive solution—simplifying your app releases with a user-friendly UI, Release Autopilot, and seamless GitHub integration. Whether you build your own pipeline or leverage a dedicated service, automating your release process is a game changer that lets you focus more on coding and less on administrative overhead.

Happy automating, and here’s to smooth, hassle-free app releases!

Hostinger image

Get n8n VPS hosting 3x cheaper than a cloud solution

Get fast, easy, secure n8n VPS hosting from $4.99/mo at Hostinger. Automate any workflow using a pre-installed n8n application and no-code customization.

Start now

Top comments (0)

nextjs tutorial video

Youtube Tutorial Series 📺

So you built a Next.js app, but you need a clear view of the entire operation flow to be able to identify performance bottlenecks before you launch. But how do you get started? Get the essentials on tracing for Next.js from @nikolovlazar in this video series 👀

Watch the Youtube series