Skip to content

Commit 8f9b232

Browse files
committed
ci: integrate protobuf version matrix into main test jobs
Consolidate protobuf compatibility testing into the main test jobs using matrix include. Older protobuf versions (4.x, 5.x) are only tested with Python 3.9 and 3.14 (edge versions), while all Python versions test with the default protobuf. Matrix per job: - 6 Python versions × default protobuf = 6 jobs - 2 Python versions × 2 older protobuf = 4 jobs - Total: 10 jobs per DGraph version (20 total)
1 parent c380b70 commit 8f9b232

File tree

1 file changed

+32
-83
lines changed

1 file changed

+32
-83
lines changed

.github/workflows/ci-pydgraph-tests.yml

Lines changed: 32 additions & 83 deletions
Original file line numberDiff line numberDiff line change
@@ -17,85 +17,24 @@ permissions:
1717
contents: read
1818
jobs:
1919
test-pydgraph-dgraph-latest:
20-
name: Test (Python ${{ matrix.python-version }} / DGraph Latest)
21-
runs-on: ubuntu-latest
22-
strategy:
23-
matrix:
24-
python-version: ["3.9", "3.10", "3.11", "3.12", "3.13", "3.14"]
25-
steps:
26-
- name: Checkout pydgraph
27-
uses: actions/checkout@v5
28-
with:
29-
repository: dgraph-io/pydgraph
30-
ref: ${{ github.ref }}
31-
- name: Setup python runtime and tooling
32-
uses: ./.github/actions/setup-python-and-tooling
33-
with:
34-
python-version: ${{ matrix.python-version }}
35-
- name: Pin python version
36-
run: uv python pin ${{ matrix.python-version }}
37-
- name: Setup project dependencies
38-
run: INSTALL_MISSING_TOOLS=true make setup
39-
- name: Sync python virtualenv
40-
run: make sync
41-
- name: Run tests
42-
run: make test
43-
test-pydgraph-dgraph-head:
44-
name: Test Pydgraph (Python ${{ matrix.python-version }} / DGraph HEAD)
45-
runs-on: ubuntu-latest
46-
strategy:
47-
matrix:
48-
python-version: ["3.9", "3.10", "3.11", "3.12", "3.13", "3.14"]
49-
steps:
50-
- name: Checkout Dgraph main latest
51-
uses: actions/checkout@v5
52-
with:
53-
path: dgraph
54-
repository: dgraph-io/dgraph
55-
ref: main
56-
- name: Setup Go
57-
uses: actions/setup-go@v6
58-
with:
59-
go-version-file: dgraph/go.mod
60-
- name: Build dgraph binary
61-
working-directory: ./dgraph
62-
run: make docker-image # also builds dgraph binary
63-
- name: Install dgraph binary
64-
working-directory: ./dgraph
65-
run: mv dgraph/dgraph ~/go/bin/dgraph
66-
- name: Checkout pydgraph
67-
uses: actions/checkout@v5
68-
with:
69-
path: pydgraph
70-
repository: dgraph-io/pydgraph
71-
ref: ${{ github.ref }}
72-
- name: Setup python runtime and tooling
73-
uses: ./pydgraph/.github/actions/setup-python-and-tooling
74-
with:
75-
python-version: ${{ matrix.python-version }}
76-
- name: Pin python version
77-
working-directory: ./pydgraph
78-
run: uv python pin ${{ matrix.python-version }}
79-
- name: Setup project dependencies
80-
working-directory: ./pydgraph
81-
run: INSTALL_MISSING_TOOLS=true make setup
82-
- name: Sync python virtualenv
83-
working-directory: ./pydgraph
84-
run: make sync
85-
- name: Run tests
86-
working-directory: ./pydgraph
87-
run: DGRAPH_IMAGE_TAG=local make test
88-
test-pydgraph-protobuf-compat-dgraph-latest:
8920
name:
90-
Test Pydgraph (Python ${{ matrix.python-version }} / ${{ matrix.protobuf-version }} / DGraph
91-
Latest)
21+
Test (Python ${{ matrix.python-version }}${{ matrix.protobuf-version && format(' / {0}',
22+
matrix.protobuf-version) || '' }} / DGraph Latest)
9223
runs-on: ubuntu-latest
9324
strategy:
9425
matrix:
95-
python-version: ["3.9", "3.14"]
96-
protobuf-version:
97-
- protobuf>=4.23.0,<5.0.0
98-
- protobuf>=5.0.0,<6.0.0
26+
python-version: ["3.9", "3.10", "3.11", "3.12", "3.13", "3.14"]
27+
protobuf-version: [""]
28+
include:
29+
# Test older protobuf versions only on edge Python versions
30+
- python-version: "3.9"
31+
protobuf-version: protobuf>=4.23.0,<5.0.0
32+
- python-version: "3.9"
33+
protobuf-version: protobuf>=5.0.0,<6.0.0
34+
- python-version: "3.14"
35+
protobuf-version: protobuf>=4.23.0,<5.0.0
36+
- python-version: "3.14"
37+
protobuf-version: protobuf>=5.0.0,<6.0.0
9938
steps:
10039
- name: Checkout pydgraph
10140
uses: actions/checkout@v5
@@ -113,20 +52,29 @@ jobs:
11352
- name: Sync python virtualenv
11453
run: make sync
11554
- name: Install specific protobuf version
55+
if: matrix.protobuf-version != ''
11656
run: uv pip install "${{ matrix.protobuf-version }}"
11757
- name: Run tests
11858
run: make test
119-
test-pydgraph-protobuf-compat-dgraph-head:
59+
test-pydgraph-dgraph-head:
12060
name:
121-
Test Pydgraph (Python ${{ matrix.python-version }} / ${{ matrix.protobuf-version }} / DGraph
122-
HEAD)
61+
Test Pydgraph (Python ${{ matrix.python-version }}${{ matrix.protobuf-version && format(' /
62+
{0}', matrix.protobuf-version) || '' }} / DGraph HEAD)
12363
runs-on: ubuntu-latest
12464
strategy:
12565
matrix:
126-
python-version: ["3.9", "3.14"]
127-
protobuf-version:
128-
- protobuf>=4.23.0,<5.0.0
129-
- protobuf>=5.0.0,<6.0.0
66+
python-version: ["3.9", "3.10", "3.11", "3.12", "3.13", "3.14"]
67+
protobuf-version: [""]
68+
include:
69+
# Test older protobuf versions only on edge Python versions
70+
- python-version: "3.9"
71+
protobuf-version: protobuf>=4.23.0,<5.0.0
72+
- python-version: "3.9"
73+
protobuf-version: protobuf>=5.0.0,<6.0.0
74+
- python-version: "3.14"
75+
protobuf-version: protobuf>=4.23.0,<5.0.0
76+
- python-version: "3.14"
77+
protobuf-version: protobuf>=5.0.0,<6.0.0
13078
steps:
13179
- name: Checkout Dgraph main latest
13280
uses: actions/checkout@v5
@@ -140,7 +88,7 @@ jobs:
14088
go-version-file: dgraph/go.mod
14189
- name: Build dgraph binary
14290
working-directory: ./dgraph
143-
run: make docker-image
91+
run: make docker-image # also builds dgraph binary
14492
- name: Install dgraph binary
14593
working-directory: ./dgraph
14694
run: mv dgraph/dgraph ~/go/bin/dgraph
@@ -164,6 +112,7 @@ jobs:
164112
working-directory: ./pydgraph
165113
run: make sync
166114
- name: Install specific protobuf version
115+
if: matrix.protobuf-version != ''
167116
working-directory: ./pydgraph
168117
run: uv pip install "${{ matrix.protobuf-version }}"
169118
- name: Run tests

0 commit comments

Comments
 (0)