Skip to content

.github/workflows/build.yml #28

.github/workflows/build.yml

.github/workflows/build.yml #28

Workflow file for this run

# build
on:
workflow_dispatch:
inputs:
repository:
default: viamrobotics/rdk
ref:
default: main
jobs:
daily:
runs-on: buildjet-8vcpu-ubuntu-2204
container: ghcr.io/${{ github.repository }}
steps:
- uses: actions/checkout@v4
with:
path: rdk-apk
- uses: actions/checkout@v4
with:
repository: ${{ inputs.repository }}
ref: ${{ inputs.ref }}
path: rdk
fetch-tags: true # need tags for git describe
# todo: put tflite and x264 in same etc/android/prefix, then try pkgconfig
# todo: look at short-lived cache of etc/android/prefix
- name: build x264
if: hashFiles('rdk/etc/android/build-x264.sh') != ''
working-directory: rdk
run: |
make etc/android/prefix/aarch64
make etc/android/prefix/x86_64
- name: build tflite
working-directory: rdk
# we need tflite headers but not the full build. add SRC_ONLY flag
# if: false
run: ANDROID_NDK=$NDK_ROOT KEEP_TFLITE_SRC=1 etc/android/build-tflite.sh
# todo: per-platorm AAR so this is 2 x 100mb instead of 200mb
- name: build AAR
working-directory: rdk
run: CGO_CFLAGS="-I $HOME/tensorflow/tensorflow-2.12.0" PLATFORM_NDK_ROOT=$NDK_ROOT NDK_ROOT=$NDK_ROOT make droid-rdk.aar
# todo: pass down APK + RDK version information
- name: build APK
working-directory: rdk-apk
shell: bash
run: |
export RDK_PATH=$(realpath ../rdk)
source $SDKMAN_DIR/bin/sdkman-init.sh
# todo(review): is it safe to use gradle in path instead of gradlew? or way to make gradlew use system gradle?
gradle --no-daemon assembleDebug
- name: rename
run: |
mkdir dist
mv rdk-apk/app/build/outputs/apk/debug/app-debug.apk \
dist/rdk-$(date +%y%m%d)-$(cd rdk && git describe --tags)-$(cd rdk-apk && git rev-parse --short HEAD).apk
- uses: actions/upload-artifact@v4
with:
path: dist
if-no-files-found: error