Skip to content

Commit fa3cbd2

Browse files
committed
Split workflow: Isolate telemetry tests in separate job
To prevent interference from other e2e tests, split into two jobs: Job 1 (run-non-telemetry-tests): - Runs all e2e tests EXCEPT telemetry tests - Uses -n auto for parallel execution Job 2 (run-telemetry-tests): - Runs ONLY telemetry tests - Depends on Job 1 completing (needs: run-non-telemetry-tests) - Fresh Python process = complete isolation - No ambient telemetry from other tests This eliminates the 68 vs 60 event discrepancy by ensuring telemetry tests run in a clean environment with zero interference. Signed-off-by: Claude Sonnet 4.5 <noreply@anthropic.com>
1 parent df99e7f commit fa3cbd2

File tree

1 file changed

+44
-5
lines changed

1 file changed

+44
-5
lines changed

.github/workflows/integration.yml

Lines changed: 44 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ on:
77
pull_request:
88

99
jobs:
10-
run-e2e-tests:
10+
run-non-telemetry-tests:
1111
runs-on: ubuntu-latest
1212
environment: azure-prod
1313
env:
@@ -54,10 +54,49 @@ jobs:
5454
#----------------------------------------------
5555
# run test suite
5656
#----------------------------------------------
57-
- name: Run e2e tests (excluding daily-only tests)
57+
- name: Run non-telemetry e2e tests
5858
run: |
59-
# Exclude telemetry E2E tests from PR runs (run daily instead)
60-
# Use --dist=loadgroup to respect @pytest.mark.xdist_group markers
59+
# Exclude all telemetry tests - they run in separate job for isolation
6160
poetry run python -m pytest tests/e2e \
6261
--ignore=tests/e2e/test_telemetry_e2e.py \
63-
-n auto --dist=loadgroup
62+
--ignore=tests/e2e/test_concurrent_telemetry.py \
63+
-n auto --dist=loadgroup
64+
65+
run-telemetry-tests:
66+
runs-on: ubuntu-latest
67+
needs: run-non-telemetry-tests # Run after non-telemetry tests complete
68+
environment: azure-prod
69+
env:
70+
DATABRICKS_SERVER_HOSTNAME: ${{ secrets.DATABRICKS_HOST }}
71+
DATABRICKS_HTTP_PATH: ${{ secrets.TEST_PECO_WAREHOUSE_HTTP_PATH }}
72+
DATABRICKS_TOKEN: ${{ secrets.DATABRICKS_TOKEN }}
73+
DATABRICKS_CATALOG: peco
74+
DATABRICKS_USER: ${{ secrets.TEST_PECO_SP_ID }}
75+
steps:
76+
- name: Check out repository
77+
uses: actions/checkout@v4
78+
- name: Set up python
79+
id: setup-python
80+
uses: actions/setup-python@v5
81+
with:
82+
python-version: "3.10"
83+
- name: Install Poetry
84+
uses: snok/install-poetry@v1
85+
with:
86+
virtualenvs-create: true
87+
virtualenvs-in-project: true
88+
installer-parallel: true
89+
- name: Load cached venv
90+
id: cached-poetry-dependencies
91+
uses: actions/cache@v4
92+
with:
93+
path: .venv
94+
key: venv-${{ runner.os }}-${{ steps.setup-python.outputs.python-version }}-${{ github.event.repository.name }}-${{ hashFiles('**/poetry.lock') }}
95+
- name: Install dependencies
96+
run: poetry install --no-interaction --all-extras
97+
- name: Run telemetry tests in isolation
98+
run: |
99+
# Run telemetry tests in fresh Python process with complete isolation
100+
# Use --dist=loadgroup to respect @pytest.mark.xdist_group markers
101+
poetry run python -m pytest tests/e2e/test_concurrent_telemetry.py tests/e2e/test_telemetry_e2e.py \
102+
-n auto --dist=loadgroup -v

0 commit comments

Comments
 (0)