44 push :
55 tags :
66 - ' v*.*.*'
7+ workflow_dispatch :
78
89jobs :
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
0 commit comments