Skip to content

Commit 8b53334

Browse files
authored
Merge pull request #1694 from graphistry/ci/test-silos-downstream-gates
ci: gate downstream test silos explicitly
2 parents 05b3dbe + 80547fa commit 8b53334

1 file changed

Lines changed: 32 additions & 19 deletions

File tree

‎.github/workflows/ci.yml‎

Lines changed: 32 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -81,7 +81,7 @@ jobs:
8181
HEAD_SHA: ${{ github.sha }}
8282
run: |
8383
set -euo pipefail
84-
keys=(infra python spark gfql cypher_frontend_ci benchmarks ai docs core plugins networkx docs_test schema_lane pandas_compat graphviz_lane neo4j_lane build_package dgl_lane networkx_test_only docs_test_only benchmarks_only narrow_python_only)
84+
keys=(infra python spark gfql cypher_frontend_ci benchmarks ai docs core plugins networkx docs_test schema_lane pandas_compat graphviz_lane neo4j_lane build_package dgl_lane networkx_test_only docs_test_only benchmarks_only graphviz_only neo4j_only build_package_only narrow_python_only)
8585
8686
emit_all() {
8787
# $1 = "true" or "false" — emit the same value for every key
@@ -393,8 +393,25 @@ jobs:
393393
'^CHANGELOG\.md$' \
394394
'^benchmarks/'
395395
396+
emit_only graphviz_only \
397+
'^CHANGELOG\.md$' \
398+
'^graphistry/plotter\.py$' \
399+
'^graphistry/tests/.*graphviz.*\.py$' \
400+
'^bin/test-graphviz\.sh$' \
401+
'^requirements/test-graphviz-py.*\.lock$'
402+
403+
emit_only neo4j_only \
404+
'^CHANGELOG\.md$' \
405+
'^docker/.*neo4j' \
406+
'^graphistry/bolt_util\.py$' \
407+
'^graphistry/tests/test_bolt_util\.py$'
408+
409+
emit_only build_package_only \
410+
'^CHANGELOG\.md$' \
411+
'^graphistry/py\.typed$'
412+
396413
narrow_python_only="false"
397-
if [[ "${networkx_test_only}" == "true" || "${docs_test_only}" == "true" || "${benchmarks_only}" == "true" ]]; then
414+
if [[ "${networkx_test_only}" == "true" || "${docs_test_only}" == "true" || "${benchmarks_only}" == "true" || "${graphviz_only}" == "true" || "${neo4j_only}" == "true" || "${build_package_only}" == "true" ]]; then
398415
narrow_python_only="true"
399416
fi
400417
echo "narrow_python_only=${narrow_python_only}" >> "$GITHUB_OUTPUT"
@@ -1026,9 +1043,9 @@ jobs:
10261043
10271044
10281045
test-minimal-python-rest:
1029-
# Middle versions (3.9-3.13) + non-GFQL deferred files, run after sentinel + GFQL core pass.
1030-
needs: [changes, test-minimal-python, test-gfql-core, generate-lockfiles]
1031-
if: ${{ success() }}
1046+
# Middle versions (3.9-3.13) + non-GFQL deferred files.
1047+
needs: [changes, test-minimal-python, generate-lockfiles]
1048+
if: ${{ ((needs.changes.outputs.python == 'true' && needs.changes.outputs.narrow_python_only != 'true') || needs.changes.outputs.core == 'true' || needs.changes.outputs.infra == 'true' || github.event_name == 'workflow_dispatch' || github.event_name == 'schedule') && !(needs.changes.outputs.docs_only_latest == 'true' && (github.event_name == 'push' || github.event_name == 'pull_request')) }}
10321049
runs-on: ubuntu-latest
10331050
timeout-minutes: 15
10341051

@@ -1404,9 +1421,8 @@ jobs:
14041421
14051422
14061423
test-core-python:
1407-
needs: [ test-minimal-python, test-gfql-core, generate-lockfiles ]
1408-
# Inherit condition from test-minimal-python
1409-
if: ${{ success() }}
1424+
needs: [changes, test-minimal-python, generate-lockfiles]
1425+
if: ${{ ((needs.changes.outputs.python == 'true' && needs.changes.outputs.narrow_python_only != 'true') || needs.changes.outputs.core == 'true' || needs.changes.outputs.infra == 'true' || github.event_name == 'workflow_dispatch' || github.event_name == 'schedule') && !(needs.changes.outputs.docs_only_latest == 'true' && (github.event_name == 'push' || github.event_name == 'pull_request')) }}
14101426
runs-on: ubuntu-latest
14111427
timeout-minutes: 8
14121428

@@ -1465,9 +1481,8 @@ jobs:
14651481
retention-days: 14
14661482

14671483
test-graphviz:
1468-
needs: [ test-minimal-python, test-gfql-core, generate-lockfiles ]
1469-
# Inherit condition from test-minimal-python
1470-
if: ${{ success() }}
1484+
needs: [changes, test-minimal-python, generate-lockfiles]
1485+
if: ${{ ((needs.changes.outputs.python == 'true' && needs.changes.outputs.narrow_python_only != 'true') || needs.changes.outputs.graphviz_lane == 'true' || needs.changes.outputs.core == 'true' || needs.changes.outputs.infra == 'true' || github.event_name == 'workflow_dispatch' || github.event_name == 'schedule') && !(needs.changes.outputs.docs_only_latest == 'true' && (github.event_name == 'push' || github.event_name == 'pull_request')) }}
14711486
runs-on: ubuntu-latest
14721487
timeout-minutes: 10 # Accommodate retry logic: 3 attempts × 2min + 1.5min backoff/cleanup
14731488

@@ -1532,8 +1547,8 @@ jobs:
15321547
./bin/test-graphviz.sh
15331548
15341549
test-polars:
1535-
needs: [ test-minimal-python, test-gfql-core, generate-lockfiles ]
1536-
if: ${{ success() }}
1550+
needs: [changes, test-minimal-python, test-gfql-core, generate-lockfiles]
1551+
if: ${{ ((needs.changes.outputs.python == 'true' && needs.changes.outputs.narrow_python_only != 'true') || needs.changes.outputs.gfql == 'true' || needs.changes.outputs.pandas_compat == 'true' || needs.changes.outputs.core == 'true' || needs.changes.outputs.infra == 'true' || github.event_name == 'workflow_dispatch' || github.event_name == 'schedule') && !(needs.changes.outputs.docs_only_latest == 'true' && (github.event_name == 'push' || github.event_name == 'pull_request')) }}
15371552
runs-on: ubuntu-latest
15381553
timeout-minutes: 10
15391554

@@ -1908,9 +1923,8 @@ jobs:
19081923
19091924
19101925
test-neo4j:
1911-
needs: [ test-minimal-python, test-gfql-core ]
1912-
# Inherit condition from test-minimal-python
1913-
if: ${{ success() }}
1926+
needs: [changes, test-minimal-python]
1927+
if: ${{ ((needs.changes.outputs.python == 'true' && needs.changes.outputs.narrow_python_only != 'true') || needs.changes.outputs.neo4j_lane == 'true' || needs.changes.outputs.core == 'true' || needs.changes.outputs.infra == 'true' || github.event_name == 'workflow_dispatch' || github.event_name == 'schedule') && !(needs.changes.outputs.docs_only_latest == 'true' && (github.event_name == 'push' || github.event_name == 'pull_request')) }}
19141928
runs-on: ubuntu-latest
19151929
timeout-minutes: 3
19161930
env:
@@ -1930,9 +1944,8 @@ jobs:
19301944
19311945
19321946
test-build:
1933-
needs: [ test-minimal-python, test-gfql-core, generate-lockfiles ]
1934-
# Inherit condition from test-minimal-python
1935-
if: ${{ success() }}
1947+
needs: [changes, test-minimal-python, generate-lockfiles]
1948+
if: ${{ ((needs.changes.outputs.python == 'true' && needs.changes.outputs.narrow_python_only != 'true') || needs.changes.outputs.build_package == 'true' || needs.changes.outputs.core == 'true' || needs.changes.outputs.infra == 'true' || github.event_name == 'workflow_dispatch' || github.event_name == 'schedule') && !(needs.changes.outputs.docs_only_latest == 'true' && (github.event_name == 'push' || github.event_name == 'pull_request')) }}
19361949
runs-on: ubuntu-latest
19371950
timeout-minutes: 2
19381951

0 commit comments

Comments
 (0)