Skip to content

Merge pull request #230 from onuralpszr/renovate/androidx.test.espres… #175

Merge pull request #230 from onuralpszr/renovate/androidx.test.espres…

Merge pull request #230 from onuralpszr/renovate/androidx.test.espres… #175

name: 🚀 Build and Release
on:
push:
branches:
- main
tags:
- "v*"
jobs:
apk-release:
name: 📦 Generate APK
runs-on: ubuntu-latest
steps:
- name: 🔄 Checkout Code
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- name: 🛠️ Setup JDK
uses: actions/setup-java@c5195efecf7bdfc987ee8bae7a71cb8b11521c00 # v4.7.1
with:
distribution: temurin
java-version: "17"
- name: 📚 Android-OpenCV-SDK Setup
run: ./setupOpenCV_4x.sh
- name: 🚀 Set execution flag for gradlew
run: chmod +x gradlew
- name: 🗝️ Decode the Keystore
run: echo "${{ secrets.KEYSTORE }}" | base64 --decode > ./keystore.jks
# list files and show pwd for debugging
- name: 📂 List files
run: |
ls -la
pwd
- name: 🏗️ Build Signed APK
run: |
bash ./gradlew assembleRelease --stacktrace \
-Pandroid.injected.signing.store.file=$GITHUB_WORKSPACE/keystore.jks \
-Pandroid.injected.signing.store.password=${{ secrets.KEYSTORE_PASSWORD }} \
-Pandroid.injected.signing.key.alias=${{ secrets.KEY_ALIAS }} \
-Pandroid.injected.signing.key.password=${{ secrets.KEY_PASSWORD }}
- name: 📤 Upload APK
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4.6.2
with:
name: apk
path: app/build/outputs/apk/release/app-release.apk
- name: Get OpenCV version and versionName
run: |
echo "opencv_version=$(awk -F'= ' '/def openCVersionName/ { print $2 }' opencvsdk4120/sdk/build.gradle | tr -d '"')" >> "$GITHUB_ENV"
echo "version_name=$(grep -oP 'versionName "\K[^"]+' app/build.gradle)" >> "$GITHUB_ENV"
echo "git_hash=$(git rev-parse --verify --short HEAD)" >> "$GITHUB_ENV"
- name: 🏷️ Create Release
id: create_release
uses: actions/create-release@4c11c9fe1dcd9636620a16455165783b20fc7ea0 # v1.1.4
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: ${{ github.ref }}
release_name: Release CvCameraMobile - OpenCV ${{ env.opencv_version }} - Version ${{ env.version_name }} - Git Hash ${{ env.git_hash }}
draft: true
prerelease: false
- name: 📤 Upload APK to Release
uses: actions/upload-release-asset@e8f9f06c4b078e705bd2ea027f0926603fc9b4d5 # v1.0.2
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: ./app/build/outputs/apk/release/app-release.apk
asset_name: app-release.apk
asset_content_type: application/vnd.android.package-archive