Added build on RedHat system to build & test RPM packages (#20134)
* Added GHA workflow for RPM packages * Avoid rebuild for RPM / Debian packages * Removed conditional include headers * try only post-build * Beautification * Fixed testdata generation for mulit-config generators
This commit is contained in:
1 parent
86bf038417
commit
95e3096684
17 files changed
+300
-88
No files matched your search
@@ -0,0 +1,224 @@
|
||||
name: Fedora (RHEL), Python 3.9
|
||||
on:
|
||||
workflow_dispatch:
|
||||
pull_request:
|
||||
paths-ignore:
|
||||
- '**/docs/**'
|
||||
- 'docs/**'
|
||||
- '**/**.md'
|
||||
- '**.md'
|
||||
- '**/layer_tests_summary/**'
|
||||
- '**/conformance/**'
|
||||
push:
|
||||
paths-ignore:
|
||||
- '**/docs/**'
|
||||
- 'docs/**'
|
||||
- '**/**.md'
|
||||
- '**.md'
|
||||
- '**/layer_tests_summary/**'
|
||||
- '**/conformance/**'
|
||||
branches:
|
||||
- master
|
||||
- 'releases/**'
|
||||
|
||||
concurrency:
|
||||
# github.ref is not unique in post-commit
|
||||
group: ${{ github.event_name == 'push' && github.run_id || github.ref }}-fedora33
|
||||
cancel-in-progress: true
|
||||
|
||||
jobs:
|
||||
Build:
|
||||
defaults:
|
||||
run:
|
||||
shell: bash
|
||||
runs-on: aks-linux-16-cores
|
||||
container:
|
||||
image: fedora:33
|
||||
volumes:
|
||||
- /mount/caches:/mount/caches
|
||||
env:
|
||||
CMAKE_BUILD_TYPE: 'Release'
|
||||
CMAKE_GENERATOR: 'Ninja'
|
||||
CMAKE_CXX_COMPILER_LAUNCHER: ccache
|
||||
CMAKE_C_COMPILER_LAUNCHER: ccache
|
||||
GITHUB_WORKSPACE: '/__w/openvino/openvino'
|
||||
OPENVINO_REPO: /__w/openvino/openvino/openvino
|
||||
INSTALL_DIR: /__w/openvino/openvino/openvino_install
|
||||
INSTALL_TEST_DIR: /__w/openvino/openvino/tests_install
|
||||
BUILD_DIR: /__w/openvino/openvino/openvino_build
|
||||
CCACHE_DIR: /mount/caches/ccache/fedora33_x86_64_Release
|
||||
CCACHE_TEMPDIR: /__w/openvino/openvino/ccache_temp
|
||||
CCACHE_MAXSIZE: 50G
|
||||
steps:
|
||||
- name: Install git
|
||||
run: yum update -y && yum install -y git
|
||||
|
||||
- name: Clone OpenVINO
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
path: ${{ env.OPENVINO_REPO }}
|
||||
submodules: 'true'
|
||||
|
||||
#
|
||||
# Dependencies
|
||||
#
|
||||
|
||||
- name: Install build dependencies
|
||||
run: bash ${OPENVINO_REPO}/install_build_dependencies.sh
|
||||
|
||||
- name: Install python dependencies
|
||||
run: |
|
||||
python3 -m pip install -U pip
|
||||
# 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_TBB=ON \
|
||||
-DENABLE_SYSTEM_OPENCL=ON \
|
||||
-DENABLE_SYSTEM_PUGIXML=ON \
|
||||
-DENABLE_PYTHON_PACKAGING=ON \
|
||||
-DCPACK_GENERATOR=TGZ \
|
||||
-DCMAKE_COMPILE_WARNING_AS_ERROR=ON \
|
||||
-DCMAKE_BUILD_TYPE=${{ env.CMAKE_BUILD_TYPE }} \
|
||||
-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: Cmake build - OpenVINO
|
||||
run: cmake --build ${BUILD_DIR} --parallel --verbose
|
||||
|
||||
- name: Show ccache stats
|
||||
run: ccache --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=${INSTALL_DIR} -DCOMPONENT=python_wheels -P ${BUILD_DIR}/cmake_install.cmake
|
||||
|
||||
- name: Pack Artifacts
|
||||
run: |
|
||||
pushd ${INSTALL_DIR}
|
||||
tar -czvf ${BUILD_DIR}/openvino_package.tar.gz *
|
||||
popd
|
||||
|
||||
pushd ${INSTALL_TEST_DIR}
|
||||
tar -czvf ${BUILD_DIR}/openvino_tests.tar.gz *
|
||||
popd
|
||||
|
||||
- name: Build RPM packages
|
||||
run: |
|
||||
cmake -DCPACK_GENERATOR=RPM \
|
||||
-DENABLE_TESTS=OFF \
|
||||
${BUILD_DIR}
|
||||
cmake --build ${BUILD_DIR} --parallel --target package --verbose
|
||||
|
||||
#
|
||||
# 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 RPM packages
|
||||
if: ${{ always() }}
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: openvino_rpm_packages
|
||||
path: ${{ env.BUILD_DIR }}/*.rpm
|
||||
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'
|
||||
|
||||
RPM_Packages:
|
||||
needs: Build
|
||||
defaults:
|
||||
run:
|
||||
shell: bash
|
||||
runs-on: ubuntu-20.04
|
||||
container:
|
||||
image: fedora:33
|
||||
env:
|
||||
RPM_PACKAGES_DIR: /__w/openvino/packages/
|
||||
|
||||
steps:
|
||||
- name: Create Directories
|
||||
run: mkdir -p ${RPM_PACKAGES_DIR}
|
||||
|
||||
- name: Download OpenVINO RPM packages
|
||||
uses: actions/download-artifact@v3
|
||||
with:
|
||||
name: openvino_rpm_packages
|
||||
path: ${{ env.RPM_PACKAGES_DIR }}
|
||||
|
||||
- name: Install RPM packages & check conflicts
|
||||
run: |
|
||||
tee > /tmp/openvino-2023.repo << EOF
|
||||
[OpenVINO]
|
||||
name=Intel(R) Distribution of OpenVINO 2023
|
||||
baseurl=https://yum.repos.intel.com/openvino/2023
|
||||
enabled=1
|
||||
gpgcheck=1
|
||||
repo_gpgcheck=1
|
||||
gpgkey=https://yum.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB
|
||||
EOF
|
||||
|
||||
# install previous release version
|
||||
mv /tmp/openvino-2023.repo /etc/yum.repos.d
|
||||
yum install -y openvino
|
||||
|
||||
# install current version
|
||||
yum install --allowerasing -y *.rpm
|
||||
working-directory: ${{ env.RPM_PACKAGES_DIR }}
|
||||
|
||||
- name: Test RPM packages
|
||||
run: |
|
||||
/usr/share/openvino/samples/cpp/build_samples.sh
|
||||
/usr/share/openvino/samples/c/build_samples.sh
|
||||
~/openvino_cpp_samples_build/intel64/Release/hello_query_device
|
||||
python3 /usr/share/openvino/samples/python/hello_query_device/hello_query_device.py
|
||||
python3 -c 'from openvino import Core; Core().get_property("CPU", "AVAILABLE_DEVICES")'
|
||||
python3 -c 'from openvino import Core; Core().get_property("GPU", "AVAILABLE_DEVICES")'
|
||||
python3 -c 'from openvino import Core; Core().get_property("AUTO", "SUPPORTED_METRICS")'
|
||||
python3 -c 'from openvino import Core; Core().get_property("MULTI", "SUPPORTED_METRICS")'
|
||||
python3 -c 'from openvino import Core; Core().get_property("HETERO", "SUPPORTED_METRICS")'
|
||||
python3 -c 'from openvino import Core; Core().get_property("BATCH", "SUPPORTED_METRICS")'
|
||||
python3 -c 'from openvino.frontend import FrontEndManager; assert len(FrontEndManager().get_available_front_ends()) == 6'
|
||||
benchmark_app --help
|
||||
ovc --help
|
||||
@@ -88,12 +88,7 @@ jobs:
|
||||
bash ${OPENVINO_REPO}/install_build_dependencies.sh
|
||||
# default-jdk - Java API
|
||||
# libssl1.1 - 'python3 -m pip' in self-hosted runner
|
||||
# unzip - to download ninja
|
||||
apt install --assume-yes --no-install-recommends default-jdk libssl1.1 unzip
|
||||
|
||||
wget https://github.com/ninja-build/ninja/releases/download/v1.11.1/ninja-linux.zip
|
||||
unzip ninja-linux.zip
|
||||
cp -v ninja /usr/local/bin/
|
||||
apt install --assume-yes --no-install-recommends default-jdk libssl1.1
|
||||
|
||||
- uses: actions/setup-python@v4
|
||||
with:
|
||||
@@ -126,9 +121,6 @@ jobs:
|
||||
# Build
|
||||
#
|
||||
|
||||
- name: Setup ccache dir
|
||||
run: mkdir -p ${CCACHE_DIR}
|
||||
|
||||
- name: CMake configure - OpenVINO
|
||||
run: |
|
||||
cmake \
|
||||
@@ -145,7 +137,6 @@ jobs:
|
||||
-DCMAKE_COMPILE_WARNING_AS_ERROR=ON \
|
||||
-DCMAKE_CXX_COMPILER_LAUNCHER=${{ env.CMAKE_CXX_COMPILER_LAUNCHER }} \
|
||||
-DCMAKE_C_COMPILER_LAUNCHER=${{ env.CMAKE_C_COMPILER_LAUNCHER }} \
|
||||
-DCMAKE_MINIMUM_REQUIRED_VERSION=3.20 \
|
||||
-S ${OPENVINO_REPO} \
|
||||
-B ${BUILD_DIR}
|
||||
|
||||
@@ -180,12 +171,11 @@ jobs:
|
||||
/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* \
|
||||
-DCPACK_GENERATOR=DEB \
|
||||
-DENABLE_PYTHON_PACKAGING=ON \
|
||||
-DPython3_EXECUTABLE=/usr/bin/python3.8 \
|
||||
-DENABLE_TESTS=OFF \
|
||||
-S ${OPENVINO_REPO} \
|
||||
-B ${BUILD_DIR}
|
||||
-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
|
||||
|
||||
Reference in new issue
Block a user