Skip to content

Commit 867fca7

Browse files
authored
chore: Run registry tests separately (#6043)
* chore: Run registry tests separately Signed-off-by: tokoko <togurgenidze@gmail.com> * fix: various fixes Signed-off-by: tokoko <togurgenidze@gmail.com> * fix: registry api tests Signed-off-by: tokoko <togurgenidze@gmail.com> --------- Signed-off-by: tokoko <togurgenidze@gmail.com>
1 parent d87283f commit 867fca7

32 files changed

+1891
-294
lines changed
Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
name: pr-registration-integration-tests
2+
3+
on:
4+
pull_request_target:
5+
types:
6+
- opened
7+
- synchronize
8+
- labeled
9+
10+
permissions:
11+
actions: write
12+
pull-requests: read
13+
14+
jobs:
15+
integration-test-registration-local:
16+
if:
17+
((github.event.action == 'labeled' && (github.event.label.name == 'approved' || github.event.label.name == 'lgtm' || github.event.label.name == 'ok-to-test')) ||
18+
(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')))) &&
19+
github.repository == 'feast-dev/feast'
20+
runs-on: ubuntu-latest
21+
steps:
22+
- uses: actions/checkout@v4
23+
with:
24+
ref: refs/pull/${{ github.event.pull_request.number }}/merge
25+
submodules: recursive
26+
persist-credentials: false
27+
- name: Setup pixi
28+
uses: prefix-dev/setup-pixi@v0.8.1
29+
with:
30+
pixi-version: v0.63.1
31+
environments: registration-tests
32+
cache: true
33+
- name: Run registration integration tests (local)
34+
run: make test-python-registration
35+
36+
integration-test-registration-ci:
37+
if:
38+
((github.event.action == 'labeled' && (github.event.label.name == 'approved' || github.event.label.name == 'lgtm' || github.event.label.name == 'ok-to-test')) ||
39+
(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')))) &&
40+
github.repository == 'feast-dev/feast'
41+
runs-on: ubuntu-latest
42+
steps:
43+
- uses: actions/checkout@v4
44+
with:
45+
ref: refs/pull/${{ github.event.pull_request.number }}/merge
46+
submodules: recursive
47+
persist-credentials: false
48+
- name: Authenticate to Google Cloud
49+
uses: 'google-github-actions/auth@v1'
50+
with:
51+
credentials_json: '${{ secrets.GCP_SA_KEY }}'
52+
- name: Set up gcloud SDK
53+
uses: google-github-actions/setup-gcloud@v1
54+
with:
55+
project_id: ${{ secrets.GCP_PROJECT_ID }}
56+
- name: Set up AWS SDK
57+
uses: aws-actions/configure-aws-credentials@v1
58+
with:
59+
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
60+
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
61+
aws-region: us-west-2
62+
- name: Cache Hadoop tarball
63+
uses: actions/cache@v4
64+
with:
65+
path: ~/hadoop-3.4.2.tar.gz
66+
key: hadoop-3.4.2
67+
- name: Install Hadoop dependencies
68+
run: make install-hadoop-dependencies-ci
69+
- name: Setup pixi
70+
uses: prefix-dev/setup-pixi@v0.8.1
71+
with:
72+
pixi-version: v0.63.1
73+
environments: registration-tests
74+
cache: true
75+
- name: Run registration integration tests (CI)
76+
run: make test-python-registration-ci

.github/workflows/registry-rest-api-tests.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -145,7 +145,7 @@ jobs:
145145
- name: Setup and Run Registry Rest API tests
146146
run: |
147147
echo "Running Registry REST API tests..."
148-
uv run pytest sdk/python/tests/integration/registration/rest_api/test_registry_rest_api.py --integration -s
148+
uv run pytest -c sdk/python/pytest.ini sdk/python/tests/integration/rest_api/test_registry_rest_api.py --integration -s
149149
150150
- name: Clean up docker images
151151
if: always()

.secrets.baseline

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1317,14 +1317,14 @@
13171317
"filename": "sdk/python/tests/integration/feature_repos/repo_configuration.py",
13181318
"hashed_secret": "d90e76ef629fb00c95f4e84fec29fbda111e2392",
13191319
"is_verified": false,
1320-
"line_number": 461
1320+
"line_number": 455
13211321
},
13221322
{
13231323
"type": "Secret Keyword",
13241324
"filename": "sdk/python/tests/integration/feature_repos/repo_configuration.py",
13251325
"hashed_secret": "5baa61e4c9b93f3f0682250b6cf8331b7ee68fd8",
13261326
"is_verified": false,
1327-
"line_number": 463
1327+
"line_number": 457
13281328
}
13291329
],
13301330
"sdk/python/tests/integration/feature_repos/universal/data_sources/file.py": [
@@ -1409,31 +1409,31 @@
14091409
"line_number": 35
14101410
}
14111411
],
1412-
"sdk/python/tests/integration/registration/rest_api/resource/feast_config_rhoai.yaml": [
1412+
"sdk/python/tests/integration/registration/test_universal_registry.py": [
14131413
{
14141414
"type": "Secret Keyword",
1415-
"filename": "sdk/python/tests/integration/registration/rest_api/resource/feast_config_rhoai.yaml",
1416-
"hashed_secret": "3b8d743308b7ce47d6c053b97c16a8e0eeb6356d",
1415+
"filename": "sdk/python/tests/integration/registration/test_universal_registry.py",
1416+
"hashed_secret": "53e9042a36213bf85ef29a4371896aef8ba9196a",
14171417
"is_verified": false,
1418-
"line_number": 8
1418+
"line_number": 126
14191419
}
14201420
],
1421-
"sdk/python/tests/integration/registration/rest_api/resource/postgres.yaml": [
1421+
"sdk/python/tests/integration/rest_api/resource/feast_config_rhoai.yaml": [
14221422
{
14231423
"type": "Secret Keyword",
1424-
"filename": "sdk/python/tests/integration/registration/rest_api/resource/postgres.yaml",
1425-
"hashed_secret": "f37a74d82869756054661d6501b29cdfec0fdb38",
1424+
"filename": "sdk/python/tests/integration/rest_api/resource/feast_config_rhoai.yaml",
1425+
"hashed_secret": "3b8d743308b7ce47d6c053b97c16a8e0eeb6356d",
14261426
"is_verified": false,
1427-
"line_number": 9
1427+
"line_number": 8
14281428
}
14291429
],
1430-
"sdk/python/tests/integration/registration/test_universal_registry.py": [
1430+
"sdk/python/tests/integration/rest_api/resource/postgres.yaml": [
14311431
{
14321432
"type": "Secret Keyword",
1433-
"filename": "sdk/python/tests/integration/registration/test_universal_registry.py",
1434-
"hashed_secret": "53e9042a36213bf85ef29a4371896aef8ba9196a",
1433+
"filename": "sdk/python/tests/integration/rest_api/resource/postgres.yaml",
1434+
"hashed_secret": "f37a74d82869756054661d6501b29cdfec0fdb38",
14351435
"is_verified": false,
1436-
"line_number": 126
1436+
"line_number": 9
14371437
}
14381438
],
14391439
"sdk/python/tests/unit/infra/offline_stores/contrib/postgres_offline_store/test_postgres.py": [
@@ -1539,5 +1539,5 @@
15391539
}
15401540
]
15411541
},
1542-
"generated_at": "2026-03-01T19:07:31Z"
1542+
"generated_at": "2026-03-02T17:53:50Z"
15431543
}

Makefile

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -185,6 +185,7 @@ test-python-integration: ## Run Python integration tests (CI)
185185
uv run python -m pytest --tb=short -v -n 8 --integration --color=yes --durations=10 --timeout=1200 --timeout_method=thread --dist loadgroup \
186186
-k "(not snowflake or not test_historical_features_main)" \
187187
-m "not rbac_remote_integration_test" \
188+
--ignore=sdk/python/tests/integration/registration \
188189
--log-cli-level=INFO -s \
189190
sdk/python/tests
190191

@@ -198,13 +199,11 @@ test-python-integration-parallel: ## Run integration tests with enhanced paralle
198199
test-python-integration-local: ## Run Python integration tests (local dev mode)
199200
FEAST_IS_LOCAL_TEST=True \
200201
FEAST_LOCAL_ONLINE_CONTAINER=True \
201-
HADOOP_HOME=$$HOME/hadoop \
202-
CLASSPATH="$$( $$HADOOP_HOME/bin/hadoop classpath --glob ):$$CLASSPATH" \
203-
HADOOP_USER_NAME=root \
204202
uv run python -m pytest --tb=short -v -n auto --color=yes --integration --durations=10 --timeout=1200 --timeout_method=thread --dist loadgroup \
205203
-k "not test_lambda_materialization and not test_snowflake_materialization" \
206-
-m "not rbac_remote_integration_test" \
204+
-m "not rbac_remote_integration_test and not ray_offline_stores_only" \
207205
--ignore=sdk/python/tests/integration/compute_engines/ray_compute \
206+
--ignore=sdk/python/tests/integration/registration \
208207
--log-cli-level=INFO -s \
209208
sdk/python/tests
210209

@@ -213,7 +212,7 @@ test-python-integration-rbac-remote: ## Run Python remote RBAC integration tests
213212
FEAST_LOCAL_ONLINE_CONTAINER=True \
214213
uv run python -m pytest --tb=short -v -n 8 --color=yes --integration --durations=10 --timeout=1200 --timeout_method=thread --dist loadgroup \
215214
-k "not test_lambda_materialization and not test_snowflake_materialization" \
216-
-m "rbac_remote_integration_test" \
215+
-m "rbac_remote_integration_test and not ray_offline_stores_only" \
217216
--log-cli-level=INFO -s \
218217
sdk/python/tests
219218

@@ -245,6 +244,15 @@ test-python-integration-dbt: ## Run dbt integration tests
245244
python -m pytest tests/integration/dbt/test_dbt_integration.py -v --tb=short
246245
@echo "✓ dbt integration tests completed successfully!"
247246

247+
test-python-registration: ## Run Python registration integration tests (local)
248+
pixi run -e registration-tests test
249+
250+
test-python-registration-ci: ## Run Python registration integration tests (CI)
251+
HADOOP_HOME=$$HOME/hadoop \
252+
CLASSPATH="$$( $$HADOOP_HOME/bin/hadoop classpath --glob ):$$CLASSPATH" \
253+
HADOOP_USER_NAME=root \
254+
pixi run -e registration-tests test-ci
255+
248256
test-python-universal-duckdb-offline: ## Run Python DuckDB offline store integration tests
249257
pixi run -e duckdb-tests test
250258

0 commit comments

Comments
 (0)