Skip to content

Update .github/workflows/linux_riscv_xuantie.yml #1

Update .github/workflows/linux_riscv_xuantie.yml

Update .github/workflows/linux_riscv_xuantie.yml #1

name: Linux RISC-V with Xuantie (Ubuntu 22.04, Python 3.10)
on:
workflow_dispatch:
inputs:
testFilter:
description: 'Filter for google tests'
required: true
default: '*smoke_AdaPoolAvg4DLayoutTest*'
pull_request:
paths:
- '.github/workflows/linux_riscv_xuantie.yml'
concurrency:
# github.ref is not unique in post-commit
group: ${{ github.event_name == 'push' && github.run_id || github.ref }}-linux-riscv-xuantie
cancel-in-progress: true
permissions: read-all
env:
TARGET_BRANCH: ${{ github.base_ref || github.event.merge_group.base_ref || github.ref }}
GTEST_FILTER: ${{ github.event_name == 'workflow_dispatch' && inputs.testFilter || '*smoke_AdaPoolAvg4DLayoutTest*' }}
RISCV_TOOLCHAIN_ROOT: /opt/riscv
jobs:

Check failure on line 25 in .github/workflows/linux_riscv_xuantie.yml

View workflow run for this annotation

GitHub Actions / .github/workflows/linux_riscv_xuantie.yml

Invalid workflow file

