Skip to content

fix: use latest opencv on ubuntu #5397

fix: use latest opencv on ubuntu

fix: use latest opencv on ubuntu #5397

Workflow file for this run

name: Build android app
concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
on:
pull_request:
push:
branches:
- master
- stable
jobs:
#this it tests jobs, called build as it's required name for PR
build:
name: Build
runs-on: ubuntu-22.04
steps:
- name: Checkout Sources
uses: actions/checkout@v4.1.1
with:
fetch-depth: 50
submodules: 'recursive'
- name: Install Opencv 4.11.0 (Linux)
run: |
sudo apt-get update
sudo apt-get install -y build-essential cmake pkg-config
sudo apt-get install -y libjpeg-dev libtiff-dev libpng-dev
sudo apt-get install -y libavcodec-dev libavformat-dev libswscale-dev libv4l-dev
sudo apt-get install -y libxvidcore-dev libx264-dev
sudo apt-get install -y libgtk-3-dev
sudo apt-get install -y libatlas-base-dev gfortran
sudo apt-get install -y python3-dev
sudo apt-get install -y unzip
cd /tmp
wget -O opencv.zip https://github.com/opencv/opencv/archive/4.11.0.zip
wget -O opencv_contrib.zip https://github.com/opencv/opencv_contrib/archive/4.11.0.zip
unzip opencv.zip
unzip opencv_contrib.zip
cd opencv-4.11.0
mkdir build && cd build
cmake -D CMAKE_BUILD_TYPE=RELEASE \
-D CMAKE_INSTALL_PREFIX=/usr/local \
-D OPENCV_ENABLE_NONFREE=ON \
-D OPENCV_EXTRA_MODULES_PATH=../../opencv_contrib-4.11.0/modules \
-D BUILD_EXAMPLES=OFF ..
make -j2 # Using 2 cores for CI
sudo make install
sudo ldconfig
- name: Install Rust stable toolchain
uses: dtolnay/rust-toolchain@stable
- name: Install uniffi_bindgen
uses: actions-rs/install@v0.1
with:
crate: uniffi_bindgen
version: 0.22.0 # Must be in sync with version in Cargo.toml
use-tool-cache: false
- name: Install additional rust targets
run: rustup target add aarch64-linux-android armv7-linux-androideabi x86_64-linux-android
- name: Set up JDK environment
uses: actions/setup-java@v4
with:
distribution: 'adopt'
java-version: 17
- name: Install NDK
run: echo "y" | sudo ${ANDROID_SDK_ROOT}/cmdline-tools/latest/bin/sdkmanager --install "ndk;24.0.8215888" --sdk_root=${ANDROID_SDK_ROOT}
# - name: Rust Cache
# uses: Swatinem/rust-cache@27b8ea9368cf428f0bfe41b0876b1a7e809d9844 # v2.7.7
# with:
# workspaces: rust -> rust/target
# - name: Gradle Cache
# uses: actions/cache@v3
# with:
# path: |
# ~/.gradle/caches
# ~/.gradle/wrapper
# key: ${{ runner.os }}-gradle-${{ hashFiles('**/.gradle*', '**/gradle-wrapper.properties') }}
# restore-keys: |
# ${{ runner.os }}-gradle-
- name: Build
run: |
./gradlew :android:testDebugUnitTest
makeapk:
name: Build unsigned APKs
runs-on: ubuntu-24.04
# if: github.ref == ' refs/head/main'
steps:
- name: Checkout Sources
uses: actions/checkout@v4.1.1
with:
fetch-depth: 50
submodules: 'recursive'
- name: Install System Dependencies (Linux)
if: runner.os == 'Linux'
run: |
sudo apt-get update
sudo apt-get install -y clang libclang-dev libopencv-dev
- name: Install Rust stable toolchain
uses: dtolnay/rust-toolchain@stable
- name: Install uniffi_bindgen
uses: actions-rs/install@v0.1
with:
crate: uniffi_bindgen
version: 0.22.0 # Must be in sync with version in Cargo.toml
use-tool-cache: false
- name: Install additional rust targets
run: rustup target add aarch64-linux-android armv7-linux-androideabi x86_64-linux-android
- name: Set up JDK environment
uses: actions/setup-java@v4
with:
distribution: 'adopt'
java-version: 17
- name: Install NDK
run: echo "y" | sudo ${ANDROID_SDK_ROOT}/cmdline-tools/latest/bin/sdkmanager --install "ndk;24.0.8215888" --sdk_root=${ANDROID_SDK_ROOT}
# - name: Rust Cache
# uses: Swatinem/rust-cache@27b8ea9368cf428f0bfe41b0876b1a7e809d9844 # v2.7.7
# with:
# workspaces: rust -> rust/target
# - name: Gradle Cache
# uses: actions/cache@v3
# with:
# path: |
# ~/.gradle/caches
# ~/.gradle/wrapper
# key: ${{ runner.os }}-gradle-${{ hashFiles('**/.gradle*', '**/gradle-wrapper.properties') }}
# restore-keys: |
# ${{ runner.os }}-gradle-
- name: Assemble unsigned debug apk
run: |
./gradlew clean assembleDebug --stacktrace
- name: Upload Gplay unsigned APKs
uses: actions/upload-artifact@v4
with:
name: signer-debug-unsigned
path: |
android/build/outputs/apk/debug/*.apk