Bump awalsh128/cache-apt-pkgs-action from 1.3.1 to 1.4.0 #19
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: Linux ARM64 (Ubuntu 20.04, Python 3.11) | |
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 }}-linux-arm | |
cancel-in-progress: true | |
env: | |
PIP_CACHE_PATH: /mount/caches/pip/linux | |
PYTHON_VERSION: '3.11' | |
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' | |
- name: Show affected components | |
run: | | |
echo "${{ toJSON(steps.smart_ci.outputs.affected_components) }}" | |
shell: bash | |
Build: | |
needs: Smart_CI | |
timeout-minutes: 150 | |
defaults: | |
run: | |
shell: bash | |
runs-on: 'aks-linux-16-cores-arm' | |
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_BUILD_TYPE: 'Release' | |
CMAKE_GENERATOR: 'Ninja Multi-Config' | |
CMAKE_CXX_COMPILER_LAUNCHER: sccache | |
CMAKE_C_COMPILER_LAUNCHER: sccache | |
GITHUB_WORKSPACE: '/__w/openvino/openvino' | |
OPENVINO_REPO: /__w/openvino/openvino/openvino | |
OPENVINO_CONTRIB_REPO: /__w/openvino/openvino/openvino_contrib | |
INSTALL_DIR: /__w/openvino/openvino/openvino_install | |
INSTALL_TEST_DIR: /__w/openvino/openvino/tests_install | |
DEVELOPER_PACKAGE_DIR: /__w/openvino/openvino/developer_package_install | |
BUILD_DIR: /__w/openvino/openvino/openvino_build | |
SCCACHE_AZURE_KEY_PREFIX: 'ubuntu20_aarch64_Release' | |
ONNX_RUNTIME_UTILS: /__w/openvino/openvino/openvino/src/frontends/onnx/tests/ci_utils/onnxruntime | |
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: ${{ env.OPENVINO_REPO }} | |
submodules: 'true' | |
- name: Clone OpenVINO Contrib | |
uses: actions/checkout@v4 | |
with: | |
repository: 'openvinotoolkit/openvino_contrib' | |
path: ${{ env.OPENVINO_CONTRIB_REPO }} | |
submodules: 'true' | |
ref: 'master' | |
# | |
# Print system info | |
# | |
- name: System info | |
uses: ./openvino/.github/actions/system_info | |
# | |
# Dependencies | |
# | |
- name: Install build dependencies | |
run: | | |
bash ${OPENVINO_REPO}/install_build_dependencies.sh | |
# default-jdk - Java API | |
apt install --assume-yes --no-install-recommends default-jdk | |
- name: Install sccache | |
uses: mozilla-actions/[email protected] | |
with: | |
version: "v0.5.4" | |
- name: Setup Python ${{ env.PYTHON_VERSION }} | |
uses: ./openvino/.github/actions/setup_python | |
with: | |
version: ${{ env.PYTHON_VERSION }} | |
pip-cache-path: ${{ env.PIP_CACHE_PATH }} | |
should-setup-pip-paths: 'true' | |
show-cache-info: 'true' | |
- name: Install python dependencies | |
run: | | |
# For Python API: build and wheel packaging | |
python3 -m pip install -r ${OPENVINO_REPO}/src/bindings/python/wheel/requirements-dev.txt | |
python3 -m pip install -r ${OPENVINO_REPO}/src/bindings/python/src/compatibility/openvino/requirements-dev.txt | |
# For running ONNX frontend unit tests | |
python3 -m pip install --force-reinstall -r ${OPENVINO_REPO}/src/frontends/onnx/tests/requirements.txt | |
# For running TensorFlow frontend unit tests | |
python3 -m pip install -r ${OPENVINO_REPO}/src/frontends/tensorflow/tests/requirements.txt | |
# For running TensorFlow Lite frontend unit tests | |
python3 -m pip install -r ${OPENVINO_REPO}/src/frontends/tensorflow_lite/tests/requirements.txt | |
# For running Paddle frontend unit tests | |
python3 -m pip install -r ${OPENVINO_REPO}/src/frontends/paddle/tests/requirements.txt | |
# | |
# Build | |
# | |
- name: CMake configure - OpenVINO | |
run: | | |
cmake \ | |
-G "${{ env.CMAKE_GENERATOR }}" \ | |
-DENABLE_CPPLINT=OFF \ | |
-DENABLE_NCC_STYLE=OFF \ | |
-DENABLE_TESTS=ON \ | |
-DENABLE_STRICT_DEPENDENCIES=OFF \ | |
-DENABLE_SYSTEM_OPENCL=ON \ | |
-DCMAKE_VERBOSE_MAKEFILE=ON \ | |
-DCPACK_GENERATOR=TGZ \ | |
-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 sccache stats | |
run: ${SCCACHE_PATH} --zero-stats | |
- name: Cmake build - OpenVINO | |
run: cmake --build ${BUILD_DIR} --parallel --config ${{ env.CMAKE_BUILD_TYPE }} | |
- name: Show sccache stats | |
run: ${SCCACHE_PATH} --show-stats | |
- name: Cmake install - OpenVINO | |
run: | | |
cmake -DCMAKE_INSTALL_PREFIX=${INSTALL_DIR} -P ${BUILD_DIR}/cmake_install.cmake | |
cmake -DCMAKE_INSTALL_PREFIX=${INSTALL_TEST_DIR} -DCOMPONENT=tests -P ${BUILD_DIR}/cmake_install.cmake | |
cmake -DCMAKE_INSTALL_PREFIX=${DEVELOPER_PACKAGE_DIR} -DCOMPONENT=developer_package -P ${BUILD_DIR}/cmake_install.cmake | |
cmake -DCMAKE_INSTALL_PREFIX=${INSTALL_DIR} -DCOMPONENT=python_wheels -P ${BUILD_DIR}/cmake_install.cmake | |
- name: Pack Artifacts | |
run: | | |
# Add the ONNX Runtime version and skip tests list to the archive to use in the ONNX Runtime Job | |
# w/o the need to checkout repository | |
cp -R ${ONNX_RUNTIME_UTILS} ${INSTALL_DIR} | |
pushd ${INSTALL_DIR} | |
tar -czvf ${BUILD_DIR}/openvino_package.tar.gz * | |
popd | |
pushd ${DEVELOPER_PACKAGE_DIR} | |
tar -czvf ${BUILD_DIR}/openvino_developer_package.tar.gz * | |
popd | |
pushd ${INSTALL_TEST_DIR} | |
tar -czvf ${BUILD_DIR}/openvino_tests.tar.gz * | |
popd | |
- name: Build Debian packages | |
if: ${{ 'false' }} | |
run: | | |
/usr/bin/python3.8 -m pip install -U pip | |
/usr/bin/python3.8 -m pip install -r ${OPENVINO_REPO}/src/bindings/python/wheel/requirements-dev.txt | |
/usr/bin/python3.8 -m pip install -r ${OPENVINO_REPO}/src/bindings/python/src/compatibility/openvino/requirements-dev.txt | |
cmake -UPYTHON* \ | |
-DENABLE_PYTHON_PACKAGING=ON \ | |
-DENABLE_TESTS=OFF \ | |
-DPython3_EXECUTABLE=/usr/bin/python3.8 \ | |
-DCPACK_GENERATOR=DEB \ | |
${BUILD_DIR} | |
cmake --build ${BUILD_DIR} --parallel --config ${{ env.CMAKE_BUILD_TYPE }} --target package | |
- name: Cmake & Build - OpenVINO Contrib | |
run: | | |
cmake \ | |
-DBUILD_nvidia_plugin=OFF \ | |
-DCUSTOM_OPERATIONS="calculate_grid;complex_mul;fft;grid_sample;sparse_conv;sparse_conv_transpose" \ | |
-DOPENVINO_EXTRA_MODULES=${OPENVINO_CONTRIB_REPO}/modules \ | |
-S ${OPENVINO_REPO} \ | |
-B ${BUILD_DIR} | |
cmake --build ${BUILD_DIR} --parallel --config ${{ env.CMAKE_BUILD_TYPE }} | |
# | |
# Upload build artifacts | |
# | |
- name: Upload openvino package | |
if: ${{ always() }} | |
uses: actions/upload-artifact@v3 | |
with: | |
name: openvino_package | |
path: ${{ env.BUILD_DIR }}/openvino_package.tar.gz | |
if-no-files-found: 'error' | |
- name: Upload openvino developer package | |
if: ${{ always() }} | |
uses: actions/upload-artifact@v3 | |
with: | |
name: openvino_developer_package | |
path: ${{ env.BUILD_DIR }}/openvino_developer_package.tar.gz | |
if-no-files-found: 'error' | |
- name: Upload openvino debian packages | |
if: ${{ 'false' }} | |
uses: actions/upload-artifact@v3 | |
with: | |
name: openvino_debian_packages | |
path: ${{ env.BUILD_DIR }}/*.deb | |
if-no-files-found: 'error' | |
- name: Upload openvino tests package | |
if: ${{ always() }} | |
uses: actions/upload-artifact@v3 | |
with: | |
name: openvino_tests | |
path: ${{ env.BUILD_DIR }}/openvino_tests.tar.gz | |
if-no-files-found: 'error' | |
Debian_Packages: | |
name: Debian Packages | |
needs: Build | |
if: ${{ 'false' }} | |
uses: ./.github/workflows/job_debian_packages.yml | |
with: | |
runner: 'aks-linux-16-cores-arm' | |
image: 'openvinogithubactions.azurecr.io/dockerhub/ubuntu:20.04' | |
Samples: | |
needs: [ Build, Smart_CI ] | |
if: fromJSON(needs.smart_ci.outputs.affected_components).samples | |
uses: ./.github/workflows/job_samples_tests.yml | |
with: | |
runner: 'aks-linux-16-cores-arm' | |
image: 'openvinogithubactions.azurecr.io/dockerhub/ubuntu:20.04' | |
affected-components: ${{ needs.smart_ci.outputs.affected_components }} | |
ONNX_Runtime: | |
name: ONNX Runtime Integration | |
if: fromJSON(needs.smart_ci.outputs.affected_components).ONNX_RT | |
needs: [ Build, Smart_CI ] | |
uses: ./.github/workflows/job_onnx_runtime.yml | |
with: | |
runner: 'aks-linux-16-cores-arm' | |
container: '{"image": "openvinogithubactions.azurecr.io/dockerhub/ubuntu:20.04", "volumes": ["/mount:/mount"], "options": "-e SCCACHE_AZURE_BLOB_CONTAINER -e SCCACHE_AZURE_CONNECTION_STRING"}' | |
sccache-azure-key-prefix: 'ubuntu20_aarch64_onnxruntime' | |
CXX_Unit_Tests: | |
name: C++ unit tests | |
needs: [ Build, Smart_CI ] | |
uses: ./.github/workflows/job_cxx_unit_tests.yml | |
with: | |
runner: 'aks-linux-16-cores-arm' | |
image: 'openvinogithubactions.azurecr.io/dockerhub/ubuntu:20.04' | |
affected-components: ${{ needs.smart_ci.outputs.affected_components }} | |
Python_Unit_Tests: | |
name: Python unit tests | |
needs: [ Build, Smart_CI ] | |
uses: ./.github/workflows/job_python_unit_tests.yml | |
with: | |
runner: 'aks-linux-16-cores-arm' | |
container: '{"image": "openvinogithubactions.azurecr.io/dockerhub/ubuntu:20.04", "volumes": ["/mount:/mount"]}' | |
affected-components: ${{ needs.smart_ci.outputs.affected_components }} | |
CPU_Functional_Tests: | |
name: CPU functional tests | |
if: fromJSON(needs.smart_ci.outputs.affected_components).CPU.test | |
needs: [ Build, Smart_CI ] | |
uses: ./.github/workflows/job_cpu_functional_tests.yml | |
with: | |
runner: 'aks-linux-16-cores-arm' | |
image: 'openvinogithubactions.azurecr.io/dockerhub/ubuntu:20.04' | |
TensorFlow_Hub_Models_Tests: | |
name: TensorFlow Hub Models tests | |
if: ${{ 'false' }} # TODO: Enable once the dependencies are ready for arm (no tensorflow-text available for arm from PyPI) | |
# if: fromJSON(needs.smart_ci.outputs.affected_components).TF_FE.test || | |
# fromJSON(needs.smart_ci.outputs.affected_components).TFL_FE.test | |
needs: [ Build, Smart_CI ] | |
uses: ./.github/workflows/job_tensorflow_hub_models_tests.yml | |
with: | |
runner: 'aks-linux-16-cores-arm' | |
container: '{"image": "openvinogithubactions.azurecr.io/dockerhub/ubuntu:20.04"}' | |
event: ${{ github.event_name }} | |
PyTorch_Models_Tests: | |
name: PyTorch Models tests | |
if: ${{ 'false' }} # TODO: Enable once the dependencies are ready for arm (no tensorflow-text available for arm from PyPI) | |
# if: fromJSON(needs.smart_ci.outputs.affected_components).PyTorch_FE.test | |
needs: [ Build, Smart_CI ] | |
uses: ./.github/workflows/job_pytorch_models_tests.yml | |
with: | |
runner: 'aks-linux-16-cores-arm' | |
container: '{"image": "openvinogithubactions.azurecr.io/dockerhub/ubuntu:20.04"}' | |
event: ${{ github.event_name }} | |
Overall_Status: | |
name: ci/gha_overall_status_linux_arm64 | |
needs: [Smart_CI, Build, Debian_Packages, Samples, ONNX_Runtime, CXX_Unit_Tests, Python_Unit_Tests, CPU_Functional_Tests, | |
TensorFlow_Hub_Models_Tests, PyTorch_Models_Tests] | |
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 |