Skip to content

Commit c99d09a

Browse files
greggdonovanfishy
authored andcommitted
THRIFT-5564: Add Python to GitHub Actions cross-test matrix
Add Python (py) to the cross-language test matrix. Python was never included in the GitHub Actions cross-test despite being part of the original migration plan. Changes: - Add precross step to lib-python job (for Python 3.12) - Upload Python precross artifacts (lib, gen-py, test scripts) - Download Python artifacts in cross-test job - Add 'py' to server_lang and client_lang matrix - Install Python test dependencies in cross-test job - Add 582 known failures based on actual CI results - Remove 279 stale py3 entries (never validated in GitHub Actions) Known failure categories added: - cpp-py: 54 SSL failures - go-py: 18 SSL failures - java-py: 72 SSL failures - py-cpp: 162 protocol incompatibilities - py-go: 48 protocol incompatibilities - py-java: 171 protocol incompatibilities - py-kotlin: 5 SSL failures - py-py: 72 SSL failures - py-rs: 40 protocol incompatibilities
1 parent 62ec929 commit c99d09a

File tree

2 files changed

+616
-283
lines changed

2 files changed

+616
-283
lines changed

.github/workflows/build.yml

Lines changed: 33 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -588,6 +588,24 @@ jobs:
588588
- name: Run make check for python code
589589
run: make -C test/py check
590590

591+
- name: Run make precross for python
592+
if: matrix.python-version == '3.12'
593+
run: make -C test/py precross
594+
595+
- name: Upload python precross artifacts
596+
if: matrix.python-version == '3.12'
597+
uses: actions/upload-artifact@v6
598+
with:
599+
name: py-precross
600+
if-no-files-found: error
601+
path: |
602+
lib/py/build/lib.*
603+
test/py/gen-py
604+
test/py/TestClient.py
605+
test/py/TestServer.py
606+
test/py/util.py
607+
retention-days: 3
608+
591609
lib-python-macos:
592610
needs: compiler-macos
593611
strategy:
@@ -804,16 +822,21 @@ jobs:
804822
matrix:
805823
# swift is currently broken and no maintainers around -> see THRIFT-5864
806824
# kotlin cross test are failing -> see THRIFT-5879
807-
server_lang: ['java', 'go', 'rs', 'cpp']
825+
server_lang: ['java', 'go', 'rs', 'cpp', 'py']
808826
# we always use comma join as many client langs as possible, to reduce the number of jobs
809-
client_lang: ['java,kotlin', 'go,rs,cpp']
827+
client_lang: ['java,kotlin', 'go,rs,cpp', 'py']
810828
fail-fast: false
811829
steps:
812830
- uses: actions/checkout@v6
813831

814832
- uses: actions/setup-python@v6
815833
with:
816-
python-version: "3.x"
834+
python-version: "3.12"
835+
836+
- name: Install Python test dependencies
837+
run: |
838+
python -m pip install --upgrade pip setuptools
839+
python -m pip install "tornado>=6.3.0" "twisted>=24.3.0" "zope.interface>=6.1"
817840
818841
- uses: actions/setup-java@v5
819842
with:
@@ -868,6 +891,12 @@ jobs:
868891
name: cpp-precross
869892
path: .
870893

894+
- name: Download python precross artifacts
895+
uses: actions/download-artifact@v7
896+
with:
897+
name: py-precross
898+
path: .
899+
871900
- name: Set back executable flags
872901
run: |
873902
chmod a+x lib/java/build/run*
@@ -879,6 +908,7 @@ jobs:
879908
chmod a+x test/cpp/*
880909
chmod a+x test/cpp/.libs/*
881910
chmod a+x lib/cpp/.libs/*.so
911+
chmod a+x test/py/*.py
882912
883913
- name: Create tmp domain socket folder
884914
run: mkdir /tmp/v0.16

0 commit comments

Comments
 (0)