Skip to content

Commit 9db1f56

Browse files
committed
verify python wheel before publish
Signed-off-by: Oleksii Moskalenko <moskalenko.alexey@gmail.com>
1 parent 01d3568 commit 9db1f56

2 files changed

Lines changed: 52 additions & 7 deletions

File tree

.github/workflows/publish.yml

Lines changed: 51 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ on:
44
push:
55
tags:
66
- 'v*.*.*'
7+
workflow_dispatch:
78

89
jobs:
910
get-version:
@@ -140,23 +141,63 @@ jobs:
140141

141142

142143
verify-python-wheel:
143-
runs-on: ubuntu-latest
144+
runs-on: ${{ matrix.os }}
144145
needs: [build-python-sdk, build-python-sdk-macos-py310]
146+
strategy:
147+
matrix:
148+
os: [ ubuntu-latest, macos-10.15 ]
149+
python-version: [ "3.8", "3.9", "3.10"]
150+
from-source: [ True, False ]
145151
steps:
146152
- name: Setup Python
147153
id: setup-python
148154
uses: actions/setup-python@v2
149155
with:
150-
python-version: "3.8"
156+
python-version: ${{ matrix.python-version }}
151157
architecture: x64
152158
- uses: actions/download-artifact@v2
153159
with:
154160
name: wheels
155161
path: dist
156162
- name: Install wheel
157-
run: pip install dist/*38*linux*.whl
163+
if: ${{ !matrix.from-source }}
164+
# try to install all wheels; only the current platform wheel should be actually installed
165+
run: |
166+
cd dist/
167+
for f in *.whl; do pip install $f || true; done
158168
- name: Install sdist
169+
if: ${{ matrix.from-source }}
159170
run: pip install dist/*tar.gz
171+
- name: Install OS X dependencies
172+
if: ${{ matrix.os == "macos-10.15" }}
173+
run: brew install coreutils
174+
- name: Smoke test
175+
env:
176+
# this script is for testing servers
177+
# it starts server with timeout and checks whether process killed by timeout (started healthy) or died by itself
178+
TEST_SCRIPT: |
179+
timeout 10s $@ & pid=$!
180+
wait $pid
181+
ret=$?
182+
if [[ $ret -ne 124 ]]
183+
then
184+
exit $ret
185+
else
186+
echo "Succeeded!"
187+
fi
188+
run: |
189+
feast init test_repo
190+
cd test_repo/
191+
feast apply
192+
echo "$TEST_SCRIPT" > run-and-wait.sh
193+
cat run-and-wait.sh
194+
bash run-and-wait.sh feast serve
195+
bash run-and-wait.sh feast ui
196+
- name: Go lib test
197+
if: ${{ !matrix.from-source }}
198+
run: |
199+
echo "\ngo_feature_retrieval: True" >> feature_store.yaml
200+
bash run-and-wait.sh feast serve
160201
161202
build-python-sdk:
162203
name: Build wheels on ${{ matrix.os }}
@@ -171,24 +212,27 @@ jobs:
171212
with:
172213
node-version: '17.x'
173214
registry-url: 'https://registry.npmjs.org'
215+
- name: Build UI
216+
run: make build-ui
174217
- name: Build wheels
175218
uses: pypa/cibuildwheel@v2.4.0
176219
env:
177220
CIBW_BUILD: "cp3*_x86_64"
178221
CIBW_SKIP: "cp36-* *-musllinux_x86_64 cp310-macosx_x86_64"
179222
CIBW_ARCHS: "native"
180223
CIBW_ENVIRONMENT: >
181-
COMPILE_GO=True
224+
COMPILE_GO=True PATH=$PATH:/usr/local/go/bin
182225
CIBW_BEFORE_ALL_LINUX: |
183-
yum install -y golang
226+
curl -o go.tar.gz https://dl.google.com/go/go1.18.2.linux-amd64.tar.gz
227+
tar -C /usr/local -xzf go.tar.gz
228+
go version
184229
CIBW_BEFORE_ALL_MACOS: |
185230
curl -o python.pkg https://www.python.org/ftp/python/3.9.12/python-3.9.12-macosx10.9.pkg
186231
sudo installer -pkg python.pkg -target /
187232
CIBW_BEFORE_BUILD: |
188233
make install-protoc-dependencies
189234
make install-go-proto-dependencies
190235
make install-go-ci-dependencies
191-
make build-ui
192236
193237
- uses: actions/upload-artifact@v2
194238
with:
@@ -222,6 +266,7 @@ jobs:
222266
make build-ui
223267
- name: Build
224268
run: |
269+
python3 setup.py build_python_protos
225270
python3 setup.py sdist bdist_wheel
226271
227272
- uses: actions/upload-artifact@v2

setup.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -355,11 +355,11 @@ class BuildCommand(build_py):
355355

356356
def run(self):
357357
self.run_command("build_python_protos")
358-
self.run_command("build_ext")
359358
if os.getenv("COMPILE_GO", "false").lower() == "true":
360359
_ensure_go_and_proto_toolchain()
361360
self.run_command("build_go_protos")
362361

362+
self.run_command("build_ext")
363363
build_py.run(self)
364364

365365

0 commit comments

Comments
 (0)