Added possibility to generate base text on GPU for text evaluation. #8490
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: Windows (VS 2022, Python 3.11) | |
on: | |
workflow_dispatch: | |
pull_request: | |
merge_group: | |
push: | |
branches: | |
- master | |
- 'releases/**' | |
permissions: read-all # Required by https://github.com/ossf/scorecard/blob/e23b8ad91fd6a64a0a971ca4fc0a4d1650725615/docs/checks.md#token-permissions | |
concurrency: | |
# github.ref is not unique in post-commit | |
group: ${{ github.event_name == 'push' && github.run_id || github.ref }}-windows | |
cancel-in-progress: true | |
env: | |
PYTHON_VERSION: '3.11' | |
TARGET_BRANCH: 'master' | |
PYTHONIOENCODING: "utf8" | |
CMAKE_CXX_COMPILER_LAUNCHER: ccache | |
CMAKE_C_COMPILER_LAUNCHER: ccache | |
CCACHE_MAXSIZE: 500Mi | |
jobs: | |
openvino_download: | |
name: Download prebuilt OpenVINO | |
outputs: | |
status: ${{ steps.openvino_download.outcome }} | |
ov_artifact_name: ${{ steps.openvino_download.outputs.ov_artifact_name }} | |
ov_wheel_source: ${{ steps.openvino_download.outputs.ov_wheel_source }} | |
ov_version: ${{ steps.openvino_download.outputs.ov_version }} | |
timeout-minutes: 10 | |
defaults: | |
run: | |
shell: bash | |
runs-on: aks-linux-2-cores-8gb | |
container: | |
image: 'openvinogithubactions.azurecr.io/openvino_provider:0.1.0' | |
volumes: | |
- /mount:/mount | |
- ${{ github.workspace }}:${{ github.workspace }} | |
continue-on-error: true | |
steps: | |
- uses: openvinotoolkit/openvino/.github/actions/openvino_provider@master | |
id: openvino_download | |
with: | |
platform: windows | |
commit_packages_to_provide: wheels,openvino_js_package.zip | |
revision: 'latest_available_commit' | |
genai_build_cpack: | |
name: genai cpack (${{ matrix.build-type }}) | |
strategy: | |
matrix: | |
build-type: [Release, Debug] | |
needs: [ openvino_download ] | |
timeout-minutes: 30 | |
defaults: | |
run: | |
shell: pwsh | |
runs-on: aks-win-8-cores-16gb | |
env: | |
OV_INSTALL_DIR: ${{ github.workspace }}\install\ov | |
GENAI_INSTALL_DIR: ${{ github.workspace }}\install\genai | |
INSTALL_TOOLS_DIR: ${{ github.workspace }}\tools | |
INSTALL_TESTS_DIR: ${{ github.workspace }}\tests | |
SRC_DIR: ${{ github.workspace }}\src\genai | |
BUILD_DIR: ${{ github.workspace }}\build\genai | |
CCACHE_DIR: ${{ github.workspace }}\ccache | |
steps: | |
- name: Clone genai | |
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 | |
with: | |
submodules: recursive | |
path: ${{ env.SRC_DIR }} | |
- name: Setup Python ${{ env.PYTHON_VERSION }} | |
uses: actions/setup-python@42375524e23c412d93fb67b49958b491fce71c38 # v5.4.0 | |
with: | |
python-version: ${{ env.PYTHON_VERSION }} | |
- name: Download OpenVINO package | |
uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8 | |
with: | |
name: ${{ needs.openvino_download.outputs.ov_artifact_name }} | |
path: ${{ env.OV_INSTALL_DIR }} | |
merge-multiple: true | |
# | |
# Build | |
# | |
- name: Install build dependencies | |
run: | | |
Invoke-WebRequest https://github.com/ninja-build/ninja/releases/download/v1.11.1/ninja-win.zip -OutFile ninja-win.zip -MaximumRetryCount 10 | |
Expand-Archive -Force ninja-win.zip | |
# Add it to the GitHub Path so it would be available in the subsequent steps | |
Add-Content -Path $env:GITHUB_PATH -Value "${{ github.workspace }}/ninja-win" | |
- name: Download and install ccache | |
run: | | |
Invoke-WebRequest -Uri 'https://github.com/ccache/ccache/releases/download/v4.9.1/ccache-4.9.1-windows-x86_64.zip' -OutFile 'ccache.zip' | |
Expand-Archive -Path 'ccache.zip' -DestinationPath 'C:\temp\ccache' | |
Move-Item -Path 'C:\temp\ccache\*' -Destination 'C:\ccache' | |
Add-Content -Path $env:GITHUB_PATH -Value "C:\ccache" | |
- name: Setup ccache | |
id: ccache-restore | |
uses: actions/cache/restore@1bd1e32a3bdc45362d1e726936510720a7c30a57 # v4.2.0 | |
with: | |
key: ${{ runner.os }}-${{ runner.arch }}-ccache-${{ env.TARGET_BRANCH }}-${{ matrix.build-type }}-${{ github.sha }} | |
restore-keys: | | |
${{ runner.os }}-${{ runner.arch }}-ccache-${{ env.TARGET_BRANCH }}-${{ matrix.build-type }} | |
path: ${{ env.CCACHE_DIR }} | |
- name: Clean ccache stats | |
run: ccache --zero-stats --show-config | |
- name: Configure Developer Command Prompt for Microsoft Visual C++ | |
uses: ilammy/msvc-dev-cmd@0b201ec74fa43914dc39ae48a89fd1d8cb592756 # v1.13.0 | |
with: | |
toolset: 14.42 # v2022 | |
- name: CMake Build | |
shell: pwsh | |
run: | | |
${{ env.OV_INSTALL_DIR }}/setupvars.ps1 | |
cmake -DCMAKE_BUILD_TYPE=${{ matrix.build-type }} -S ${{ env.SRC_DIR }} -B ${{ env.BUILD_DIR }} | |
cmake --build ${{ env.BUILD_DIR }} --parallel $ENV:NUMBER_OF_PROCESSORS --config ${{ matrix.build-type }} --verbose | |
cmake --install ${{ env.BUILD_DIR }} --config=${{ matrix.build-type }} --prefix=${{ env.GENAI_INSTALL_DIR }} | |
cmake --install ${{ env.BUILD_DIR }} --config=${{ matrix.build-type }} --prefix=${{ env.INSTALL_TOOLS_DIR }} --component tools_bin | |
cmake --install ${{ env.BUILD_DIR }} --config=${{ matrix.build-type }} --prefix=${{ env.INSTALL_TESTS_DIR }} --component tests | |
env: | |
CMAKE_TLS_VERIFY: 0 | |
- name: Show ccache stats | |
run: ccache --show-stats | |
# | |
# Upload build artifacts | |
# | |
- name: Save ccache | |
if: always() && steps.ccache-restore.outputs.cache-hit != 'true' && github.event_name == 'push' | |
uses: actions/cache/save@1bd1e32a3bdc45362d1e726936510720a7c30a57 # v4.2.0 | |
with: | |
key: ${{ steps.ccache-restore.outputs.cache-primary-key }} | |
path: ${{ env.CCACHE_DIR }} | |
- name: Upload cpack package | |
if: ${{ always() }} | |
uses: actions/upload-artifact@65c4c4a1ddee5b72f698fdd19549f0f0fb45cf08 # v4.6.0 | |
with: | |
name: genai_cpack_${{ matrix.build-type }} | |
path: ${{ env.GENAI_INSTALL_DIR }} | |
if-no-files-found: 'error' | |
- name: Upload Tools | |
if: always() | |
uses: actions/upload-artifact@b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882 # v4.4.3 | |
with: | |
name: genai_tools_${{ matrix.build-type }} | |
path: ${{ env.INSTALL_TOOLS_DIR }} | |
if-no-files-found: 'error' | |
- name: Upload Tests | |
if: always() | |
uses: actions/upload-artifact@b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882 # v4.4.3 | |
with: | |
name: genai_tests_${{ matrix.build-type }} | |
path: ${{ env.INSTALL_TESTS_DIR }} | |
if-no-files-found: 'error' | |
genai_build_wheel: | |
name: genai wheel | |
needs: [ openvino_download ] | |
timeout-minutes: 30 | |
defaults: | |
run: | |
shell: pwsh | |
runs-on: aks-win-8-cores-16gb | |
env: | |
OV_INSTALL_DIR: ${{ github.workspace }}\install\ov | |
SRC_DIR: ${{ github.workspace }}\src\genai | |
BUILD_DIR: ${{ github.workspace }}\build\genai | |
INSTALL_DIR: ${{ github.workspace }}\install\genai | |
WHEELS_DIR: ${{ github.workspace }}\install\genai\wheels | |
CCACHE_DIR: ${{ github.workspace }}\\ccache | |
steps: | |
- name: Clone openvino.genai | |
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 | |
with: | |
submodules: recursive | |
path: ${{ env.SRC_DIR }} | |
- name: Setup Python ${{ env.PYTHON_VERSION }} | |
uses: actions/setup-python@42375524e23c412d93fb67b49958b491fce71c38 # v5.4.0 | |
with: | |
python-version: ${{ env.PYTHON_VERSION }} | |
cache: 'pip' | |
- name: Download OpenVINO package | |
uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8 | |
with: | |
name: ${{ needs.openvino_download.outputs.ov_artifact_name }} | |
path: ${{ env.OV_INSTALL_DIR }} | |
merge-multiple: true | |
- name: Download and install ccache | |
run: | | |
Invoke-WebRequest -Uri 'https://github.com/ccache/ccache/releases/download/v4.9.1/ccache-4.9.1-windows-x86_64.zip' -OutFile 'ccache.zip' | |
Expand-Archive -Path 'ccache.zip' -DestinationPath 'C:\temp\ccache' | |
Move-Item -Path 'C:\temp\ccache\*' -Destination 'C:\ccache' | |
Add-Content -Path $env:GITHUB_PATH -Value "C:\ccache" | |
- name: Setup ccache | |
id: ccache-restore | |
uses: actions/cache/restore@1bd1e32a3bdc45362d1e726936510720a7c30a57 # v4.2.0 | |
with: | |
key: ${{ runner.os }}-${{ runner.arch }}-ccache-${{ env.TARGET_BRANCH }}-Release-${{ github.sha }} | |
restore-keys: | | |
${{ runner.os }}-${{ runner.arch }}-ccache-${{ env.TARGET_BRANCH }}-Release | |
path: ${{ env.CCACHE_DIR }} | |
# | |
# Build | |
# | |
- name: Clean ccache stats | |
run: ccache --zero-stats --show-config | |
- name: Configure Developer Command Prompt for Microsoft Visual C++ | |
uses: ilammy/msvc-dev-cmd@0b201ec74fa43914dc39ae48a89fd1d8cb592756 # v1.13.0 | |
with: | |
toolset: 14.42 # v2022 | |
- name: Build Tokenizers Wheel | |
run: | | |
python -m pip wheel -v --no-deps --wheel-dir ${{ env.WHEELS_DIR }} ` | |
${{ needs.openvino_download.outputs.ov_wheel_source }} ` | |
${{ env.SRC_DIR }}/thirdparty/openvino_tokenizers | |
working-directory: ${{ env.OV_INSTALL_DIR }} | |
- name: Build genai wheel | |
run: | | |
python -m pip wheel -v --no-deps --wheel-dir ${{ env.WHEELS_DIR }} ` | |
${{ needs.openvino_download.outputs.ov_wheel_source }} ` | |
${{ env.SRC_DIR }} | |
env: | |
CMAKE_BUILD_DIR: 'D:\a\b' # w/a for long path issue | |
working-directory: ${{ env.OV_INSTALL_DIR }} | |
- name: Build WWB Wheel | |
run: python -m pip wheel -v --no-deps --wheel-dir ${{ env.WHEELS_DIR }} ${{ env.SRC_DIR }}/tools/who_what_benchmark | |
working-directory: ${{ env.OV_INSTALL_DIR }} | |
- name: Show ccache stats | |
run: ccache --show-stats | |
# | |
# Upload build artifacts | |
# | |
- name: Save ccache | |
if: always() && steps.ccache-restore.outputs.cache-hit != 'true' && github.event_name == 'push' | |
uses: actions/cache/save@1bd1e32a3bdc45362d1e726936510720a7c30a57 # v4.2.0 | |
with: | |
key: ${{ steps.ccache-restore.outputs.cache-primary-key }} | |
path: ${{ env.CCACHE_DIR }} | |
- name: Upload wheels | |
if: ${{ always() }} | |
uses: actions/upload-artifact@65c4c4a1ddee5b72f698fdd19549f0f0fb45cf08 # v4.6.0 | |
with: | |
name: genai_wheels | |
path: ${{ env.INSTALL_DIR }} | |
if-no-files-found: 'error' | |
genai_build_samples: | |
name: Build Samples - ${{ matrix.build-type }} | |
strategy: | |
fail-fast: false | |
matrix: | |
build-type: [Release, Debug] | |
needs: [ openvino_download, genai_build_cpack ] | |
timeout-minutes: 10 | |
defaults: | |
run: | |
shell: pwsh | |
runs-on: aks-win-4-cores-8gb | |
env: | |
OV_INSTALL_DIR: ${{ github.workspace }}/install/ov | |
SRC_DIR: ${{ github.workspace }}/src | |
BUILD_DIR: ${{ github.workspace }}/build | |
INSTALL_DIR: ${{ github.workspace }}/install/genai | |
steps: | |
- name: Clone openvino.genai | |
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 | |
with: | |
path: ${{ env.SRC_DIR }} | |
- name: Download Build Artifacts | |
uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8 | |
with: | |
pattern: "{${{ needs.openvino_download.outputs.ov_artifact_name }},genai_cpack_${{ matrix.build-type }}}" | |
path: ${{ env.OV_INSTALL_DIR }} | |
merge-multiple: true | |
- name: Build Samples (Release) | |
if: ${{ 'Release' == matrix.build-type }} | |
run: | | |
& ${{ env.OV_INSTALL_DIR }}/samples/cpp/build_samples.ps1 -i ${{ env.INSTALL_DIR }} | |
& ${{ env.OV_INSTALL_DIR }}/samples/c/build_samples.ps1 -i ${{ env.INSTALL_DIR }} | |
- name: Build Samples (Debug) | |
if: ${{ 'Release' != matrix.build-type }} | |
run: | | |
. "${{ env.OV_INSTALL_DIR }}/setupvars.ps1" | |
cmake -DCMAKE_BUILD_TYPE=${{ matrix.build-type }} -S ${{ env.OV_INSTALL_DIR }}/samples/cpp -B ${{ env.BUILD_DIR }} | |
cmake --build ${{ env.BUILD_DIR }} --config ${{ matrix.build-type }} --parallel $ENV:NUMBER_OF_PROCESSORS | |
cmake --install ${{ env.BUILD_DIR }} --config ${{ matrix.build-type }} --component samples_bin --prefix ${{ env.INSTALL_DIR }} | |
- name: Upload Samples Build Package | |
if: always() | |
uses: actions/upload-artifact@b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882 # v4.4.3 | |
with: | |
name: genai_samples_${{ matrix.build-type }} | |
path: ${{ env.INSTALL_DIR }} | |
if-no-files-found: 'error' | |
genai_build_nodejs: | |
name: Build Node.js bindings | |
needs: [ openvino_download ] | |
timeout-minutes: 90 | |
defaults: | |
run: | |
shell: pwsh | |
runs-on: aks-win-4-cores-8gb | |
env: | |
OV_INSTALL_DIR: ${{ github.workspace }}/ov | |
SRC_DIR: ${{ github.workspace }}/openvino.genai | |
INSTALL_DIR: ${{ github.workspace }}/openvino.genai/src/js/bin | |
BUILD_DIR: ${{ github.workspace }}/build | |
steps: | |
- name: Clone openvino.genai | |
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 | |
with: | |
submodules: recursive | |
path: ${{ env.SRC_DIR }} | |
- name: Download OpenVINO package | |
uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8 | |
with: | |
name: ${{ needs.openvino_download.outputs.ov_artifact_name }} | |
path: ${{ env.OV_INSTALL_DIR }} | |
merge-multiple: true | |
- name: Setup Python ${{ env.PYTHON_VERSION }} | |
uses: actions/setup-python@42375524e23c412d93fb67b49958b491fce71c38 # v5.4.0 | |
with: | |
python-version: ${{ env.PYTHON_VERSION }} | |
cache: 'pip' | |
- name: Build GenAI Node.js bindings | |
run: | | |
. "${{ env.OV_INSTALL_DIR }}/setupvars.ps1" | |
cmake -DCMAKE_BUILD_TYPE=Release ` | |
-DENABLE_JS=ON -DCPACK_GENERATOR=NPM ` | |
-DENABLE_PYTHON=OFF -DENABLE_WHEEL=OFF ` | |
-S ${{ env.SRC_DIR }} -B ${{ env.BUILD_DIR }} | |
cmake --build ${{ env.BUILD_DIR }} --config Release --parallel --verbose | |
cmake --install ${{ env.BUILD_DIR }} --config Release --prefix ${{ env.INSTALL_DIR }} | |
- name: Upload Node.js bindings Build Package | |
if: always() | |
uses: actions/upload-artifact@b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882 # v4.4.3 | |
with: | |
name: genai_nodejs_bindings | |
path: ${{ env.INSTALL_DIR }} | |
if-no-files-found: 'error' | |
genai_tests_wheel: | |
name: Python (${{ matrix.test.name}}) Tests (wheel) | |
needs: [ openvino_download, genai_build_wheel ] | |
timeout-minutes: ${{ matrix.test.timeout }} | |
strategy: | |
fail-fast: false | |
matrix: | |
test: | |
- name: 'Whisper' | |
cmd: 'tests/python_tests/test_whisper_pipeline.py tests/python_tests/test_whisper_pipeline_static.py' | |
timeout: 45 | |
- name: 'Cacheopt E2E' | |
cmd: 'tests/python_tests/test_kv_cache_eviction.py' | |
timeout: 60 | |
- name: 'LLM & VLM' | |
cmd: 'tests/python_tests/test_llm_pipeline.py tests/python_tests/test_llm_pipeline_static.py tests/python_tests/test_vlm_pipeline.py' | |
timeout: 60 | |
- name: 'Tokenizer tests' | |
cmd: 'tests/python_tests/test_tokenizer.py' | |
timeout: 60 | |
- name: 'API tests' | |
cmd: 'tests/python_tests/test_continuous_batching.py tests/python_tests/test_generation_config.py tests/python_tests/test_sampling.py tests/python_tests/test_text_streamer.py' | |
timeout: 60 | |
defaults: | |
run: | |
shell: pwsh | |
runs-on: windows-2022 | |
env: | |
INSTALL_DIR: ${{ github.workspace }}/install | |
SRC_DIR: ${{ github.workspace }}/src | |
BUILD_DIR: ${{ github.workspace }}/build | |
HF_HOME: ${{ github.workspace }}/hf_cache | |
steps: | |
- name: Clone openvino.genai | |
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 | |
with: | |
path: ${{ env.SRC_DIR }} | |
submodules: recursive | |
- name: Download Build Artifacts | |
uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8 | |
with: | |
pattern: "{${{ needs.openvino_download.outputs.ov_artifact_name }},genai_wheels}" | |
path: ${{ env.INSTALL_DIR }} | |
merge-multiple: true | |
- name: Setup Python ${{ env.PYTHON_VERSION }} | |
uses: actions/setup-python@42375524e23c412d93fb67b49958b491fce71c38 # v5.4.0 | |
with: | |
python-version: ${{ env.PYTHON_VERSION }} | |
cache: 'pip' | |
- name: Install OpenVINO wheel | |
run: python -m pip install openvino==${{ needs.openvino_download.outputs.ov_version }} ${{ needs.openvino_download.outputs.ov_wheel_source }} | |
working-directory: ${{ env.INSTALL_DIR }} | |
- name: Install GenAI Wheels | |
uses: ./src/.github/actions/install_wheel | |
with: | |
packages: "openvino_tokenizers[transformers];openvino_genai;whowhatbench" | |
requirements_files: "${{ env.SRC_DIR }}/tests/python_tests/requirements.txt" | |
local_wheel_dir: ${{ env.INSTALL_DIR }}/wheels | |
- name: Tests | |
run: python -m pytest -v ${{ matrix.test.cmd }} | |
working-directory: ${{ env.SRC_DIR }} | |
genai_samples_tests: | |
name: Samples ${{ matrix.test.name }} (${{ matrix.build-type }}) | |
strategy: | |
fail-fast: false | |
matrix: | |
build-type: [Release] | |
test: | |
- name: 'LLM' | |
marker: 'llm' | |
cmd: 'tests/python_tests/samples' | |
runner: 'aks-win-16-cores-32gb' | |
- name: 'Whisper' | |
marker: 'whisper' | |
cmd: 'tests/python_tests/samples' | |
runner: 'aks-win-4-cores-8gb' | |
- name: 'Image generation' | |
marker: 'image_generation' | |
cmd: 'tests/python_tests/samples' | |
runner: 'aks-win-8-cores-16gb' | |
needs: [ openvino_download, genai_build_cpack, genai_build_wheel, genai_build_samples, genai_build_nodejs ] | |
timeout-minutes: 60 | |
defaults: | |
run: | |
shell: pwsh | |
runs-on: ${{ matrix.test.runner }} | |
env: | |
INSTALL_DIR: ${{ github.workspace }}/install | |
SRC_DIR: ${{ github.workspace }}/src | |
BUILD_DIR: ${{ github.workspace }}/build | |
HF_HOME: C:/mount/caches/huggingface | |
OV_CACHE: ${{ github.workspace }}/ov_cache | |
CLEANUP_CACHE: 1 | |
steps: | |
- name: Clone openvino.genai | |
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 | |
with: | |
path: ${{ env.SRC_DIR }} | |
- name: Download Build Artifacts | |
uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8 | |
with: | |
pattern: "{${{ needs.openvino_download.outputs.ov_artifact_name }},genai_cpack_${{ matrix.build-type }},genai_samples_${{ matrix.build-type }},genai_wheels}" | |
path: ${{ env.INSTALL_DIR }} | |
merge-multiple: true | |
- name: Download GenAI JS Bildings Artifacts | |
uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8 | |
with: | |
name: genai_nodejs_bindings | |
path: ${{ env.SRC_DIR }}/src/js/bin | |
merge-multiple: true | |
- name: Setup Python ${{ env.PYTHON_VERSION }} | |
uses: actions/setup-python@42375524e23c412d93fb67b49958b491fce71c38 # v5.4.0 | |
with: | |
python-version: ${{ env.PYTHON_VERSION }} | |
cache: 'pip' | |
- name: Install OpenVINO wheel | |
run: python -m pip install openvino==${{ needs.openvino_download.outputs.ov_version }} ${{ needs.openvino_download.outputs.ov_wheel_source }} | |
working-directory: ${{ env.INSTALL_DIR }} | |
- name: Install GenAI wheels | |
uses: ./src/.github/actions/install_wheel | |
with: | |
packages: "openvino_tokenizers[transformers];openvino_genai[testing]" | |
requirements_files: "${{ env.SRC_DIR }}/samples/requirements.txt" | |
local_wheel_dir: ${{ env.INSTALL_DIR }}/wheels | |
- name: Setup NodeJS | |
uses: actions/setup-node@1d0ff469b7ec7b3cb9d8673fde0c81c44821de2a # v4.2.0 | |
with: | |
node-version: 21 | |
- name: Install GenAI NPM package | |
working-directory: ${{ env.SRC_DIR }}/src/js | |
run: | | |
npm install --verbose | |
Remove-Item -Recurse -Force node_modules/openvino-node/bin | |
Copy-Item -Recurse ${{ env.INSTALL_DIR }}/openvino_js_package node_modules/openvino-node/bin | |
- name: Install NPM dependencies for samples | |
working-directory: ${{ env.SRC_DIR }}/samples/js/text_generation | |
run: | | |
npm install --verbose | |
Remove-Item -Recurse -Force node_modules/openvino-node/bin | |
Copy-Item -Recurse ${{ env.INSTALL_DIR }}/openvino_js_package node_modules/openvino-node/bin | |
- name: Test Samples (Python and C++) | |
run: python -m pytest -vs ${{ env.SRC_DIR }}/${{ matrix.test.cmd }} -m "${{ matrix.test.marker }}" | |
env: | |
PATH: "${{ env.INSTALL_DIR }}/runtime/bin/intel64/${{ matrix.build-type }};${{ env.INSTALL_DIR }}/runtime/3rdparty/tbb/bin;%PATH%" # Required for C++ samples | |
SAMPLES_PY_DIR: "${{ env.INSTALL_DIR }}/samples/python" | |
SAMPLES_JS_DIR: "${{ env.SRC_DIR }}/samples/js" | |
SAMPLES_CPP_DIR: "${{ env.INSTALL_DIR }}/samples_bin" | |
SAMPLES_C_DIR: "${{ env.INSTALL_DIR }}/samples_bin" | |
genai_tools_tests: | |
name: Tools tests (${{ matrix.build-type }}) | |
strategy: | |
fail-fast: false | |
matrix: | |
build-type: [Release] | |
needs: [ openvino_download, genai_build_cpack, genai_build_wheel ] | |
timeout-minutes: 60 | |
defaults: | |
run: | |
shell: pwsh | |
runs-on: aks-win-8-cores-16gb | |
env: | |
INSTALL_DIR: ${{ github.workspace }}/install | |
SRC_DIR: ${{ github.workspace }}/src | |
BUILD_DIR: ${{ github.workspace }}/build | |
HF_HOME: C:/mount/caches/huggingface | |
steps: | |
- name: Clone openvino.genai | |
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 | |
with: | |
path: ${{ env.SRC_DIR }} | |
- name: Download Build Artifacts | |
uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8 | |
with: | |
pattern: "{${{ needs.openvino_download.outputs.ov_artifact_name }},genai_cpack_${{ matrix.build-type }},genai_tools_${{ matrix.build-type }},genai_tests_${{ matrix.build-type }},genai_wheels}" | |
path: ${{ env.INSTALL_DIR }} | |
merge-multiple: true | |
- name: Setup Python ${{ env.PYTHON_VERSION }} | |
uses: actions/setup-python@42375524e23c412d93fb67b49958b491fce71c38 # v5.4.0 | |
with: | |
python-version: ${{ env.PYTHON_VERSION }} | |
cache: 'pip' | |
- name: Install OpenVINO wheel | |
run: python -m pip install openvino==${{ needs.openvino_download.outputs.ov_version }} ${{ needs.openvino_download.outputs.ov_wheel_source }} | |
working-directory: ${{ env.INSTALL_DIR }} | |
- name: Install GenAI wheels | |
uses: ./src/.github/actions/install_wheel | |
with: | |
packages: "openvino_tokenizers[transformers];openvino_genai[testing]" | |
requirements_files: "${{ env.SRC_DIR }}/samples/requirements.txt" | |
local_wheel_dir: ${{ env.INSTALL_DIR }}/wheels | |
- name: gtests | |
run: | | |
. "${{ env.INSTALL_DIR }}/setupvars.ps1" | |
& "${{ env.INSTALL_DIR }}/tests/tests_continuous_batching.exe" | |
- name: Test C++ Tools | |
run: | | |
. "${{ env.INSTALL_DIR }}/setupvars.ps1" | |
python -m pytest -vs ${{ env.SRC_DIR }}/tests/python_tests/samples/test_continuous_batching_tools.py -m "samples" | |
env: | |
SAMPLES_CPP_DIR: "${{ env.INSTALL_DIR }}/samples_bin" | |
genai_nodejs_tests: | |
name: Node.js bindings tests | |
needs: [ openvino_download, genai_build_nodejs ] | |
timeout-minutes: 20 | |
defaults: | |
run: | |
shell: pwsh | |
runs-on: windows-2022 | |
env: | |
SRC_DIR: ${{ github.workspace }}/openvino.genai | |
INSTALL_DIR: ${{ github.workspace }}/install | |
NODE_VERSION: 21 | |
steps: | |
- name: Clone openvino.genai | |
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 | |
with: | |
path: ${{ env.SRC_DIR }} | |
submodules: recursive | |
- name: Download OpenVINO Artifacts | |
uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8 | |
with: | |
name: ${{ needs.openvino_download.outputs.ov_artifact_name }} | |
path: ${{ env.INSTALL_DIR }} | |
merge-multiple: true | |
- name: Download GenAI JS Bildings Artifacts | |
uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8 | |
with: | |
name: genai_nodejs_bindings | |
path: ${{ env.SRC_DIR }}/src/js/bin | |
merge-multiple: true | |
- name: Setup Node ${{ env.NODE_VERSION }} | |
uses: actions/setup-node@1d0ff469b7ec7b3cb9d8673fde0c81c44821de2a # v4.2.0 | |
with: | |
node-version: ${{ env.NODE_VERSION }} | |
# JS pacakges uses the OpenVINO and OpenVINO GenAI libraries from the bin directory. | |
# Here we emulate the installation of the openvino-node package from NPM. The latest | |
# release of the openvino-node package is installed, and we need to update the binaries | |
# in the node_modules/openvino-node/bin directory to work correctly with GenAI | |
- name: Install npm package tests dependencies | |
working-directory: ${{ env.SRC_DIR }}/src/js | |
run: | | |
npm install --verbose | |
Remove-Item -Recurse -Force node_modules/openvino-node/bin | |
Copy-Item -Recurse ${{ env.INSTALL_DIR }}/openvino_js_package node_modules/openvino-node/bin | |
- name: Check lint | |
working-directory: ${{ env.SRC_DIR }}/src/js | |
run: npm run lint | |
- name: Run npm package tests | |
working-directory: ${{ env.SRC_DIR }}/src/js | |
run: npm test | |
- name: Install openvino-genai-node samples dependencies | |
working-directory: ${{ env.SRC_DIR }}/samples/js/text_generation | |
run: | | |
npm install --verbose | |
Remove-Item -Recurse -Force node_modules/openvino-node/bin | |
Copy-Item -Recurse ${{ env.INSTALL_DIR }}/openvino_js_package node_modules/openvino-node/bin | |
- name: Run samples tests | |
working-directory: ${{ env.SRC_DIR }}/samples/js/text_generation | |
run: npm test | |
env: | |
MODEL_PATH: ${{ env.SRC_DIR }}/src/js/tests/models/Llama-3.1-8B-Instruct-FastDraft-150M-int8-ov | |
Overall_Status: | |
name: ci/gha_overall_status_windows | |
needs: [openvino_download, genai_build_cpack, genai_build_wheel, genai_build_samples, genai_tests_wheel, genai_tools_tests, genai_samples_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 |