197 lines
6.2 KiB
YAML
197 lines
6.2 KiB
YAML
trigger:
|
|
branches:
|
|
include:
|
|
- 'master'
|
|
- 'releases/*'
|
|
paths:
|
|
exclude:
|
|
- '*/docs/*'
|
|
- 'docs/*'
|
|
- '*/*.md'
|
|
- '*.md'
|
|
- '*/layer_tests_summary/*'
|
|
- '*/conformance/*'
|
|
- 'tools/*'
|
|
- 'tests/layer_tests/*'
|
|
|
|
pr:
|
|
drafts: 'false'
|
|
branches:
|
|
include:
|
|
- 'master'
|
|
- 'releases/*'
|
|
paths:
|
|
exclude:
|
|
- '*/docs/*'
|
|
- 'docs/*'
|
|
- '*/*.md'
|
|
- '*.md'
|
|
- '*/layer_tests_summary/*'
|
|
- '*/conformance/*'
|
|
- 'tools/*'
|
|
- 'tests/layer_tests/*'
|
|
|
|
resources:
|
|
repositories:
|
|
- repository: vcpkg
|
|
type: github
|
|
endpoint: openvinotoolkit
|
|
name: microsoft/vcpkg
|
|
|
|
variables:
|
|
- group: github
|
|
|
|
jobs:
|
|
- job: android_arm64
|
|
# About 150% of total time
|
|
timeoutInMinutes: '120'
|
|
|
|
pool:
|
|
name: LIN_VMSS_VENV_F16S_U20_WU2
|
|
|
|
variables:
|
|
system.debug: true
|
|
VSTS_HTTP_RETRY: 5
|
|
VSTS_HTTP_TIMEOUT: 200
|
|
BUILD_TYPE: Debug
|
|
OPENVINO_REPO_DIR: $(Build.Repository.LocalPath)
|
|
VCPKG_ROOT: $(OPENVINO_REPO_DIR)/../vcpkg
|
|
WORK_DIR: $(Pipeline.Workspace)/_w
|
|
BUILD_DIR: $(WORK_DIR)/build
|
|
ANDROID_TOOLS: $(WORK_DIR)/android_tools
|
|
ANDROID_NDK_HOME: $(WORK_DIR)/android_tools/ndk-bundle
|
|
ANDROID_SDK_VERSION: 29
|
|
ANDROID_ABI_CONFIG: arm64-v8a
|
|
TMP_DIR: /mnt/tmp
|
|
SHARE_DIR: /mount/cinfsshare/onnxtestdata
|
|
CCACHE_DIR: $(SHARE_DIR)/ccache/master/android_arm64
|
|
LD_LIBRARY_PATH: $(Agent.ToolsDirectory)/Python/$(OV_PYTHON_VERSION)/x64/lib
|
|
OV_PYTHON_VERSION: 3.11.2 # Full version of Python its required for LD_LIBRARY_PATH. More details https://github.com/microsoft/azure-pipelines-tool-lib/blob/master/docs/overview.md#tool-cache
|
|
|
|
steps:
|
|
- task: UsePythonVersion@0
|
|
inputs:
|
|
versionSpec: '$(OV_PYTHON_VERSION)' # Setting only major & minor version will download latest release from GH repo example 3.10 will be 3.10.10.
|
|
addToPath: true
|
|
disableDownloadFromRegistry: false
|
|
architecture: 'x64'
|
|
githubToken: $(auth_token)
|
|
displayName: Setup Python 3.11
|
|
name: setupPython
|
|
- bash: |
|
|
#!/bin/bash
|
|
python -V
|
|
|
|
- script: |
|
|
curl -H Metadata:true --noproxy "*" "http://169.254.169.254/metadata/instance?api-version=2019-06-01"
|
|
whoami
|
|
uname -a
|
|
echo ls /usr/bin/python3.10
|
|
rm -rf /usr/bin/python3
|
|
sudo ln -s /usr/bin/python3.10 /usr/bin/python3
|
|
echo Python3 info ; which python3 ; python3 --version
|
|
echo Python info ; which python ; python --version
|
|
echo Java info ; which java ; java -version
|
|
echo gcc info ; which gcc ; gcc --version
|
|
echo cmake info ; which cmake ; cmake --version
|
|
lsb_release
|
|
env
|
|
cat /proc/cpuinfo
|
|
cat /proc/meminfo
|
|
cat /etc/fstab
|
|
vmstat -s
|
|
df
|
|
lsblk -o NAME,HCTL,SIZE,MOUNTPOINT | grep -i "sd"
|
|
free -h
|
|
displayName: 'System information'
|
|
|
|
- script: |
|
|
set -e
|
|
rm -rf $(WORK_DIR) ; mkdir $(WORK_DIR)
|
|
rm -rf $(BUILD_DIR) ; mkdir $(BUILD_DIR)
|
|
rm -rf $(ANDROID_TOOLS) ; mkdir $(ANDROID_TOOLS)
|
|
sudo rm -rf $(TMP_DIR) ; sudo mkdir $(TMP_DIR) ; sudo chmod 777 -R $(TMP_DIR)
|
|
sudo mkdir -p $(SHARE_DIR)
|
|
sudo apt --assume-yes update && sudo apt --assume-yes install nfs-common
|
|
sudo mount -vvv -t nfs cinfsshare.file.core.windows.net:/cinfsshare/onnxtestdata $(SHARE_DIR) -o vers=4,minorversion=1,sec=sys
|
|
mkdir -p $(CCACHE_DIR)
|
|
displayName: 'Make dir'
|
|
|
|
- checkout: self
|
|
submodules: 'true'
|
|
clean: 'true'
|
|
path: openvino
|
|
|
|
- checkout: vcpkg
|
|
clean: 'true'
|
|
path: vcpkg
|
|
|
|
- script: |
|
|
set -e
|
|
# generic dependencies
|
|
sudo -E apt --assume-yes install ccache scons default-jdk python3-pip ninja-build
|
|
# vcpkg requires cmake 3.19 or later
|
|
python3 -m pip install -U pip cmake
|
|
# vcpkg's tool dependencies
|
|
sudo -E apt --assume-yes install curl zip unzip tar
|
|
# vcpkg tree of dependencies require extra packages
|
|
sudo -E apt --assume-yes install pkg-config linux-libc-dev
|
|
# Install Android SDK, NDK and Tools
|
|
sudo apt -y --no-install-recommends install unzip
|
|
wget https://dl.google.com/android/repository/commandlinetools-linux-7583922_latest.zip
|
|
unzip commandlinetools-linux-7583922_latest.zip
|
|
yes | ./cmdline-tools/bin/sdkmanager --sdk_root=$(ANDROID_TOOLS) --licenses
|
|
./cmdline-tools/bin/sdkmanager --sdk_root=$(ANDROID_TOOLS) --install "ndk-bundle" "platform-tools" "platforms;android-$(ANDROID_SDK_VERSION)"
|
|
displayName: 'Install dependencies'
|
|
|
|
- script: |
|
|
set -e
|
|
$(VCPKG_ROOT)/bootstrap-vcpkg.sh --disableMetrics
|
|
# patch vcpkg default (community) toolchain to build only Release configuration
|
|
echo "set(VCPKG_BUILD_TYPE release)" >> $(VCPKG_ROOT)/triplets/community/arm64-android.cmake
|
|
displayName: 'Build vcpkg'
|
|
|
|
- task: CMake@1
|
|
inputs:
|
|
cmakeArgs: >
|
|
-G Ninja
|
|
-DCMAKE_VERBOSE_MAKEFILE=ON
|
|
-DCMAKE_BUILD_TYPE=$(BUILD_TYPE)
|
|
-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
|
|
-DANDROID_ABI=$(ANDROID_ABI_CONFIG)
|
|
-DANDROID_PLATFORM=$(ANDROID_SDK_VERSION)
|
|
-DENABLE_PYTHON=OFF
|
|
-DENABLE_SYSTEM_OPENCL=ON
|
|
-DENABLE_SYSTEM_PROTOBUF=ON
|
|
-DENABLE_SYSTEM_PUGIXML=ON
|
|
-DENABLE_SYSTEM_SNAPPY=ON
|
|
-DENABLE_SYSTEM_TBB=ON
|
|
-DENABLE_SYSTEM_FLATBUFFERS=ON
|
|
-DENABLE_INTEL_GPU=ON
|
|
-DENABLE_TESTS=ON
|
|
-DCMAKE_CXX_COMPILER_LAUNCHER=ccache
|
|
-DCMAKE_C_COMPILER_LAUNCHER=ccache
|
|
-S $(OPENVINO_REPO_DIR)
|
|
-B $(BUILD_DIR)
|
|
|
|
- script: ccache --zero-stats --max-size=50G --show-config
|
|
displayName: 'Clean ccache stats'
|
|
|
|
- script: cmake --build $(BUILD_DIR) --parallel --config $(BUILD_TYPE)
|
|
env:
|
|
CCACHE_DIR: $(CCACHE_DIR)
|
|
CCACHE_TEMPDIR: $(TMP_DIR)/ccache
|
|
CCACHE_BASEDIR: $(Pipeline.Workspace)
|
|
CCACHE_MAXSIZE: 50G
|
|
displayName: 'Build Android ARM64'
|
|
|
|
- script: ccache --show-stats
|
|
displayName: 'Show ccache stats'
|
|
|
|
- script: ls -alR $(OPENVINO_REPO_DIR)/bin/
|
|
displayName: 'List binary files'
|