33
44APACHE_ARROW_VERSION=" 17.0.0"
55SUBSTRAIT_VERSION=" 0.44.0"
6+ IBIS_VERSION=" 9.5.0"
67
78# Get Feast project repository root directory
89PROJECT_ROOT_DIR=$( git rev-parse --show-toplevel)
@@ -16,81 +17,81 @@ mkdir offline_build
1617docker build \
1718 --tag yum-builder \
1819 -f sdk/python/feast/infra/feature_servers/multicloud/offline/Dockerfile.builder.yum \
19- --load sdk/python/feast/infra/feature_servers/multicloud/offline
20+ sdk/python/feast/infra/feature_servers/multicloud/offline
2021
2122git clone --branch apache-arrow-${APACHE_ARROW_VERSION} https://github.com/apache/arrow ${OFFLINE_BUILD_DIR} /arrow
2223${OFFLINE_BUILD_DIR} /arrow/cpp/thirdparty/download_dependencies.sh ${OFFLINE_BUILD_DIR} /arrow/cpp/arrow-thirdparty
2324wget https://github.com/substrait-io/substrait/archive/v${SUBSTRAIT_VERSION} .tar.gz -O ${OFFLINE_BUILD_DIR} /arrow/cpp/arrow-thirdparty/substrait-${SUBSTRAIT_VERSION} .tar.gz
2425
25- alias cachi2=' docker run --rm -ti -v "$PWD:$PWD:z" -w "$PWD" quay.io/konflux-ci/cachi2:f7a61b067f4446e4982d0e3b9545ce4aa0d8284f'
26- cachi2 fetch-deps \
27- --output ${OFFLINE_BUILD_DIR} /cachi2-output \
26+ alias hermeto=' docker run --rm -ti -v "$PWD:$PWD:Z" -w "$PWD" quay.io/konflux-ci/hermeto:0.24.0'
27+ # not needed for downstream build from release
28+ # ##############################
29+ hermeto fetch-deps \
30+ --output ${OFFLINE_BUILD_DIR} /hermeto-yarn-ui-output \
31+ ' {
32+ "type": "yarn",
33+ "path": "ui"
34+ }'
35+ hermeto generate-env -o ${OFFLINE_BUILD_DIR} /hermeto-yarn-ui.env --for-output-dir /tmp/hermeto-yarn-ui-output ${OFFLINE_BUILD_DIR} /hermeto-yarn-ui-output
36+
37+ hermeto fetch-deps \
38+ --output ${OFFLINE_BUILD_DIR} /hermeto-yarn-output \
39+ ' {
40+ "type": "yarn",
41+ "path": "sdk/python/feast/ui"
42+ }'
43+ hermeto generate-env -o ${OFFLINE_BUILD_DIR} /hermeto-yarn.env --for-output-dir /tmp/hermeto-yarn-output ${OFFLINE_BUILD_DIR} /hermeto-yarn-output
44+ # ##############################
45+
46+ hermeto fetch-deps \
47+ --output ${OFFLINE_BUILD_DIR} /hermeto-output \
2848 ' {
2949 "type": "pip",
3050 "path": ".",
3151 "requirements_files": [
3252"sdk/python/feast/infra/feature_servers/multicloud/requirements.txt"
3353],
3454 "requirements_build_files": [
35- "sdk/python/feast/infra/feature_servers/multicloud/offline/pyarrow17-wheel-build-requirements.txt",
36- "sdk/python/feast/infra/feature_servers/multicloud/offline/psycopg3.2.5-wheel-build-requirements.txt",
37- "sdk/python/requirements/py3.11-sdist-requirements.txt",
38- "sdk/python/requirements/py3.11-pandas-requirements.txt",
39- "sdk/python/requirements/py3.11-addtl-sources-requirements.txt"
55+ "sdk/python/requirements/py3.11-minimal-sdist-requirements.txt",
56+ "sdk/python/requirements/py3.11-minimal-sdist-requirements-build.txt"
4057],
4158 "allow_binary": "false"
4259}'
43- cachi2 generate-env ${OFFLINE_BUILD_DIR} /cachi2-output -o ${OFFLINE_BUILD_DIR} /cachi2.env --for-output-dir /tmp/cachi2-output
60+ hermeto generate-env -o ${OFFLINE_BUILD_DIR} /hermeto.env --for-output-dir /tmp/hermeto-output ${OFFLINE_BUILD_DIR} /hermeto-output
61+ hermeto inject-files --for-output-dir /tmp/hermeto-output ${OFFLINE_BUILD_DIR} /hermeto-output
4462
45- # arrow OFFLINE builder - version 17.0.0
63+ # arrow OFFLINE builder
4664rm -f ${OFFLINE_BUILD_DIR} /arrow/.dockerignore
4765docker build \
48- --volume ${OFFLINE_BUILD_DIR} /arrow:/tmp/arrow:Z \
49- --volume ${OFFLINE_BUILD_DIR} /cachi2-output:/tmp/cachi2-output:Z \
50- --volume ${OFFLINE_BUILD_DIR} /cachi2.env:/tmp/cachi2.env:Z \
51- --volume ${PROJECT_ROOT_DIR} /sdk/python/feast/infra/feature_servers/multicloud/offline:/tmp/offline:ro \
5266 --network none \
67+ --volume ${OFFLINE_BUILD_DIR} /arrow:/tmp/arrow:Z \
68+ --volume ${OFFLINE_BUILD_DIR} /hermeto-output:/tmp/hermeto-output:Z \
69+ --volume ${OFFLINE_BUILD_DIR} /hermeto.env:/tmp/hermeto.env:Z \
5370 --tag arrow-builder \
5471 -f sdk/python/feast/infra/feature_servers/multicloud/offline/Dockerfile.builder.arrow \
55- --load offline_build /arrow
72+ ${OFFLINE_BUILD_DIR} /arrow
5673
57- # pip builder
74+ # ibis OFFLINE builder - ibis-framework must build from its own git repo... versioning requirement
75+ git clone -b ${IBIS_VERSION} https://github.com/ibis-project/ibis ${OFFLINE_BUILD_DIR} /ibis
5876docker build \
59- --tag pip-builder \
60- -f sdk/python/feast/infra/feature_servers/multicloud/offline/Dockerfile.builder.pip \
61- --load sdk/python/feast/infra/feature_servers/multicloud/offline
62-
63- # ibis OFFLINE builder
64- docker build \
65- --volume ${OFFLINE_BUILD_DIR} /cachi2-output:/tmp/cachi2-output:Z \
66- --volume ${OFFLINE_BUILD_DIR} /cachi2.env:/tmp/cachi2.env:Z \
6777 --network none \
78+ --volume ${OFFLINE_BUILD_DIR} /hermeto-output:/tmp/hermeto-output:Z \
79+ --volume ${OFFLINE_BUILD_DIR} /hermeto.env:/tmp/hermeto.env:Z \
6880 --tag ibis-builder \
6981 -f sdk/python/feast/infra/feature_servers/multicloud/offline/Dockerfile.builder.ibis \
70- --load sdk/python/feast/infra/feature_servers/multicloud/offline
71-
72- # is this needed? check for reqs logs as feast builds
73- # maturin OFFLINE builder
74- # mkdir -p ${OFFLINE_BUILD_DIR}/cachi2-maturin
75- # git clone --branch v1.8.3 https://github.com/PyO3/maturin ${OFFLINE_BUILD_DIR}/maturin
76- # cachi2 fetch-deps cargo --source ${OFFLINE_BUILD_DIR}/maturin --output ${OFFLINE_BUILD_DIR}/cachi2-maturin
77- # cachi2 inject-files --for-output-dir /tmp/cachi2-maturin ${OFFLINE_BUILD_DIR}/cachi2-maturin
78- # docker build \
79- # --volume ${OFFLINE_BUILD_DIR}/cachi2-maturin:/tmp/cachi2-maturin:Z \
80- # --volume ${OFFLINE_BUILD_DIR}/cachi2-output:/tmp/cachi2-output:Z \
81- # --volume ${OFFLINE_BUILD_DIR}/cachi2.env:/tmp/cachi2.env:Z \
82- # --network none \
83- # --tag maturin-builder \
84- # -f sdk/python/feast/infra/feature_servers/multicloud/offline/Dockerfile.builder.maturin \
85- # --load ${OFFLINE_BUILD_DIR}/maturin
82+ ${OFFLINE_BUILD_DIR}
8683
8784# feast OFFLINE builder
8885docker build \
89- --volume ${OFFLINE_BUILD_DIR} /cachi2-output:/tmp/cachi2-output:Z \
90- --volume ${OFFLINE_BUILD_DIR} /cachi2.env:/tmp/cachi2.env:Z \
9186 --network none \
87+ --volume ${OFFLINE_BUILD_DIR} /hermeto-yarn-ui-output:/tmp/hermeto-yarn-ui-output:Z \
88+ --volume ${OFFLINE_BUILD_DIR} /hermeto-yarn-ui.env:/tmp/hermeto-yarn-ui.env:Z \
89+ --volume ${OFFLINE_BUILD_DIR} /hermeto-yarn-output:/tmp/hermeto-yarn-output:Z \
90+ --volume ${OFFLINE_BUILD_DIR} /hermeto-yarn.env:/tmp/hermeto-yarn.env:Z \
91+ --volume ${OFFLINE_BUILD_DIR} /hermeto-output:/tmp/hermeto-output:Z \
92+ --volume ${OFFLINE_BUILD_DIR} /hermeto.env:/tmp/hermeto.env:Z \
9293 --tag feature-server:sdist-build \
9394 -f sdk/python/feast/infra/feature_servers/multicloud/offline/Dockerfile.sdist \
94- --load sdk/python/feast/infra/feature_servers/multicloud
95+ ${PROJECT_ROOT_DIR}
9596
9697docker run --rm -ti feature-server:sdist-build feast version
0 commit comments