-
Notifications
You must be signed in to change notification settings - Fork 0
130 lines (114 loc) · 4.49 KB
/
release_win.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
name: WindowsRelease
on:
schedule:
# Run weekly on Monday 00:00
- cron: '00 00 * * MON'
push:
branches: [main, rel-*]
pull_request:
branches: [main, rel-*]
workflow_dispatch:
jobs:
build:
if: github.event_name != 'pull_request' || startsWith( github.base_ref, 'rel-') || contains( github.event.pull_request.labels.*.name, 'run release CIs')
runs-on: windows-latest
strategy:
matrix:
# TODO: Freeze as 3.10.5 for now and use the latest 3.10 after future numpy upgrade in ONNX;
# related issue: https://github.com/actions/setup-python/issues/481
python-version: ['3.7', '3.8', '3.9', '3.10.5', '3.11']
architecture: ['x64', 'x86']
steps:
- name: Checkout ONNX
uses: actions/checkout@v3
with:
path: ./onnx
- name: Checkout ONNX submodules
shell: bash
run: |
cd onnx
auth_header="$(git config --local --get http.https://github.com/.extraheader)"
git submodule sync --recursive
git -c "http.extraheader=$auth_header" -c protocol.version=2 submodule update --init --force --recursive --depth=1
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}
architecture: ${{ matrix.architecture }}
- name: Add msbuild to PATH
uses: microsoft/[email protected]
with:
msbuild-architecture: ${{ matrix.architecture }}
- name: Install Python dependencies
run: |
python -m pip install -q --upgrade pip
cd onnx
python -m pip install -q -r requirements-release.txt
- name: Build ONNX wheel
run: |
$arch = 'x64'
if ('${{ matrix.architecture }}' -eq 'x86') {
$arch = 'Win32'
}
. .\onnx\workflow_scripts\protobuf\build_protobuf_win.ps1 -arch $arch
cd onnx
echo "Install ONNX"
$Env:ONNX_ML=1
$Env:CMAKE_ARGS="-DONNX_USE_PROTOBUF_SHARED_LIBS=OFF -DONNX_USE_LITE_PROTO=ON"
if ('${{ github.event_name }}' -eq 'schedule') {
echo "Build weekly TestPyPI package"
python setup.py bdist_wheel --weekly_build
} else {
python setup.py bdist_wheel
}
Get-ChildItem -Path dist/*.whl | foreach {python -m pip install --upgrade $_.fullname}
- name: Test the installed wheel
run: |
cd onnx
pytest
- uses: actions/upload-artifact@v1
with:
name: wheels
path: ./onnx/dist
- name: Upload wheel to TestPyPI weekly
if: (github.event_name == 'schedule') # Only triggered by weekly event
run: |
twine upload --verbose onnx/dist/*.whl --repository-url https://test.pypi.org/legacy/ -u ${{ secrets.TESTPYPI_USERNAME }} -p ${{ secrets.TESTPYPI_PASSWORD }}
- name: Verify ONNX with the latest numpy
if: ${{ always() }}
run: |
cd onnx
python -m pip uninstall -y numpy onnx && python -m pip install numpy
Get-ChildItem -Path dist/*.whl | foreach {python -m pip install --upgrade $_.fullname}
pytest
# TODO: Remove one if condition after using consistent NumPy version for all Python versions
- name: Verify ONNX with the minimum supported numpy (from requirements.txt)
if: ${{ always() }}
run: |
cd onnx
if ('${{ matrix.python-version }}' -eq '3.11') {
python -m pip uninstall -y numpy onnx && python -m pip install numpy==1.23.2
} else {
python -m pip uninstall -y numpy onnx && python -m pip install numpy==1.16.6
}
Get-ChildItem -Path dist/*.whl | foreach {python -m pip install --upgrade $_.fullname}
pytest
- name: Verify ONNX with the latest protobuf
if: ${{ always() }}
run: |
cd onnx
python -m pip uninstall -y protobuf onnx && python -m pip install protobuf
Get-ChildItem -Path dist/*.whl | foreach {python -m pip install --upgrade $_.fullname}
pytest
- name: Verify ONNX with the minimum supported protobuf (from requirements.txt)
if: ${{ always() }}
run: |
cd onnx
python -m pip uninstall -y protobuf onnx && python -m pip install protobuf==3.20.2
Get-ChildItem -Path dist/*.whl | foreach {python -m pip install --upgrade $_.fullname}
pytest
- name: Verify ONNX with ONNX Runtime PyPI package
if: matrix.python-version != '3.11'
run: |
python -m pip install -q onnxruntime
python onnx\onnx\test\test_with_ort.py