name: Release CI on: workflow_dispatch: jobs: build: runs-on: ubuntu-latest steps: - name: Checkout repo uses: actions/checkout@v3 with: submodules: 'recursive' - name: set up JDK 17 uses: actions/setup-java@v3 with: java-version: '17' distribution: 'temurin' cache: gradle - name: Grant execute permission for gradlew run: chmod +x gradlew - name: Clean Gradle Cache run: ./gradlew clean - name: Build Release APK run: ./gradlew assembleRelease - name: Sign armv7 APK id: sign_armv7_app uses: kevin-david/zipalign-sign-android-release@v1.1 with: releaseDirectory: app/build/outputs/apk/armv7/release/ signingKeyBase64: ${{ secrets.JAVA_KEYSTORE_DATA }} alias: ${{ secrets.KEY_ALIAS }} keyStorePassword: ${{ secrets.KEYSTORE_PASSWORD }} keyPassword: ${{ secrets.KEY_PASSWORD }} - name: Upload armv7 artifact uses: actions/upload-artifact@v3.1.2 with: name: app-armv7-release path: ${{ steps.sign_armv7_app.outputs.signedReleaseFile }} - name: Sign armv8 APK id: sign_armv8_app uses: kevin-david/zipalign-sign-android-release@v1.1 with: releaseDirectory: app/build/outputs/apk/armv8/release/ signingKeyBase64: ${{ secrets.JAVA_KEYSTORE_DATA }} alias: ${{ secrets.KEY_ALIAS }} keyStorePassword: ${{ secrets.KEYSTORE_PASSWORD }} keyPassword: ${{ secrets.KEY_PASSWORD }} - name: Upload armv8 artifact uses: actions/upload-artifact@v3.1.2 with: name: app-armv8-release path: ${{ steps.sign_armv8_app.outputs.signedReleaseFile }} - name: Generate Version run: | ./gradlew getVersion - name: Set Version to Environment id: version-env run: echo "version=$(cat app/build/version.txt)" >> $GITHUB_ENV - name: Publish APK uses: marvinpinto/action-automatic-releases@latest with: repo_token: "${{ secrets.GITHUB_TOKEN }}" prerelease: false files: | ${{ steps.sign_armv7_app.outputs.signedReleaseFile }} ${{ steps.sign_armv8_app.outputs.signedReleaseFile }} automatic_release_tag: v${{ env.version }}