name: Run ONERT Android Release Build

on:
  push:
    branches:
      - master
      - release/*
    paths:
      - '.github/workflows/run-onert-android-build.yml'
      - 'nn*'
      - 'Makefile.template'
      - 'compute/**'
      - 'infra/buildtool/**'
      - 'infra/cmake/**'
      - 'infra/nncc/**'
      - 'infra/nnfw/**'
      - 'runtime/**'
      - 'tests/**'
      - '!**/*.md'
  pull_request:
    branches:
      - master
      - release/*
    paths:
      - '.github/workflows/run-onert-android-build.yml'
      - 'nn*'
      - 'Makefile.template'
      - 'compute/**'
      - 'infra/buildtool/**'
      - 'infra/cmake/**'
      - 'infra/nncc/**'
      - 'infra/nnfw/**'
      - 'runtime/**'
      - 'tests/**'
      - '!**/*.md'

defaults:
  run:
    shell: bash

jobs:
  build:
    runs-on: ubuntu-22.04
    if: github.repository_owner == 'Samsung'
    env:
      TARGET_ARCH: aarch64
      TARGET_OS: android
      CROSS_BUILD: 1
      BUILD_TYPE: release
    steps:
      - name: Checkout
        uses: actions/checkout@v4

      - name: Caching externals
        uses: actions/cache@v4
        with:
          path: externals
          key: external-onert-ndk-${{ hashFiles('infra/cmake/packages/**/*.cmake') }}-${{ hashFiles('infra/nnfw/cmake/packages/**/*.cmake') }}
          restore-keys: |
            external-onert-ndk-
            external-onert-
            external-

      # numpy: test build
      # scons: arm compute library build
      - name: Install packages
        run: |
          pip3 install numpy
          sudo apt-get update && sudo apt-get -qqy install scons

      # Use NDK Default
      - name: Build onert
        run: |
          export NDK_DIR=${ANDROID_NDK}
          make -f Makefile.template