Skip to content

26910897d72d1a2cf349754d5e8fc24137b95c17 on master using build tools 34.0.0 #40

26910897d72d1a2cf349754d5e8fc24137b95c17 on master using build tools 34.0.0

26910897d72d1a2cf349754d5e8fc24137b95c17 on master using build tools 34.0.0 #40

name: Android CI
on:
workflow_dispatch:
inputs:
BUILD_TOOLS_VERSION:
description: Android build tools version
required: true
default: "34.0.0"
run-name: ${{ github.sha }} on ${{ github.ref_name }} using build tools ${{ inputs.BUILD_TOOLS_VERSION }}
jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Set env variables
run: |
echo "datestamp=$(date +'%Y%m%d')" >> $GITHUB_ENV
buildTools=${ANDROID_HOME}/build-tools/${{ inputs.BUILD_TOOLS_VERSION }}
echo "REPO_NAME=${GITHUB_REPOSITORY#*/}" >> $GITHUB_ENV
# recall with ${{ env.REPO_NAME }}, but only later.
- name: set up JDK 21
uses: actions/setup-java@v4
with:
java-version: '21'
distribution: 'temurin'
cache: gradle
- name: Grant execute permission for gradlew
run: chmod +x gradlew
- name: Run gradle tests
run: ./gradlew test
- name: Build project with Gradle
run: ./gradlew build
# - name: Build apk debug project (APK)
# run: ./gradlew assembleDebug
- name: Build apk release project (APK)
run: ./gradlew assemble
- uses: r0adkll/sign-android-release@v1
name: Sign app APK
id: sign_app
with:
releaseDirectory: app/build/outputs/apk/release
signingKeyBase64: ${{ secrets.SIGNING_KEY }}
alias: ${{ secrets.ALIAS }}
keyStorePassword: ${{ secrets.KEY_STORE_PASSWORD }}
env:
# override default build-tools version (recommended)
BUILD_TOOLS_VERSION: ${{ inputs.BUILD_TOOLS_VERSION }}
- name: Sign without roadkill
run: |
echo "ANDROID_HOME = $ANDROID_HOME"
buildTools=${ANDROID_HOME}/build-tools/${{ inputs.BUILD_TOOLS_VERSION }}
echo "buildTools = $buildTools"
echo ${{ secrets.SIGNING_KEY }} | base64 -di > my.jks
${buildTools}/zipalign -v -p 4 app/build/outputs/apk/release/app-release-unsigned.apk my-app-unsigned-aligned.apk
${buildTools}/apksigner sign --ks my.jks --ks-pass pass:${{ secrets.KEY_STORE_PASSWORD }} --out ${{ env.REPO_NAME }}.apk my-app-unsigned-aligned.apk
echo "Apk was zip aligned and signed. Now to verify signing"
${buildTools}/apksigner verify ${{ env.REPO_NAME }}.apk
- name: Archive installable signed APK
uses: actions/upload-artifact@v4
with:
name: ${{ github.event.repository.name }} ${{ (github.ref_name != 'master' && github.ref_name) || '' }}
path: ${{steps.sign_app.outputs.signedReleaseFile}}
- name: Archive installable signed APK I made
uses: actions/upload-artifact@v4
with:
name: ${{ github.event.repository.name }} 2 ${{ (github.ref_name != 'master' && github.ref_name) || '' }}
path: ${{ env.REPO_NAME }}.apk