THRIFT-5564: add GitHub action for python 2.x and 3.x (#2787)

* update .github workflow to consolidate config

* add lib python

* Update build.yml

update

* rust => rs

* Update build.yml

update

* update

install openssl

remove 3.6

setup daemon

try 3.6

fix lib path

add backports of py

Update build.yml

use sudo

add install-exec-hook

* add ssl test skip
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index 9e16461..1e93113 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -344,12 +344,79 @@
       - name: Run make test_recursive for rust
         run: make -C lib/rs/test_recursive check
 
+  lib-python:
+    needs: compiler
+    runs-on: ubuntu-20.04
+    strategy:
+      matrix:
+        python-version: ["2.x", "3.x"]
+    steps:
+      - uses: actions/checkout@v3
+
+      - name: Install dependencies
+        run: |
+          sudo apt-get update -yq
+          sudo apt-get install -y --no-install-recommends $BUILD_DEPS
+          sudo apt-get install -y --no-install-recommends curl openssl ca-certificates
+
+      - name: Set up Python
+        uses: actions/setup-python@v3
+        with:
+          python-version: ${{ matrix.python-version }}
+
+      - name: Python setup
+        run: |
+          python -m pip install --upgrade pip setuptools wheel flake8 tornado twisted zope.interface
+          python --version
+          pip --version
+
+      - name: Python 2.x backport setup
+        if: matrix.python-version == '2.x'
+        run: |
+          python -m pip install --upgrade ipaddress backports.ssl_match_hostname
+
+      - name: Run bootstrap
+        run: ./bootstrap.sh
+
+      - name: Run configure 2.x
+        if: matrix.python-version == '2.x'
+        run: |
+          ./configure $(echo $CONFIG_ARGS_FOR_LIBS | sed 's/without-python/with-python/')
+
+      - name: Run configure 3.x
+        if: matrix.python-version != '2.x'
+        run: |
+          ./configure $(echo $CONFIG_ARGS_FOR_LIBS | sed 's/without-py3/with-py3/')
+
+      - uses: actions/download-artifact@v3
+        with:
+          name: thrift-compiler
+          path: compiler/cpp
+
+      - name: Run thrift-compiler
+        run: |
+          chmod a+x compiler/cpp/thrift
+          compiler/cpp/thrift -version
+
+      - name: Run make for python
+        run: make -C lib/py
+
+      - name: Run make install for python
+        run: sudo make -C lib/py install
+
+      # - name: Run make install-exec-hook for python
+      #   run: sudo make -C lib/py install-exec-hook
+
+      - name: Run make check for python
+        run: make -C lib/py check
+
   cross-test:
     needs:
       - lib-java-kotlin
       - lib-swift
       - lib-rust
       - lib-go
+      - lib-python
     runs-on: ubuntu-20.04
     steps:
       - uses: actions/checkout@v3
@@ -428,3 +495,4 @@
           name: cross-test-log
           path: test/log/
           retention-days: 3
+