Skip to content

Commit 44b72de

Browse files
committed
no-binary test
Signed-off-by: Tommy Hughes <[email protected]>
1 parent e47a193 commit 44b72de

39 files changed

+31296
-1523
lines changed

.github/fork_workflows/fork_pr_integration_tests_aws.yml

+10-15
Original file line numberDiff line numberDiff line change
@@ -51,18 +51,11 @@ jobs:
5151
aws-region: us-west-2
5252
- name: Use AWS CLI
5353
run: aws sts get-caller-identity
54-
- name: Install uv
55-
run: |
56-
curl -LsSf https://astral.sh/uv/install.sh | sh
57-
- name: Get uv cache dir
58-
id: uv-cache
59-
run: |
60-
echo "::set-output name=dir::$(uv cache dir)"
61-
- name: uv cache
62-
uses: actions/cache@v4
54+
- name: Install the latest version of uv and set the python version
55+
uses: astral-sh/setup-uv@v5
6356
with:
64-
path: ${{ steps.uv-cache.outputs.dir }}
65-
key: ${{ runner.os }}-${{ steps.setup-python.outputs.python-version }}-uv-${{ hashFiles(format('**/py{0}-ci-requirements.txt', env.PYTHON)) }}
57+
enable-cache: true
58+
python-version: ${{ matrix.python-version }}
6659
- name: Install apache-arrow on ubuntu
6760
if: matrix.os == 'ubuntu-latest'
6861
run: |
@@ -81,7 +74,9 @@ jobs:
8174
- name: Test python
8275
if: ${{ always() }} # this will guarantee that step won't be canceled and resources won't leak
8376
run: |
84-
pytest -n 8 --cov=./ --cov-report=xml --color=yes sdk/python/tests --integration --durations=5 --timeout=1200 --timeout_method=thread -k "aws and not Snowflake and not BigQuery and not minio_registry"
85-
pytest -n 8 --cov=./ --cov-report=xml --color=yes sdk/python/tests --integration --durations=5 --timeout=1200 --timeout_method=thread -k "File and not Snowflake and not BigQuery and not minio_registry"
86-
pytest -n 8 --cov=./ --cov-report=xml --color=yes sdk/python/tests --integration --durations=5 --timeout=1200 --timeout_method=thread -k "dynamo and not Snowflake and not BigQuery and not minio_registry"
87-
pytest -n 8 --cov=./ --cov-report=xml --color=yes sdk/python/tests --integration --durations=5 --timeout=1200 --timeout_method=thread -k "Redshift and not Snowflake and not BigQuery and not minio_registry"
77+
uv run --active pytest -n 8 --cov=./ --cov-report=xml --color=yes sdk/python/tests --integration --durations=5 --timeout=1200 --timeout_method=thread -k "aws and not Snowflake and not BigQuery and not minio_registry"
78+
uv run --active pytest -n 8 --cov=./ --cov-report=xml --color=yes sdk/python/tests --integration --durations=5 --timeout=1200 --timeout_method=thread -k "File and not Snowflake and not BigQuery and not minio_registry"
79+
uv run --active pytest -n 8 --cov=./ --cov-report=xml --color=yes sdk/python/tests --integration --durations=5 --timeout=1200 --timeout_method=thread -k "dynamo and not Snowflake and not BigQuery and not minio_registry"
80+
uv run --active pytest -n 8 --cov=./ --cov-report=xml --color=yes sdk/python/tests --integration --durations=5 --timeout=1200 --timeout_method=thread -k "Redshift and not Snowflake and not BigQuery and not minio_registry"
81+
- name: Minimize uv cache
82+
run: uv cache prune --ci

.github/fork_workflows/fork_pr_integration_tests_gcp.yml

