Skip to content

REM-903 - Fix PRO publishing #42

REM-903 - Fix PRO publishing

REM-903 - Fix PRO publishing #42

name: Build and Publish release
on:
push:
branches:
- 'release/**'
jobs:
build_and_publish:
runs-on: ubuntu-latest
steps:
- name: Clone repo
uses: actions/checkout@v4
- name: Set up JDK 17
uses: actions/setup-java@v4
with:
java-version: '17'
distribution: 'adopt'
cache: gradle
- name: Extract existing version code
run: |
# Extract version number from branch name
version_name=${GITHUB_REF#refs/heads/release/}
# Get existing version code from build.gradle
version_code=$(grep -o -E 'versionCode = [[:digit:]\.]+' app/build.gradle.kts | grep -o -E '[[:digit:]\.]+')
# Increment existing version code by 1
version_code=$((version_code + 1))
# Set environment variable for later use
echo "VERSION_NAME=$version_name" >> $GITHUB_ENV
echo "VERSION_CODE=$version_code" >> $GITHUB_ENV
- name: Increase version code and change version name
uses: chkfung/[email protected]
with:
gradlePath: app/build.gradle.kts
versionCode: ${{ env.VERSION_CODE }}
versionName: ${{ env.VERSION_NAME }}
- name: Commit and push changes
run: |
git config user.email "[email protected]"
git config user.name "Github Actions"
git commit -am "Bump version code to ${{ env.VERSION_CODE }} and change version name to ${{ env.VERSION_NAME }}"
git push origin HEAD
- name: Grant execute permission for gradlew
run: chmod +x gradlew
- name: Create services json file for PRO version
run: cat /home/runner/work/reminder-kotlin/reminder-kotlin/app/src/pro/google-services.json | base64
- name: Put data into services json file for PRO version
env:
DATA: ${{ secrets.GOOGLE_SERVICES }}
run: echo $DATA > /home/runner/work/reminder-kotlin/reminder-kotlin/app/src/pro/google-services.json
- name: Create services json file for FREE version
run: cat /home/runner/work/reminder-kotlin/reminder-kotlin/app/src/free/google-services.json | base64
- name: Put data into services json file for FREE version
env:
DATA: ${{ secrets.GOOGLE_SERVICES_FREE }}
run: echo $DATA > /home/runner/work/reminder-kotlin/reminder-kotlin/app/src/free/google-services.json
- name: Build Release AAB
id: buildRelease
run: ./gradlew bundleRelease
- name: Create service_account.json
id: create-service-account
run: echo '${{ secrets.SERVICE_ACCOUT_JSON }}' > service_account.json
- name: Sign Free AAB
id: sign-free
uses: r0adkll/sign-android-release@v1
with:
releaseDirectory: app/build/outputs/bundle/freeRelease
signingKeyBase64: ${{ secrets.FREE_SIGN_KEY }}
alias: ${{ secrets.FREE_SIGN_KEY_ALIAS }}
keyStorePassword: ${{ secrets.FREE_SIGN_KEY_STORE_PASSWORD }}
keyPassword: ${{ secrets.FREE_SIGN_KEY_PASSWORD }}
- name: Deploy FREE to Play Store (Alpha)
uses: r0adkll/upload-google-play@v1
with:
serviceAccountJson: service_account.json
packageName: com.cray.software.justreminder
releaseFiles: ${{ steps.sign-free.outputs.signedReleaseFile }}
track: alpha
- name: Sign Pro AAB
id: sign-pro
uses: r0adkll/sign-android-release@v1
with:
releaseDirectory: app/build/outputs/bundle/proRelease
signingKeyBase64: ${{ secrets.PRO_SIGN_KEY }}
alias: ${{ secrets.PRO_SIGN_KEY_ALIAS }}
keyStorePassword: ${{ secrets.PRO_SIGN_KEY_STORE_PASSWORD }}
keyPassword: ${{ secrets.PRO_SIGN_KEY_PASSWORD }}
- name: Deploy PRO to Play Store (Alpha)
uses: r0adkll/upload-google-play@v1
with:
serviceAccountJson: service_account.json
packageName: com.cray.software.justreminderpro
releaseFiles: ${{ steps.sign-pro.outputs.signedReleaseFile }}
track: alpha