REM-903 - Fix PRO publishing #42
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 |