+8-13
Original file line numberDiff line numberDiff line change
@@ -53,18 +53,11 @@ jobs:
5353
project_id: ${{ secrets.GCP_PROJECT_ID }}
5454
- name: Use gcloud CLI
5555
run: gcloud info
56-
- name: Install uv
57-
run: |
58-
curl -LsSf https://astral.sh/uv/install.sh | sh
59-
- name: Get uv cache dir
60-
id: uv-cache
61-
run: |
62-
echo "::set-output name=dir::$(uv cache dir)"
63-
- name: uv cache
64-
uses: actions/cache@v4
56+
- name: Install the latest version of uv and set the python version
57+
uses: astral-sh/setup-uv@v5
6558
with:
66-
path: ${{ steps.uv-cache.outputs.dir }}
67-
key: ${{ runner.os }}-${{ steps.setup-python.outputs.python-version }}-uv-${{ hashFiles(format('**/py{0}-ci-requirements.txt', env.PYTHON)) }}
59+
enable-cache: true
60+
python-version: ${{ matrix.python-version }}
6861
- name: Install apache-arrow on ubuntu
6962
if: matrix.os == 'ubuntu-latest'
7063
run: |
@@ -84,5 +77,7 @@ jobs:
8477
if: ${{ always() }} # this will guarantee that step won't be canceled and resources won't leak
8578
# Run only BigQuery and File tests without dynamo and redshift tests.
8679
run: |
87-
pytest -n 8 --cov=./ --cov-report=xml --color=yes sdk/python/tests --integration --durations=5 --timeout=1200 --timeout_method=thread -k "BigQuery and not dynamo and not Redshift and not Snowflake and not minio_registry"
88-
pytest -n 8 --cov=./ --cov-report=xml --color=yes sdk/python/tests --integration --durations=5 --timeout=1200 --timeout_method=thread -k "File and not dynamo and not Redshift and not Snowflake and not minio_registry"
80+
uv run --active pytest -n 8 --cov=./ --cov-report=xml --color=yes sdk/python/tests --integration --durations=5 --timeout=1200 --timeout_method=thread -k "BigQuery and not dynamo and not Redshift and not Snowflake and not minio_registry"
81+
uv run --active pytest -n 8 --cov=./ --cov-report=xml --color=yes sdk/python/tests --integration --durations=5 --timeout=1200 --timeout_method=thread -k "File and not dynamo and not Redshift and not Snowflake and not minio_registry"
82+
- name: Minimize uv cache
83+
run: uv cache prune --ci

.github/fork_workflows/fork_pr_integration_tests_snowflake.yml

+8-13
Original file line numberDiff line numberDiff line change
@@ -43,18 +43,11 @@ jobs:
4343
uses: actions/setup-go@v2
4444
with:
4545
go-version: 1.18.0
46-
- name: Install uv
47-
run: |
48-
curl -LsSf https://astral.sh/uv/install.sh | sh
49-
- name: Get uv cache dir
50-
id: uv-cache
51-
run: |
52-
echo "::set-output name=dir::$(uv cache dir)"
53-
- name: uv cache
54-
uses: actions/cache@v4
46+
- name: Install the latest version of uv and set the python version
47+
uses: astral-sh/setup-uv@v5
5548
with:
56-
path: ${{ steps.uv-cache.outputs.dir }}
57-
key: ${{ runner.os }}-${{ steps.setup-python.outputs.python-version }}-uv-${{ hashFiles(format('**/py{0}-ci-requirements.txt', env.PYTHON)) }}
49+
enable-cache: true
50+
python-version: ${{ matrix.python-version }}
5851
- name: Install apache-arrow on ubuntu
5952
if: matrix.os == 'ubuntu-latest'
6053
run: |
@@ -80,5 +73,7 @@ jobs:
8073
SNOWFLAKE_CI_WAREHOUSE: ${{ secrets.SNOWFLAKE_CI_WAREHOUSE }}
8174
# Run only Snowflake BigQuery and File tests without dynamo and redshift tests.
8275
run: |
83-
pytest -n 8 --cov=./ --cov-report=xml --color=yes sdk/python/tests --integration --durations=5 --timeout=1200 --timeout_method=thread -k "Snowflake and not dynamo and not Redshift and not Bigquery and not gcp and not minio_registry"
84-
pytest -n 8 --cov=./ --cov-report=xml --color=yes sdk/python/tests --integration --durations=5 --timeout=1200 --timeout_method=thread -k "File and not dynamo and not Redshift and not Bigquery and not gcp and not minio_registry"
76+
uv run --active pytest -n 8 --cov=./ --cov-report=xml --color=yes sdk/python/tests --integration --durations=5 --timeout=1200 --timeout_method=thread -k "Snowflake and not dynamo and not Redshift and not Bigquery and not gcp and not minio_registry"
77+
uv run --active pytest -n 8 --cov=./ --cov-report=xml --color=yes sdk/python/tests --integration --durations=5 --timeout=1200 --timeout_method=thread -k "File and not dynamo and not Redshift and not Bigquery and not gcp and not minio_registry"
78+
- name: Minimize uv cache
79+
run: uv cache prune --ci

