Files
whatsms-gateway-android/.github/workflows/build-apk.yml

95 lines
2.8 KiB
YAML

name: Build APK
on:
workflow_call:
inputs:
version-name:
required: true
type: string
build-type:
required: true
type: string
secrets:
google-services-json:
required: true
signing-key-store-base64:
required: true
signing-key-alias:
required: true
signing-key-password:
required: true
signing-store-password:
required: true
jobs:
build-apk:
runs-on: ubuntu-latest
permissions:
contents: write
steps:
- uses: actions/checkout@v4
- name: Setup JAVA 17
uses: actions/setup-java@v3
with:
distribution: "temurin"
java-version: 17
- name: Cache Gradle and wrapper
uses: actions/cache@v3
with:
path: |
~/.gradle/caches
~/.gradle/wrapper
key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*') }}
- name: Setup Google Services
run: echo ${{ secrets.google-services-json }} | base64 --decode > ./app/google-services.json
- name: Set App Version
run: |
export VERSION_NAME='${{ inputs.version-name }}'
sed -i "s/versionName.*/versionName \"${VERSION_NAME#v}\"/" app/build.gradle
sed -i "s/versionCode.*/versionCode $(( ($(date +%s) - $(date -d "2022-06-15" +%s)) / 86400 ))/" app/build.gradle
- name: Test
run: ./gradlew test
#1
- name: Decode Keystore
env:
ENCODED_STRING: ${{ secrets.signing-key-store-base64 }}
SIGNING_KEY_STORE_PATH: app/keystore.jks
run: |
echo $ENCODED_STRING > keystore-b64.txt
base64 -d keystore-b64.txt > $SIGNING_KEY_STORE_PATH
#2
- name: Build ${{ inputs.build-type }} apk
env:
SIGNING_KEY_STORE_PATH: app/keystore.jks
SIGNING_KEY_ALIAS: ${{ secrets.signing-key-alias }}
SIGNING_KEY_PASSWORD: ${{ secrets.signing-key-password }}
SIGNING_STORE_PASSWORD: ${{ secrets.signing-store-password }}
TARGET: ${{ inputs.build-type }}
run: ./gradlew assemble${TARGET^}
- name: Build ${{ inputs.build-type }} bundle
env:
SIGNING_KEY_STORE_PATH: app/keystore.jks
SIGNING_KEY_ALIAS: ${{ secrets.signing-key-alias }}
SIGNING_KEY_PASSWORD: ${{ secrets.signing-key-password }}
SIGNING_STORE_PASSWORD: ${{ secrets.signing-store-password }}
TARGET: ${{ inputs.build-type }}
run: ./gradlew bundle${TARGET^}
#3
- name: Upload ${{ inputs.build-type }} Build to Artifacts
uses: actions/upload-artifact@v4
with:
name: ${{ inputs.build-type }}-artifacts
path: |
app/build/outputs/apk/${{ inputs.build-type }}/
app/build/outputs/bundle/${{ inputs.build-type }}/