Skip to content

Commit

Permalink
...
Browse files Browse the repository at this point in the history
  • Loading branch information
yury-intel committed Aug 8, 2024
1 parent 897079e commit f2d9cd9
Showing 1 changed file with 255 additions and 0 deletions.
255 changes: 255 additions & 0 deletions .github/workflows/dev_linux_cpu_riscv.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,255 @@
name: Linux developer RISC-V workflow for CPU plugin (Ubuntu 22.04, Python 3.10)
on:
workflow_dispatch:
pull_request:
paths:
- '.github/workflows/dev_linux_cpu_riscv.yml'

concurrency:
# github.ref is not unique in post-commit
group: ${{ github.event_name == 'push' && github.run_id || github.ref }}-dev-cpu-linux-riscv
cancel-in-progress: true

permissions: read-all

jobs:
# copypaste form linux_riscv.yml until refactoring with reusable actions
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 }}"
steps:
- name: checkout action
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
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/*'

Docker:
needs: Smart_CI
runs-on: aks-linux-4-cores-16gb-docker-build
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@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7

- uses: ./.github/actions/handle_docker
id: handle_docker
with:
images: |
ov_build/ubuntu_22_04_riscv
registry: 'openvinogithubactions.azurecr.io'
dockerfiles_root_dir: '.github/dockerfiles'
changed_components: ${{ needs.smart_ci.outputs.changed_components }}

Build:
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 }}
volumes:
- /mount:/mount
env:
CMAKE_BUILD_TYPE: 'Release'
CMAKE_GENERATOR: 'Ninja'
CMAKE_CXX_COMPILER_LAUNCHER: ccache
CMAKE_C_COMPILER_LAUNCHER: ccache
OPENVINO_REPO: /__w/openvino/openvino/openvino
OPENVINO_BUILD_DIR: /__w/openvino/openvino/openvino_build
INSTALL_DIR: /__w/openvino/openvino/openvino_install
XUANTIE_DIR: /__w/openvino/xuantie
# CONAN_USER_HOME: /mount/caches/ccache/ubuntu22_riscv64_master_release/.conan
CCACHE_REMOTE_DIR: /mount/caches/ccache/ubuntu22_riscv64/${{ github.base_ref || github.ref_name }}
CCACHE_DIR: /__w/openvino/openvino/ccache
CCACHE_TEMPDIR: /__w/openvino/openvino/ccache_temp
CCACHE_MAXSIZE: 2G

if: ${{ !needs.smart_ci.outputs.skip_workflow && github.event_name != 'merge_group' }}
steps:
- name: Clone OpenVINO
uses: actions/checkout@692973e3d937129bcbf40652eb9f2f61becf3332 # v4.1.7
with:
path: 'openvino'

#
# 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
# - name: Init submodules for non-Conan dependencies
# run: |
# pushd ${OPENVINO_REPO}
# 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/telemetry
# git submodule update --init -- ${OPENVINO_REPO}/src/plugins/intel_cpu
# git submodule update --init -- ${OPENVINO_REPO}/thirdparty/open_model_zoo
# git submodule update --init -- ${OPENVINO_REPO}/thirdparty/flatbuffers/flatbuffers
# popd

- name: Init XUANTIE
run: |
mkdir ${XUANTIE_DIR}
pushd ${XUANTIE_DIR}
# git clone https://github.com/XUANTIE-RV/xuantie-gnu-toolchain && cd xuantie-gnu-toolchain
apt-get install gawk
apt-get install sudo -y
# sudo apt-get update
sudo apt-get install texinfo
sudo apt-get install dos2unix
sudo apt-get install wget
sudo apt-get install bison flex texinfo gperf libtool patchutils bc zlib1g-dev libexpat-dev
# sudo sed -i s+http://de.archive.ubuntu.com/ubuntu/+http://archive.ubuntu.com/ubuntu/+g /etc/apt/sources.list
# find . -type f -print0 | xargs -0 dos2unix -f
# ./configure --prefix=/opt/riscv
# make linux build-qemu
wget https://occ-oss-prod.oss-cn-hangzhou.aliyuncs.com/resource//1663142514282/Xuantie-900-gcc-linux-5.10.4-glibc-x86_64-V2.6.1-20220906.tar.gz
tar xf Xuantie-900-gcc-linux-5.10.4-glibc-x86_64-V2.6.1-20220906.tar.gz
popd
# #
# # Dependencies
# #

# - name: Install Python dependencies
# run: |
# # create build directory
# mkdir -p ${OPENVINO_BUILD_DIR}

# python3 -m venv ${OPENVINO_BUILD_DIR}/env
# source ${OPENVINO_BUILD_DIR}/env/bin/activate
# python3 -m pip install -r ${OPENVINO_REPO}/src/bindings/python/wheel/requirements-dev.txt
# python3 -m pip install conan

# - name: Create conan_toolchain.cmake file
# run: |
# source ${OPENVINO_BUILD_DIR}/env/bin/activate
# # generate build profile
# conan profile detect
# # patch settings.yml to contain riscv64 architecture
# sed -i 's/sparcv9/riscv64/g' ~/.conan2/settings.yml
# # generate host profile for linux_riscv64
# echo "include(default)" > ${CONAN_LINUX_RISCV64_PROFILE}
# echo "[buildenv]" >> ${CONAN_LINUX_RISCV64_PROFILE}
# echo "CC=riscv64-linux-gnu-gcc" >> ${CONAN_LINUX_RISCV64_PROFILE}
# echo "CXX=riscv64-linux-gnu-g++" >> ${CONAN_LINUX_RISCV64_PROFILE}
# # install OpenVINO dependencies
# conan install ${OPENVINO_REPO}/conanfile.txt \
# -pr:h ${CONAN_LINUX_RISCV64_PROFILE} \
# -s:h arch=riscv64 \
# -s:h build_type=${CMAKE_BUILD_TYPE} \
# -o:h onetbb/*:tbbbind=False \
# -of ${OPENVINO_BUILD_DIR}/dependencies \
# -b missing
# env:
# CONAN_LINUX_RISCV64_PROFILE: ${{ env.OPENVINO_BUILD_DIR }}/linux_riscv64

# #
# # Build
# #
# - name: Clean ccache stats
# run: ccache --zero-stats

# - name: CMake - Configure
# run: |
# source ${OPENVINO_BUILD_DIR}/env/bin/activate
# source ${OPENVINO_BUILD_DIR}/dependencies/conanbuild.sh
# cmake \
# -G 'Ninja' \
# -DENABLE_CPPLINT=OFF \
# -DENABLE_INTEL_GPU=ON \
# -DENABLE_PYTHON=ON \
# -DENABLE_WHEEL=ON \
# -DENABLE_TESTS=ON \
# -DENABLE_PYTHON_PACKAGING=ON \
# -DENABLE_SYSTEM_PROTOBUF=ON \
# -DENABLE_SYSTEM_SNAPPY=ON \
# -DENABLE_SYSTEM_PUGIXML=ON \
# -DBUILD_SHARED_LIBS=OFF \
# -DCMAKE_CXX_FLAGS="-Wno-deprecated-declarations" \
# -DCMAKE_C_FLAGS="-Wno-deprecated-declarations" \
# -DCMAKE_VERBOSE_MAKEFILE=ON \
# -DCMAKE_COMPILE_WARNING_AS_ERROR=OFF \
# -DCMAKE_TOOLCHAIN_FILE=${OPENVINO_BUILD_DIR}/dependencies/conan_toolchain.cmake \
# -DCMAKE_CXX_COMPILER_LAUNCHER=ccache \
# -DCMAKE_C_COMPILER_LAUNCHER=ccache \
# -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} \
# -DCMAKE_INSTALL_PREFIX=${INSTALL_DIR} \
# -S ${OPENVINO_REPO} \
# -B ${OPENVINO_BUILD_DIR}
# source ${OPENVINO_BUILD_DIR}/dependencies/deactivate_conanbuild.sh

# - name: Cmake - Build
# run: cmake --build ${OPENVINO_BUILD_DIR} --parallel

# - name: Show ccache stats
# run: ccache --show-stats

# - name: Cmake - Install
# run: cmake --build ${OPENVINO_BUILD_DIR} --parallel --target install

# - name: Build OpenVINO C++ samples
# run: |
# source ${OPENVINO_BUILD_DIR}/dependencies/conanbuild.sh
# ${INSTALL_DIR}/samples/cpp/build_samples.sh
# source ${OPENVINO_BUILD_DIR}/dependencies/deactivate_conanbuild.sh
# env:
# CMAKE_TOOLCHAIN_FILE: ${{ env.OPENVINO_BUILD_DIR }}/dependencies/conan_toolchain.cmake

- name: Clean ccache
run: ccache --cleanup

Overall_Status:
name: ci/gha_overall_status_linux_riscv
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

0 comments on commit f2d9cd9

Please sign in to comment.