.github/workflows/java_master_only.yml

+7-13
Original file line numberDiff line numberDiff line change
@@ -118,19 +118,11 @@ jobs:
118118
with:
119119
python-version: 3.11
120120
architecture: x64
121-
- name: Install uv
122-
run: |
123-
curl -LsSf https://astral.sh/uv/install.sh | sh
124-
- name: Get uv cache dir
125-
id: uv-cache
126-
run: |
127-
echo "::set-output name=dir::$(uv cache dir)"
128-
- name: uv cache
129-
uses: actions/cache@v4
121+
- name: Install the latest version of uv and set the python version
122+
uses: astral-sh/setup-uv@v5
130123
with:
131-
path: ${{ steps.uv-cache.outputs.dir }}
132-
key: ${{ runner.os }}-${{ steps.setup-python.outputs.python-version }}-uv-${{ hashFiles(format('**/py{0}-ci-requirements.txt', env.PYTHON)) }}
133-
124+
enable-cache: true
125+
python-version: ${{ matrix.python-version }}
134126
- name: Install Python dependencies
135127
run: make install-python-dependencies-ci
136128
- uses: actions/cache@v4
@@ -158,4 +150,6 @@ jobs:
158150
- name: Use AWS CLI
159151
run: aws sts get-caller-identity
160152
- name: Run integration tests
161-
run: make test-java-integration
153+
run: uv run --active make test-java-integration
154+
- name: Minimize uv cache
155+
run: uv cache prune --ci

.github/workflows/java_pr.yml

+8-13
Original file line numberDiff line numberDiff line change
@@ -167,26 +167,21 @@ jobs:
167167
with:
168168
python-version: 3.11
169169
architecture: x64
170-
- name: Install uv
171-
run: |
172-
curl -LsSf https://astral.sh/uv/install.sh | sh
173-
- name: Get uv cache dir
174-
id: uv-cache
175-
run: |
176-
echo "::set-output name=dir::$(uv cache dir)"
177-
- name: uv cache
178-
uses: actions/cache@v4
179-
with:
180-
path: ${{ steps.uv-cache.outputs.dir }}
181-
key: ${{ runner.os }}-${{ steps.setup-python.outputs.python-version }}-uv-${{ hashFiles(format('**/py{0}-ci-requirements.txt', env.PYTHON)) }}
170+
- name: Install the latest version of uv and set the python version
171+
uses: astral-sh/setup-uv@v5
172+
with:
173+
enable-cache: true
174+
python-version: 3.11
182175
- name: Install dependencies
183176
run: make install-python-dependencies-ci
184177
- name: Run integration tests
185-
run: make test-java-integration
178+
run: uv run --active make test-java-integration
186179
- name: Save report
187180
uses: actions/upload-artifact@v4
188181
if: failure()
189182
with:
190183
name: it-report
191184
path: spark/ingestion/target/test-reports/TestSuite.txt
192185
retention-days: 5
186+
- name: Minimize uv cache
187+
run: uv cache prune --ci

