Add more tests for model cache new feature #8507
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: | |
push: | |
branches: | |
- master | |
- 'releases/**' | |
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: | |
Smart_CI: | |
runs-on: ubuntu-latest | |
outputs: | |
affected_components: "${{ steps.smart_ci.outputs.affected_components }}" | |
skip_workflow: "${{ steps.smart_ci.outputs.skip_workflow }}" | |
steps: | |
- name: checkout action | |
uses: actions/checkout@v4 | |
with: | |
sparse-checkout: .github/actions/smart-ci | |
- name: Get affected components | |
id: smart_ci | |
uses: ./.github/actions/smart-ci | |
with: | |
repository: ${{ github.repository }} | |
pr: ${{ github.event.number }} | |
commit_sha: ${{ github.sha }} | |
component_pattern: "category: (.*)" | |
repo_token: ${{ secrets.GITHUB_TOKEN }} | |
skip_when_only_listed_labels_set: 'docs' | |
skip_when_only_listed_files_changed: '*.md,*.rst,*.png,*.jpg,*.svg,*/layer_tests_summary/*,*/conformance/*' | |
Build: | |
needs: Smart_CI | |
timeout-minutes: 150 | |
defaults: | |
run: | |
shell: bash | |
runs-on: aks-linux-16-cores-32gb | |
container: | |
image: openvinogithubactions.azurecr.io/dockerhub/ubuntu:20.04 | |
volumes: | |
- /mount:/mount | |
options: -e SCCACHE_AZURE_BLOB_CONTAINER -e SCCACHE_AZURE_CONNECTION_STRING | |
env: | |
DEBIAN_FRONTEND: noninteractive # to prevent apt-get from waiting user input | |
CMAKE_GENERATOR: 'Ninja' | |
CMAKE_CXX_COMPILER_LAUNCHER: sccache | |
CMAKE_C_COMPILER_LAUNCHER: sccache | |
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' | |
SCCACHE_AZURE_KEY_PREFIX: android_arm64 | |
if: "!needs.smart_ci.outputs.skip_workflow" | |
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/zlib | |
git submodule update --init -- ${OPENVINO_REPO}/thirdparty/json | |
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' | |
# | |
# Print system info | |
# | |
- name: System info | |
uses: ./openvino/.github/actions/system_info | |
# | |
# 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 }}" | |
- name: Install sccache | |
uses: mozilla-actions/[email protected] | |
with: | |
version: "v0.5.4" | |
# | |
# 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: ${SCCACHE_PATH} --zero-stats | |
- name: Cmake - build | |
run: cmake --build ${BUILD_DIR} --parallel | |
- name: Show ccache stats | |
run: ${SCCACHE_PATH} --show-stats | |
Overall_Status: | |
name: ci/gha_overall_status_android | |
needs: [Smart_CI, Build] | |
if: ${{ always() }} | |
runs-on: ubuntu-latest | |
steps: | |
- name: Check status of all jobs | |
if: >- | |
${{ | |
contains(needs.*.result, 'failure') || | |
contains(needs.*.result, 'cancelled') | |
}} | |
run: exit 1 |