You have an error in your yaml syntax on line 25
Smart_CI:
runs-on: ubuntu-latest
outputs:
affected_components: "${{ steps.smart_ci.outputs.affected_components }}"
changed_components: "${{ steps.smart_ci.outputs.changed_components }}"
skip_workflow: "${{ steps.smart_ci.outputs.skip_workflow }}"
target_branch: ${{ steps.set_target_branch.outputs.target_branch }}
steps:
- name: checkout action
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
timeout-minutes: 15
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 }}
ref_name: ${{ github.ref_name }}
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/*'
- name: Get target branch
id: set_target_branch
run: |
echo "target_branch=${TARGET_BRANCH#refs/heads/}" >> $GITHUB_OUTPUT
shell: bash
Docker:
needs: Smart_CI
runs-on: aks-linux-4-cores-16gb-docker-build
if: "!needs.smart_ci.outputs.skip_workflow"
container:
image: openvinogithubactions.azurecr.io/docker_build:0.2
volumes:
- /mount:/mount
outputs:
images: "${{ steps.handle_docker.outputs.images }}"
steps:
- name: Checkout
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
timeout-minutes: 15
- uses: ./.github/actions/handle_docker
id: handle_docker
with:
images: |
ov_build/ubuntu_22_04_riscv_xuantie
ov_test/ubuntu_22_04_riscv_xuantie
registry: 'openvinogithubactions.azurecr.io'
dockerfiles_root_dir: '.github/dockerfiles'
changed_components: ${{ needs.smart_ci.outputs.changed_components }}
Build:
name: Build (RVV 0.7.1)
needs: [Smart_CI, Docker]
timeout-minutes: 150
defaults:
run:
shell: bash
runs-on: aks-linux-16-cores-32gb
container:
image: ${{ fromJSON(needs.docker.outputs.images).ov_build.ubuntu_22_04_riscv_xuantie }}
volumes:
- /mount:/mount
- ${{ github.workspace }}:${{ github.workspace }}
env:
CMAKE_BUILD_TYPE: 'Release'
CMAKE_GENERATOR: 'Ninja'
CMAKE_CXX_COMPILER_LAUNCHER: ccache
CMAKE_C_COMPILER_LAUNCHER: ccache
OPENVINO_REPO: ${{ github.workspace }}/openvino
BUILD_DIR: ${{ github.workspace }}/build
INSTALL_DIR: ${{ github.workspace }}/openvino_install
INSTALL_TEST_DIR: ${{ github.workspace }}/tests_install
CCACHE_REMOTE_DIR: /mount/caches/ccache/ubuntu22_riscv64/xuantie/${{ needs.Smart_CI.outputs.target_branch }}
CCACHE_DIR: ${{ github.workspace }}/ccache
CCACHE_TEMPDIR: ${{ github.workspace }}/ccache_temp
CCACHE_MAXSIZE: 2G
if: ${{ github.event_name != 'merge_group' }}
steps:
- name: Clone OpenVINO
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
timeout-minutes: 15
with:
path: ${{ env.OPENVINO_REPO }}
submodules: 'true'
#
# Print system info
#
- name: System info
uses: ./openvino/.github/actions/system_info
- name: Setup ccache
id: ccache_restore
uses: ./openvino/.github/actions/cache
with:
save-always: ${{ github.event_name == 'push' && 'true' || 'false' }}
cleanup-always: ${{ github.event_name == 'push' && 'true' || 'false' }}
cache-size: 10
max-cache-size: 50
cache-path: ${{ env.CCACHE_REMOTE_DIR }}
path: ${{ env.CCACHE_DIR }}
key: ${{ runner.os }}-${{ runner.arch }}-ccache-${{ github.sha }}
restore-keys: |
${{ runner.os }}-${{ runner.arch }}-ccache
#
# Build
#
- name: Clean ccache stats
run: ccache --zero-stats
- name: CMake - Configure
run: >
cmake -G "${{ env.CMAKE_GENERATOR }}"
-DENABLE_CPPLINT=OFF
-DENABLE_INTEL_GPU=OFF
-DENABLE_INTEL_NPU=OFF
-DENABLE_SAMPLES=OF
-DENABLE_NCC_STYLE=OFF
-DENABLE_PYTHON=OFF
-DENABLE_TESTS=ON
-DENABLE_STRICT_DEPENDENCIES=OFF
-DCMAKE_VERBOSE_MAKEFILE=ON
-DENABLE_WHEEL=OFF
-DCMAKE_COMPILE_WARNING_AS_ERROR=OFF
-DCMAKE_TOOLCHAIN_FILE=${OPENVINO_REPO}/cmake/toolchains/riscv64-071-xuantie-gnu.toolchain.cmake
-S ${OPENVINO_REPO}
-B ${BUILD_DIR}
- name: Cmake - Build
run: cmake --build ${BUILD_DIR} --parallel $(nproc)
- name: Show ccache stats and cleanup
run: |
ccache --show-stats
ccache --cleanup
- name: Cmake install - OpenVINO
run: |
cmake --install . --config ${{ env.CMAKE_BUILD_TYPE }} --prefix ${{ env.INSTALL_DIR }}
cmake --install . --config ${{ env.CMAKE_BUILD_TYPE }} --prefix ${{ env.INSTALL_TEST_DIR }} --component tests
working-directory: ${{ env.BUILD_DIR }}
- name: Pack openvino_package
run: tar -cvf - * | pigz > ${{ env.BUILD_DIR }}/openvino_package.tar.gz
working-directory: ${{ env.INSTALL_DIR }}
- name: Pack openvino_tests
run: tar -cvf - * | pigz > ${{ env.BUILD_DIR }}/openvino_tests.tar.gz
working-directory: ${{ env.INSTALL_TEST_DIR }}
- name: Upload openvino package
if: ${{ always() }}
uses: actions/upload-artifact@b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882 # v4.4.3
with:
name: openvino_package
path: ${{ env.BUILD_DIR }}/openvino_package.tar.gz
if-no-files-found: 'error'
- name: Upload openvino tests package
if: ${{ always() }}
uses: actions/upload-artifact@b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882 # v4.4.3
with:
name: openvino_tests
path: ${{ env.BUILD_DIR }}/openvino_tests.tar.gz
if-no-files-found: 'error'
CPU_Functional_Tests:
name: CPU functional tests
timeout-minutes: 30
needs: [Smart_CI, Docker, Build]
runs-on: aks-linux-4-cores-16gb
container:
image: ${{ fromJSON(needs.docker.outputs.images).ov_test.ubuntu_22_04_riscv_xuantie }}
volumes:
- ${{ github.workspace }}:${{ github.workspace }}
defaults:
run:
shell: bash
env:
INSTALL_DIR: ${{ github.workspace }}/install
INSTALL_TEST_DIR: ${{ github.workspace }}/install/tests
steps:
- name: Download OpenVINO artifacts (tarballs)
uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8
with:
pattern: openvino_[package|tests]*
path: ${{ env.INSTALL_DIR }}
merge-multiple: true
- name: Extract OpenVINO packages and tests
run: |
pigz -dc openvino_package.tar.gz | tar -xvf - -C ${INSTALL_DIR}
pigz -dc openvino_tests.tar.gz | tar -xvf - -C ${INSTALL_DIR}
working-directory: ${{ env.INSTALL_DIR }}
- name: Intel CPU plugin func tests (parallel)
run: |
# Needed as the Linux CC does not require setupvars to work
if [[ -f "${{ env.INSTALL_DIR }}/setupvars.sh" ]]; then
source ${{ env.INSTALL_DIR }}/setupvars.sh
fi
echo "run cpu functional tests"
${{ env.RISCV_TOOLCHAIN_ROOT}}/bin/qemu-riscv64 -cpu c910v ${{ env.INSTALL_TEST_DIR }}/ov_cpu_func_tests --gtest_print_time=1 --gtest_filter=${{ env.GTEST_FILTER }}
env:
LD_LIBRARY_PATH: "$LD_LIBRARY_PATH:${{ env.INSTALL_TEST_DIR }}" # Needed as ze_loader.so is under INSTALL_TEST_DIR
timeout-minutes: 25
Overall_Status:
name: ci/gha_overall_status_linux_riscv
needs: [Smart_CI, Build, CPU_Functional_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