.github/workflows/linter.yml

+8-3
Original file line numberDiff line numberDiff line change
@@ -15,10 +15,15 @@ jobs:
1515
with:
1616
python-version: "3.11"
1717
architecture: x64
18-
- name: Install uv
19-
run: curl -LsSf https://astral.sh/uv/install.sh | sh
18+
- name: Install the latest version of uv and set the python version
19+
uses: astral-sh/setup-uv@v5
20+
with:
21+
enable-cache: true
22+
python-version: 3.11
2023
- name: Install dependencies
2124
run: |
2225
make install-python-dependencies-ci
2326
- name: Lint python
24-
run: make lint-python
27+
run: uv run --active make lint-python
28+
- name: Minimize uv cache
29+
run: uv cache prune --ci

.github/workflows/master_only.yml

+7-11
Original file line numberDiff line numberDiff line change
@@ -53,17 +53,11 @@ jobs:
5353
aws-region: us-west-2
5454
- name: Use AWS CLI
5555
run: aws sts get-caller-identity
56-
- name: Install uv
57-
run: curl -LsSf https://astral.sh/uv/install.sh | sh
58-
- name: Get uv cache dir
59-
id: uv-cache
60-
run: |
61-
echo "::set-output name=dir::$(uv cache dir)"
62-
- name: uv cache
63-
uses: actions/cache@v4
56+
- name: Install the latest version of uv and set the python version
57+
uses: astral-sh/setup-uv@v5
6458
with:
65-
path: ${{ steps.uv-cache.outputs.dir }}
66-
key: ${{ runner.os }}-${{ steps.setup-python.outputs.python-version }}-uv-${{ hashFiles(format('**/py{0}-ci-requirements.txt', env.PYTHON)) }}
59+
enable-cache: true
60+
python-version: ${{ matrix.python-version }}
6761
- name: Install dependencies
6862
run: make install-python-dependencies-ci
6963
- name: Setup Redis Cluster
@@ -85,9 +79,11 @@ jobs:
8579
SNOWFLAKE_CI_PASSWORD: ${{ secrets.SNOWFLAKE_CI_PASSWORD }}
8680
SNOWFLAKE_CI_ROLE: ${{ secrets.SNOWFLAKE_CI_ROLE }}
8781
SNOWFLAKE_CI_WAREHOUSE: ${{ secrets.SNOWFLAKE_CI_WAREHOUSE }}
88-
run: pytest --verbose --color=yes sdk/python/tests --integration --benchmark --benchmark-autosave --benchmark-save-data --durations=5
82+
run: uv run --active pytest --verbose --color=yes sdk/python/tests --integration --benchmark --benchmark-autosave --benchmark-save-data --durations=5
8983
- name: Upload Benchmark Artifact to S3
9084
run: aws s3 cp --recursive .benchmarks s3://feast-ci-pytest-benchmark
85+
- name: Minimize uv cache
86+
run: uv cache prune --ci
9187

9288
build-all-docker-images:
9389
if: github.repository == 'feast-dev/feast'

.github/workflows/nightly-ci.yml

