Skip to content

Commit edc23c6

Browse files
authored
[CI] [GHA] Transfer Linux CUDA workflow from Azure to GHA (#909)
* transfer linux workflow * provide ref * install git-lfs * install unzip * correct path for log * upload test results * use gha runner * rm sudo * skip test * rm unused env vars from linux; add win workflow * configure msvc * add build of ov_contrib * use setupvars * use quotes * use ov repo * use cmd * call cmd setupvars * add nvidia job * add generator * do not use dev package * add missing ref * allow downgrades * allow change * add dev package * enable system * use from fork * rm system * use hash * update hash * enable tests * build dev targets, do not build tests * enable tests * use master * rm unused * use actions/cache for ccache * unskip * use actions/cache in nvidia job * return package dir
1 parent 529666f commit edc23c6

File tree

2 files changed

+158
-1
lines changed

2 files changed

+158
-1
lines changed

.github/workflows/linux.yml

+157-1
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@ jobs:
4242
TEST_DATA: /__w/openvino_contrib/openvino_contrib/testdata
4343
INSTALL_DIR: /__w/openvino_contrib/openvino_contrib/openvino_install
4444
BUILD_DIR: /__w/openvino_contrib/openvino_contrib/openvino_build
45+
DEVELOPER_PACKAGE_DIR: /__w/openvino_contrib/openvino_contrib/developer_package_install
4546
CCACHE_DIR: /__w/openvino_contrib/openvino_contrib/ccache
4647
CCACHE_MAXSIZE: "2G"
4748
GRADLE_VER: '7.1.1'
@@ -129,7 +130,10 @@ jobs:
129130
-DENABLE_OV_PYTORCH_FRONTEND=OFF \
130131
-DOPENVINO_EXTRA_MODULES=${OPENVINO_CONTRIB_REPO}/modules \
131132
-DENABLE_PYTHON=ON \
133+
-DCPACK_GENERATOR=TGZ \
132134
-DENABLE_WHEEL=ON \
135+
-DENABLE_TESTS=ON \
136+
-DENABLE_INTEL_NPU=OFF \
133137
-DCMAKE_CXX_COMPILER_LAUNCHER=${{ env.CMAKE_CXX_COMPILER_LAUNCHER }} \
134138
-DCMAKE_C_COMPILER_LAUNCHER=${{ env.CMAKE_C_COMPILER_LAUNCHER }} \
135139
-S ${OPENVINO_REPO} \
@@ -145,7 +149,9 @@ jobs:
145149
run: ccache --show-stats
146150

147151
- name: Cmake install
148-
run: cmake -DCMAKE_INSTALL_PREFIX=${INSTALL_DIR} -P ${BUILD_DIR}/cmake_install.cmake
152+
run: |
153+
cmake -DCMAKE_INSTALL_PREFIX=${INSTALL_DIR} -P ${BUILD_DIR}/cmake_install.cmake
154+
cmake -DCMAKE_INSTALL_PREFIX=${DEVELOPER_PACKAGE_DIR} -DCOMPONENT=developer_package -P ${BUILD_DIR}/cmake_install.cmake
149155
150156
- name: Java tests
151157
working-directory: ${{ env.OPENVINO_CONTRIB_REPO }}/modules/java_api
@@ -168,10 +174,160 @@ jobs:
168174
env:
169175
CUSTOM_OP_LIB: ${{ env.OPENVINO_REPO }}/bin/intel64/${{ env.CMAKE_BUILD_TYPE }}/libuser_ov_extensions.so
170176

177+
- name: Pack Artifacts
178+
run: |
179+
pushd ${INSTALL_DIR}
180+
tar -czvf ${BUILD_DIR}/openvino_package.tar.gz *
181+
popd
182+
183+
pushd ${DEVELOPER_PACKAGE_DIR}
184+
tar -czvf ${BUILD_DIR}/openvino_developer_package.tar.gz *
185+
popd
186+
171187
- name: Upload Test Results
172188
uses: actions/upload-artifact@v4
173189
if: ${{ !cancelled() }}
174190
with:
175191
name: test-results-java
176192
path: ${{ env.OPENVINO_CONTRIB_REPO }}/modules/java_api/build/test-results
177193
if-no-files-found: 'warn'
194+
195+
- name: Upload openvino package
196+
if: ${{ always() }}
197+
uses: actions/upload-artifact@v4
198+
with:
199+
name: openvino_package
200+
path: ${{ env.BUILD_DIR }}/openvino_package.tar.gz
201+
if-no-files-found: 'error'
202+
203+
- name: Upload openvino developer package
204+
if: ${{ always() }}
205+
uses: actions/upload-artifact@v4
206+
with:
207+
name: openvino_developer_package
208+
path: ${{ env.BUILD_DIR }}/openvino_developer_package.tar.gz
209+
if-no-files-found: 'error'
210+
211+
NVIDIA_Plugin:
212+
name: NVIDIA plugin
213+
needs: Build_and_test
214+
timeout-minutes: 40
215+
defaults:
216+
run:
217+
shell: bash
218+
runs-on: ubuntu-20.04-16-cores
219+
container:
220+
image: nvidia/cuda:11.8.0-cudnn8-runtime-ubuntu20.04
221+
env:
222+
CMAKE_BUILD_TYPE: 'Release'
223+
CMAKE_GENERATOR: 'Ninja Multi-Config'
224+
CMAKE_CUDA_COMPILER_LAUNCHER: ccache
225+
CMAKE_CXX_COMPILER_LAUNCHER: ccache
226+
CMAKE_C_COMPILER_LAUNCHER: ccache
227+
INSTALL_DIR: /__w/openvino_contrib/openvino_contrib/install
228+
OPENVINO_DEVELOPER_PACKAGE: /__w/openvino_contrib/openvino_contrib/install/developer_package
229+
OPENVINO_REPO: /__w/openvino_contrib/openvino_contrib/openvino
230+
OPENVINO_CONTRIB_REPO: /__w/openvino_contrib/openvino_contrib/openvino_contrib
231+
NVIDIA_BUILD_DIR: /__w/openvino_contrib/openvino_contrib/nvidia_plugin_build
232+
CCACHE_DIR: /__w/openvino_contrib/openvino_contrib/ccache
233+
CCACHE_MAXSIZE: "2G"
234+
DEBIAN_FRONTEND: 'noninteractive'
235+
236+
steps:
237+
- name: Set apt retries
238+
run: echo 'Acquire::Retries "10";' > /etc/apt/apt.conf.d/80-retries
239+
240+
- name: Fetch install_build_dependencies.sh
241+
uses: actions/checkout@v4
242+
with:
243+
sparse-checkout: |
244+
install_build_dependencies.sh
245+
sparse-checkout-cone-mode: false
246+
repository: 'openvinotoolkit/openvino'
247+
ref: 'master'
248+
path: ${{ env.OPENVINO_REPO }}
249+
250+
- name: Install Prerequisites
251+
run: apt update && apt install -y git ca-certificates
252+
253+
- name: Download OpenVINO package
254+
uses: actions/download-artifact@v4
255+
with:
256+
name: openvino_package
257+
path: ${{ env.INSTALL_DIR }}
258+
259+
- name: Download OpenVINO Developer package
260+
uses: actions/download-artifact@v4
261+
with:
262+
name: openvino_developer_package
263+
path: ${{ env.INSTALL_DIR }}
264+
265+
- name: Extract OpenVINO packages
266+
run: |
267+
pushd ${INSTALL_DIR}
268+
tar -xzf openvino_package.tar.gz -C ${INSTALL_DIR}
269+
popd
270+
271+
pushd ${INSTALL_DIR}
272+
tar -xzf openvino_developer_package.tar.gz -C ${INSTALL_DIR}
273+
popd
274+
275+
- name: Clone OpenVINO Contrib
276+
uses: actions/checkout@v4
277+
with:
278+
path: ${{ env.OPENVINO_CONTRIB_REPO }}
279+
280+
#
281+
# Dependencies
282+
#
283+
284+
- name: Install build dependencies
285+
run: |
286+
${OPENVINO_REPO}/install_build_dependencies.sh
287+
apt -y --no-install-recommends install software-properties-common curl
288+
289+
- name: Setup ccache
290+
uses: actions/cache@v4
291+
with:
292+
# Should save cache only if run in the master branch of the base repo
293+
# github.ref_name is 'ref/PR_#' in case of the PR, and 'branch_name' when executed on push
294+
save-always: ${{ github.ref_name == 'master' && 'true' || 'false' }}
295+
path: ${{ env.CCACHE_DIR }}
296+
key: ${{ runner.os }}-${{ runner.arch }}-nvidia-ccache-${{ github.sha }}
297+
restore-keys: |
298+
${{ runner.os }}-${{ runner.arch }}-nvidia-ccache
299+
300+
- name: Install CUDA
301+
run: |
302+
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/cuda-ubuntu2004.pin
303+
mv cuda-ubuntu2004.pin /etc/apt/preferences.d/cuda-repository-pin-600
304+
305+
apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/3bf863cc.pub
306+
add-apt-repository "deb https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/ /"
307+
apt update
308+
apt install -y --allow-downgrades --allow-change-held-packages \
309+
libcudnn8=8.9.4.*-1+cuda11.8 \
310+
libcudnn8-dev=8.9.4.*-1+cuda11.8 \
311+
libcudnn8-samples=8.9.4.*-1+cuda11.8 \
312+
cuda-runtime-11-8 \
313+
cuda-11-8 \
314+
libcutensor1=1.6.1.5-1 \
315+
libcutensor-dev=1.6.1.5-1 \
316+
cuda-drivers=520.61.05-1
317+
318+
#
319+
# Build
320+
#
321+
322+
- name: Cmake & Build - NVIDIA Plugin
323+
run: |
324+
source ${INSTALL_DIR}/setupvars.sh
325+
cmake \
326+
-DOpenVINODeveloperPackage_DIR=${OPENVINO_DEVELOPER_PACKAGE}/cmake \
327+
-DCMAKE_COMPILE_WARNING_AS_ERROR=OFF \
328+
-S ${OPENVINO_CONTRIB_REPO}/modules/nvidia_plugin \
329+
-B ${NVIDIA_BUILD_DIR}
330+
cmake --build ${NVIDIA_BUILD_DIR} --parallel --config ${{ env.CMAKE_BUILD_TYPE }} --verbose -- ov_nvidia_func_tests ov_nvidia_unit_tests
331+
332+
- name: Show ccache stats
333+
run: ccache --show-stats

.github/workflows/windows.yml

+1
Original file line numberDiff line numberDiff line change
@@ -132,6 +132,7 @@ jobs:
132132
-DENABLE_CPPLINT=OFF `
133133
-DENABLE_SAMPLES=OFF `
134134
-DENABLE_PYTHON=ON `
135+
-DENABLE_INTEL_NPU=OFF `
135136
-DENABLE_JS=OFF `
136137
-DOPENVINO_EXTRA_MODULES=${{ env.OPENVINO_CONTRIB_REPO }}/modules `
137138
-DCMAKE_CXX_COMPILER_LAUNCHER=${{ env.CMAKE_CXX_COMPILER_LAUNCHER }} `

0 commit comments

Comments
 (0)