Skip to content

Merge pull request #336 from onuralpszr/chore/compile-sdk-37 #281

Merge pull request #336 from onuralpszr/chore/compile-sdk-37

Merge pull request #336 from onuralpszr/chore/compile-sdk-37 #281

name: 🚀 Build and Release
on:
push:
branches:
- main
tags:
- "v*"
- "cv-*"
jobs:
apk-release:
name: 📦 Generate APK
runs-on: ubuntu-latest
steps:
- name: 🔄 Checkout Code
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- name: 🛠️ Setup JDK
uses: actions/setup-java@b6effb05e454b25005698d916606bdc6ffcbf961 # v5.7.0
with:
distribution: temurin
java-version: "21"
- 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 > app/keystore.jks
- name: 📂 List files
run: |
ls -la
pwd
- name: 🏗️ Build Signed APK
env:
SIGNING_STORE_PASSWORD: ${{ secrets.KEYSTORE_PASSWORD }}
SIGNING_KEY_ALIAS: ${{ secrets.KEY_ALIAS }}
SIGNING_KEY_PASSWORD: ${{ secrets.KEY_PASSWORD }}
run: |
bash ./gradlew assembleRelease --stacktrace
- name: 📤 Upload APK
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
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 }' opencvsdk4130/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