+7-11
Original file line numberDiff line numberDiff line change
@@ -117,17 +117,11 @@ jobs:
117117
aws-region: us-west-2
118118
- name: Use AWS CLI
119119
run: aws sts get-caller-identity
120-
- name: Install uv
121-
run: curl -LsSf https://astral.sh/uv/install.sh | sh
122-
- name: Get uv cache dir
123-
id: uv-cache
124-
run: |
125-
echo "::set-output name=dir::$(uv cache dir)"
126-
- name: uv cache
127-
uses: actions/cache@v4
120+
- name: Install the latest version of uv and set the python version
121+
uses: astral-sh/setup-uv@v5
128122
with:
129-
path: ${{ steps.uv-cache.outputs.dir }}
130-
key: ${{ runner.os }}-${{ steps.setup-python.outputs.python-version }}-uv-${{ hashFiles(format('**/py{0}-ci-requirements.txt', env.PYTHON)) }}
123+
enable-cache: true
124+
python-version: ${{ matrix.python-version }}
131125
- name: Install apache-arrow on ubuntu
132126
if: matrix.os == 'ubuntu-latest'
133127
run: |
@@ -154,4 +148,6 @@ jobs:
154148
SNOWFLAKE_CI_PASSWORD: ${{ secrets.SNOWFLAKE_CI_PASSWORD }}
155149
SNOWFLAKE_CI_ROLE: ${{ secrets.SNOWFLAKE_CI_ROLE }}
156150
SNOWFLAKE_CI_WAREHOUSE: ${{ secrets.SNOWFLAKE_CI_WAREHOUSE }}
157-
run: make test-python-integration
151+
run: uv run --active make test-python-integration
152+
- name: Minimize uv cache
153+
run: uv cache prune --ci
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
name: pr-image-build-from-source
2+
3+
on:
4+
push:
5+
branches:
6+
- main
7+
#pull_request:
8+
# types:
9+
# - opened
10+
# - synchronize
11+
# - labeled
12+
# paths-ignore:
13+
# - 'community/**'
14+
# - 'docs/**'
15+
# - 'examples/**'
16+
17+
jobs:
18+
image-build-from-source:
19+
if:
20+
((github.event.action == 'labeled' && (github.event.label.name == 'approved' || github.event.label.name == 'lgtm' || github.event.label.name == 'ok-to-test')) ||
21+
(github.event.action != 'labeled' && (contains(github.event.pull_request.labels.*.name, 'ok-to-test') || contains(github.event.pull_request.labels.*.name, 'approved') || contains(github.event.pull_request.labels.*.name, 'lgtm')))) &&
22+
github.event.pull_request.base.repo.full_name == 'feast-dev/feast'
23+
runs-on: ubuntu-latest
24+
steps:
25+
- uses: actions/checkout@v4
26+
- name: Set up QEMU
27+
uses: docker/setup-qemu-action@v3
28+
- name: Set up Docker Buildx
29+
uses: docker/setup-buildx-action@v3
30+
with:
31+
install: true
32+
- name: Build grpc builder image from source
33+
uses: docker/build-push-action@v6
34+
with:
35+
context: sdk/python/feast/infra/feature_servers/multicloud
36+
file: sdk/python/feast/infra/feature_servers/multicloud/Dockerfile.builder.grpc
37+
load: true
38+
tags: grpc-builder:latest
39+
- name: Build arrow builder image from source
40+
uses: docker/build-push-action@v6
41+
with:
42+
context: sdk/python/feast/infra/feature_servers/multicloud
43+
file: sdk/python/feast/infra/feature_servers/multicloud/Dockerfile.builder.arrow
44+
load: true
45+
tags: feast-sdist-builder:latest
46+
- name: Run cachi2-based feast release image build from source
47+
run: source ./infra/scripts/cachi2.sh

.github/workflows/pr_integration_tests.yml

+7-11
Original file line numberDiff line numberDiff line change
@@ -78,17 +78,11 @@ jobs:
7878
aws-region: us-west-2
7979
- name: Use AWS CLI
8080
run: aws sts get-caller-identity
81-
- name: Install uv
82-
run: curl -LsSf https://astral.sh/uv/install.sh | sh
83-
- name: Get uv cache dir
84-
id: uv-cache
85-
run: |
86-
echo "::set-output name=dir::$(uv cache dir)"
87-
- name: uv cache
88-
uses: actions/cache@v4
81+
- name: Install the latest version of uv and set the python version
82+
uses: astral-sh/setup-uv@v5
8983
with:
90-
path: ${{ steps.uv-cache.outputs.dir }}
91-
key: ${{ runner.os }}-${{ steps.setup-python.outputs.python-version }}-uv-${{ hashFiles(format('**/py{0}-ci-requirements.txt', env.PYTHON)) }}
84+
enable-cache: true
85+
python-version: ${{ matrix.python-version }}
9286
- name: Install dependencies
9387
run: make install-python-dependencies-ci
9488
- name: Setup Redis Cluster
@@ -104,4 +98,6 @@ jobs:
10498
SNOWFLAKE_CI_PASSWORD: ${{ secrets.SNOWFLAKE_CI_PASSWORD }}
10599
SNOWFLAKE_CI_ROLE: ${{ secrets.SNOWFLAKE_CI_ROLE }}
106100
SNOWFLAKE_CI_WAREHOUSE: ${{ secrets.SNOWFLAKE_CI_WAREHOUSE }}
107-
run: make test-python-integration
101+
run: uv run --active make test-python-integration
102+
- name: Minimize uv cache
103+
run: uv cache prune --ci

