-
Notifications
You must be signed in to change notification settings - Fork 2.5k
136 lines (119 loc) · 4.4 KB
/
job_tokenizers.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
name: OpenVINO tokenizers extension
on:
workflow_call:
inputs:
runner:
description: 'Machine on which the tests would run'
type: string
required: true
shell:
description: "shell to override the default shell settings in the runner's operating system."
type: string
required: true
container:
description: 'JSON to be converted to the value of the "container" configuration for the job'
type: string
required: false
default: '{"image": null}'
affected-components:
description: 'Components that are affected by changes in the commit defined by the Smart CI Action'
type: string
required: true
env:
PIP_CACHE_PATH: /mount/caches/pip/linux
PYTHON_VERSION: '3.11'
jobs:
Openvino_tokenizers:
name: OpenVINO tokenizers extension
timeout-minutes: 25
defaults:
run:
shell: ${{ inputs.shell }}
runs-on: ${{ inputs.runner }}
container: ${{ fromJSON(inputs.container) }}
env:
INSTALL_DIR: ${{ github.workspace }}/install
OPENVINO_TOKENIZERS_REPO: ${{ github.workspace }}/openvino_tokenizers
EXTENSION_BUILD_DIR: ${{ github.workspace }}/build
steps:
# Needed as ${{ github.workspace }} is not working correctly when using Docker
- name: Setup Variables
run: |
echo "INSTALL_DIR=$GITHUB_WORKSPACE/install" >> "$GITHUB_ENV"
echo "OPENVINO_TOKENIZERS_REPO=$GITHUB_WORKSPACE/openvino_tokenizers" >> "$GITHUB_ENV"
echo "EXTENSION_BUILD_DIR=$GITHUB_WORKSPACE/build" >> "$GITHUB_ENV"
- name: checkout action
uses: actions/checkout@v4
with:
sparse-checkout: |
.github/actions/setup_python
.github/actions/cache
install_build_dependencies.sh
- name: Setup Python ${{ env.PYTHON_VERSION }}
if: ${{ runner.os != 'Linux' }} # We do not need to install Python on Linux as we use Docker with it installed
uses: ./.github/actions/setup_python
with:
version: ${{ env.PYTHON_VERSION }}
pip-cache-path: ${{ runner.os == 'Linux' && env.PIP_CACHE_PATH || '' }}
should-setup-pip-paths: ${{ runner.os == 'Linux' }}
self-hosted-runner: ${{ runner.os == 'Linux' }}
- name: Clone OpenVINO Tokenizers
uses: actions/checkout@v4
with:
repository: 'openvinotoolkit/openvino_tokenizers'
path: ${{ env.OPENVINO_TOKENIZERS_REPO }}
ref: 'releases/2024/2'
- name: Download OpenVINO package
uses: actions/download-artifact@v4
with:
name: openvino_package
path: ${{ env.INSTALL_DIR }}
- name: Extract OpenVINO packages (Linux and macOS)
if: runner.os != 'Windows'
run: |
pushd ${INSTALL_DIR}
tar -xzf openvino_package.tar.gz -C ${INSTALL_DIR}
popd
- name: Extract OpenVINO packages (Windows)
if: runner.os == 'Windows'
run: |
pushd ${{ env.INSTALL_DIR }}
Expand-Archive openvino_package.zip -DestinationPath "${{ env.INSTALL_DIR }}"
popd
#
# Dependencies
#
- name: Install python dependencies
run: |
# wheel packaging
python3 -m pip install -r ${{ env.OPENVINO_TOKENIZERS_REPO }}/requirements-build.txt
#
# Build
#
- name: Build tokenizers wheel (Linux and macOS)
if: runner.os != 'Windows'
run: |
source ${INSTALL_DIR}/setupvars.sh
python -m build --wheel --outdir ${EXTENSION_BUILD_DIR} ${OPENVINO_TOKENIZERS_REPO}
env:
CMAKE_ARGS: '-DBUILD_FAST_TOKENIZERS=OFF'
CMAKE_BUILD_PARALLEL_LEVEL: '4'
CMAKE_GENERATOR: 'Unix Makefiles'
- name: Build tokenizers wheel (Windows)
if: runner.os == 'Windows'
run: |
. "${{ env.INSTALL_DIR }}/setupvars.ps1"
python3 -m build --wheel --outdir ${env:EXTENSION_BUILD_DIR} ${env:OPENVINO_TOKENIZERS_REPO}
env:
CMAKE_ARGS: '-DBUILD_FAST_TOKENIZERS=OFF'
CMAKE_BUILD_PARALLEL_LEVEL: '4'
#
# Upload build artifacts
#
- name: Upload openvino tokenizers wheel
if: ${{ always() }}
uses: actions/upload-artifact@v4
with:
name: openvino_tokenizers_wheel
path: ${{ env.EXTENSION_BUILD_DIR }}/*.whl
if-no-files-found: 'error'