Bump actions/setup-python from 4 to 5 #23
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Android ARM64 with vcpkg | |
on: | |
workflow_dispatch: | |
pull_request: | |
paths-ignore: | |
- '**/docs/**' | |
- 'docs/**' | |
- '**/**.md' | |
- '**.md' | |
- '**/layer_tests_summary/**' | |
- '**/conformance/**' | |
push: | |
paths-ignore: | |
- '**/docs/**' | |
- 'docs/**' | |
- '**/**.md' | |
- '**.md' | |
- '**/layer_tests_summary/**' | |
- '**/conformance/**' | |
branches: | |
- master | |
concurrency: | |
# github.ref is not unique in post-commit | |
group: ${{ github.event_name == 'push' && github.run_id || github.ref }}-android-arm64-vcpkg | |
cancel-in-progress: true | |
jobs: | |
Build: | |
defaults: | |
run: | |
shell: bash | |
runs-on: aks-linux-16-cores | |
container: | |
image: openvinogithubactions.azurecr.io/dockerhub/ubuntu:20.04 | |
volumes: | |
- /mount/caches:/mount/caches | |
env: | |
DEBIAN_FRONTEND: noninteractive # to prevent apt-get from waiting user input | |
CMAKE_GENERATOR: 'Ninja' | |
CMAKE_CXX_COMPILER_LAUNCHER: ccache | |
CMAKE_C_COMPILER_LAUNCHER: ccache | |
OPENVINO_REPO: '/__w/openvino/openvino/openvino' | |
VCPKG_ROOT: '/__w/openvino/openvino/vcpkg' | |
BUILD_DIR: '/__w/openvino/openvino/build' | |
ANDROID_TOOLS: '/__w/openvino/openvino/android_tools' | |
ANDROID_NDK_HOME: '/__w/openvino/openvino/android_tools/ndk-bundle' | |
ANDROID_SDK_VERSION: 29 | |
ANDROID_ABI_CONFIG: arm64-v8a | |
VCPKG_DEFAULT_BINARY_CACHE: '/mount/caches/ccache/android_arm64/vcpkg_cache' | |
VCPKG_FORCE_SYSTEM_BINARIES: '1' | |
CCACHE_DIR: '/mount/caches/ccache/android_arm64' | |
CCACHE_TEMPDIR: '/__w/openvino/openvino/ccache_temp' | |
CCACHE_COMPILERCHECK: 'content' | |
CCACHE_MAXSIZE: 50G | |
steps: | |
- name: Install git | |
run: apt-get update && apt-get install --assume-yes --no-install-recommends git ca-certificates | |
- name: Clone OpenVINO | |
uses: actions/checkout@v4 | |
with: | |
path: 'openvino' | |
- name: Init submodules for non vcpkg dependencies | |
run: | | |
pushd ${OPENVINO_REPO} | |
git submodule update --init -- ${OPENVINO_REPO}/src/plugins | |
git submodule update --init -- ${OPENVINO_REPO}/thirdparty/gtest | |
git submodule update --init -- ${OPENVINO_REPO}/thirdparty/gflags | |
git submodule update --init -- ${OPENVINO_REPO}/thirdparty/open_model_zoo | |
popd | |
- name: Clone vcpkg | |
uses: actions/checkout@v4 | |
with: | |
repository: 'microsoft/vcpkg' | |
path: 'vcpkg' | |
fetch-depth: '0' | |
# | |
# Dependencies | |
# | |
- name: Install dependencies | |
run: | | |
# generic dependencies | |
apt --assume-yes install ccache scons ninja-build build-essential python3-pip | |
# vcpkg requires cmake 3.19 or later | |
python3 -m pip install -U pip cmake | |
# vcpkg's tool dependencies | |
apt --assume-yes install curl zip unzip tar | |
# vcpkg 'python3' port dependencies | |
apt --assume-yes install autoconf libtool autoconf-archive | |
# vcpkg tree of dependencies require extra packages | |
apt --assume-yes install pkg-config linux-libc-dev | |
# Install Android SDK, NDK and Tools | |
apt -y --no-install-recommends install unzip wget default-jdk | |
wget https://dl.google.com/android/repository/commandlinetools-linux-7583922_latest.zip | |
unzip commandlinetools-linux-7583922_latest.zip | |
echo "yes" | ./cmdline-tools/bin/sdkmanager --sdk_root=${ANDROID_TOOLS} --install "ndk-bundle" "platform-tools" "platforms;android-${{ env.ANDROID_SDK_VERSION }}" | |
# | |
# Build | |
# | |
- name: Build vcpkg | |
run: | | |
mkdir -p ${VCPKG_DEFAULT_BINARY_CACHE} | |
${VCPKG_ROOT}/bootstrap-vcpkg.sh | |
# patch vcpkg default toolchain to build only Release configuration | |
echo "set(VCPKG_BUILD_TYPE release)" >> ${VCPKG_ROOT}/triplets/arm64-android.cmake | |
- name: CMake - configure | |
run: | | |
cmake \ | |
-G '${{ env.CMAKE_GENERATOR }}' \ | |
-DENABLE_INTEL_GPU=ON \ | |
-DENABLE_TESTS=ON \ | |
-DENABLE_SYSTEM_OPENCL=ON \ | |
-DENABLE_SYSTEM_PROTOBUF=ON \ | |
-DENABLE_SYSTEM_PUGIXML=ON \ | |
-DENABLE_SYSTEM_SNAPPY=ON \ | |
-DENABLE_SYSTEM_TBB=ON \ | |
-DENABLE_SYSTEM_FLATBUFFERS=ON \ | |
-DANDROID_ABI=${{ env.ANDROID_ABI_CONFIG }} \ | |
-DANDROID_PLATFORM=${{ env.ANDROID_SDK_VERSION }} \ | |
-DVCPKG_TARGET_TRIPLET=arm64-android \ | |
-DVCPKG_HOST_TRIPLET=x64-linux-release \ | |
-DCMAKE_TOOLCHAIN_FILE=${VCPKG_ROOT}/scripts/buildsystems/vcpkg.cmake \ | |
-DVCPKG_CHAINLOAD_TOOLCHAIN_FILE=${ANDROID_NDK_HOME}/build/cmake/android.toolchain.cmake \ | |
-DCMAKE_COMPILE_WARNING_AS_ERROR=ON \ | |
-DCMAKE_CXX_COMPILER_LAUNCHER=${{ env.CMAKE_CXX_COMPILER_LAUNCHER }} \ | |
-DCMAKE_C_COMPILER_LAUNCHER=${{ env.CMAKE_C_COMPILER_LAUNCHER }} \ | |
-S ${OPENVINO_REPO} \ | |
-B ${BUILD_DIR} | |
- name: Clean ccache stats | |
run: ccache --zero-stats --show-config | |
- name: Cmake - build | |
run: cmake --build ${BUILD_DIR} --parallel | |
- name: Show ccache stats | |
run: ccache --show-stats |