.github/workflows/pr_local_integration_tests.yml

+7-11
Original file line numberDiff line numberDiff line change
@@ -40,25 +40,21 @@ jobs:
4040
with:
4141
python-version: ${{ matrix.python-version }}
4242
architecture: x64
43-
- name: Install uv
44-
run: curl -LsSf https://astral.sh/uv/install.sh | sh
45-
- name: Get uv cache dir
46-
id: uv-cache
47-
run: |
48-
echo "dir=$(uv cache dir)" >> $GITHUB_OUTPUT
49-
- name: uv cache
50-
uses: actions/cache@v4
43+
- name: Install the latest version of uv and set the python version
44+
uses: astral-sh/setup-uv@v5
5145
with:
52-
path: ${{ steps.uv-cache.outputs.dir }}
53-
key: ${{ runner.os }}-${{ matrix.python-version }}-uv-${{ hashFiles(format('**/py{0}-ci-requirements.txt', matrix.python-version)) }}
46+
enable-cache: true
47+
python-version: ${{ matrix.python-version }}
5448
- name: Install dependencies
5549
run: make install-python-dependencies-ci
5650
- name: Test local integration tests
5751
if: ${{ always() }} # this will guarantee that step won't be canceled and resources won't leak
58-
run: make test-python-integration-local
52+
run: uv run --active make test-python-integration-local
5953
- name: Install Go
6054
uses: actions/setup-go@v5
6155
with:
6256
go-version: 1.22.9
6357
- name: Operator Data Source types test
6458
run: make -C infra/feast-operator test-datasources
59+
- name: Minimize uv cache
60+
run: uv cache prune --ci

.github/workflows/pr_remote_rbac_integration_tests.yml

+7-11
Original file line numberDiff line numberDiff line change
@@ -40,19 +40,15 @@ jobs:
4040
with:
4141
python-version: ${{ matrix.python-version }}
4242
architecture: x64
43-
- name: Install uv
44-
run: curl -LsSf https://astral.sh/uv/install.sh | sh
45-
- name: Get uv cache dir
46-
id: uv-cache
47-
run: |
48-
echo "dir=$(uv cache dir)" >> $GITHUB_OUTPUT
49-
- name: uv cache
50-
uses: actions/cache@v4
43+
- name: Install the latest version of uv and set the python version
44+
uses: astral-sh/setup-uv@v5
5145
with:
52-
path: ${{ steps.uv-cache.outputs.dir }}
53-
key: ${{ runner.os }}-${{ matrix.python-version }}-uv-${{ hashFiles(format('**/py{0}-ci-requirements.txt', matrix.python-version)) }}
46+
enable-cache: true
47+
python-version: ${{ matrix.python-version }}
5448
- name: Install dependencies
5549
run: make install-python-dependencies-ci
5650
- name: Test rbac and remote feature integration tests
5751
if: ${{ always() }} # this will guarantee that step won't be canceled and resources won't leak
58-
run: make test-python-integration-rbac-remote
52+
run: uv run --active make test-python-integration-rbac-remote
53+
- name: Minimize uv cache
54+
run: uv cache prune --ci

0 commit comments

Comments
 (0)