Turn Your Vehicle Into a Smart Earning Asset

While you’re not driving your car or bike, it can still be working for you. MOTOSHARE helps you earn passive income by connecting your vehicle with trusted renters in your city.

šŸš— You set the rental price
šŸ” Secure bookings with verified renters
šŸ“ Track your vehicle with GPS integration
šŸ’° Start earning within 48 hours

Join as a Partner Today

It’s simple, safe, and rewarding. Your vehicle. Your rules. Your earnings.

Android app build and publishing workflow using GitHub Actions

To fully automate your Android app build and publishing workflow using GitHub Actions, we’ll break it into three main steps:


āœ… What This GitHub Action Will Do

  1. Build the APK using Gradle on a GitHub Actions runner.
  2. Upload the APK to GitHub Releases as an asset (optional: GitHub Packages if you prefer).
  3. Deploy the APK to Google Play Store – Internal/Test Track using the r0adkll/upload-google-play action.

šŸ“ Prerequisites

1. Play Store Setup

  • Create a Google Play Console account.
  • Upload the initial APK manually once to create the app entry.
  • Create a Service Account with Release access and generate a JSON key file.

2. GitHub Repository Secrets

Add these secrets to your repository settings:

Secret NameDescription
ANDROID_KEYSTORE_BASE64Your keystore file, base64 encoded
ANDROID_KEYSTORE_PASSWORDKeystore password
ANDROID_KEY_ALIASKey alias
ANDROID_KEY_PASSWORDKey password
GOOGLE_PLAY_SERVICE_ACCOUNT_JSONContents of service_account.json
RELEASE_SIGNING_ENABLEDtrue or false
PACKAGE_NAMEYour app’s package name (e.g., com.example.app)

šŸ“œ GitHub Actions Workflow (.github/workflows/android-release.yml)

name: Android Release Pipeline

on:
  push:
    tags:
      - 'v*'  # Triggers on version tags like v1.0.0

jobs:
  build:
    name: Build APK
    runs-on: ubuntu-latest

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

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

    - name: Decode Keystore
      if: env.RELEASE_SIGNING_ENABLED == 'true'
      run: |
        echo "${{ secrets.ANDROID_KEYSTORE_BASE64 }}" | base64 -d > my-release-key.keystore

    - name: Build APK
      run: ./gradlew assembleRelease
      env:
        KEYSTORE_FILE: my-release-key.keystore
        KEYSTORE_PASSWORD: ${{ secrets.ANDROID_KEYSTORE_PASSWORD }}
        KEY_ALIAS: ${{ secrets.ANDROID_KEY_ALIAS }}
        KEY_PASSWORD: ${{ secrets.ANDROID_KEY_PASSWORD }}

    - name: Upload APK to GitHub Release
      uses: softprops/action-gh-release@v2
      with:
        name: "Release ${{ github.ref_name }}"
        tag_name: ${{ github.ref_name }}
        files: app/build/outputs/apk/release/app-release.apk
      env:
        GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

  upload_to_playstore:
    name: Upload to Google Play
    runs-on: ubuntu-latest
    needs: build

    steps:
    - name: Download Release APK from GitHub
      uses: actions/download-artifact@v4
      with:
        name: app-release.apk

    - name: Upload to Google Play (Internal)
      uses: r0adkll/upload-google-play@v1
      with:
        serviceAccountJsonPlainText: ${{ secrets.GOOGLE_PLAY_SERVICE_ACCOUNT_JSON }}
        packageName: ${{ secrets.PACKAGE_NAME }}
        releaseFiles: app/build/outputs/apk/release/app-release.apk
        track: internal  # use 'alpha', 'beta', 'production', or 'internal'
Code language: PHP (php)

šŸ“Œ Notes

  • This will auto-trigger when you push a tag like v1.0.0.
  • r0adkll/upload-google-play handles version codes and uploads the APK to the internal testing track.
  • You can switch the track to alpha, beta, or production as needed.

šŸ” How to Encode Keystore

base64 your-release-key.keystore > keystore.txt
# Copy contents and store in GitHub secret: ANDROID_KEYSTORE_BASE64
Code language: CSS (css)

Subscribe
Notify of
guest
0 Comments
Newest
Oldest Most Voted
Inline Feedbacks
View all comments

Certification Courses

DevOpsSchool has introduced a series of professional certification courses designed to enhance your skills and expertise in cutting-edge technologies and methodologies. Whether you are aiming to excel in development, security, or operations, these certifications provide a comprehensive learning experience. Explore the following programs:

DevOps Certification, SRE Certification, and DevSecOps Certification by DevOpsSchool

Explore our DevOps Certification, SRE Certification, and DevSecOps Certification programs at DevOpsSchool. Gain the expertise needed to excel in your career with hands-on training and globally recognized certifications.

0
Would love your thoughts, please comment.x
()
x