THRIFT-5564: [CI] use GitHub workflow matrix to parallel cross tests (#2801)

* use github to parallel cross tests

* fix syntax

* correct syntax

* split more

* update fail-fast

* fix swift'
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index 911b3b5..c3d98b0 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -418,6 +418,12 @@
       - lib-go
       - lib-python
     runs-on: ubuntu-20.04
+    strategy:
+      matrix:
+        server_lang: ['java', 'kotlin', 'go', 'rs', 'swift']
+        # we always use comma join as many client langs as possible, to reduce the number of jobs
+        client_lang: ['java,kotlin', 'go,rs', 'swift']
+      fail-fast: false
     steps:
       - uses: actions/checkout@v3
 
@@ -480,13 +486,12 @@
       - name: Run cross test
         env:
           THRIFT_CROSSTEST_CONCURRENCY: 4
-          PRECROSS_LANGS: java,kotlin,go,rs,swift
         run: |
           python test/test.py \
             --retry-count 5 \
             --skip-known-failures \
-            --server $PRECROSS_LANGS \
-            --client $PRECROSS_LANGS
+            --server ${{ matrix.server_lang }} \
+            --client ${{ matrix.client_lang }}
 
       - name: Upload log files from failed cross test runs
         uses: actions/upload-artifact@v3
diff --git a/confdefs.h b/confdefs.h
new file mode 100644
index 0000000..9f8d46a
--- /dev/null
+++ b/confdefs.h
@@ -0,0 +1,93 @@
+/* confdefs.h */
+#define PACKAGE_NAME "thrift"
+#define PACKAGE_TARNAME "thrift"
+#define PACKAGE_VERSION "0.19.0"
+#define PACKAGE_STRING "thrift 0.19.0"
+#define PACKAGE_BUGREPORT ""
+#define PACKAGE_URL ""
+#define PACKAGE "thrift"
+#define VERSION "0.19.0"
+#define HAVE_STDIO_H 1
+#define HAVE_STDLIB_H 1
+#define HAVE_STRING_H 1
+#define HAVE_INTTYPES_H 1
+#define HAVE_STDINT_H 1
+#define HAVE_STRINGS_H 1
+#define HAVE_SYS_STAT_H 1
+#define HAVE_SYS_TYPES_H 1
+#define HAVE_UNISTD_H 1
+#define STDC_HEADERS 1
+#define HAVE_DLFCN_H 1
+#define LT_OBJDIR ".libs/"
+#define BISON_VERSION 0.0
+#define BISON_VERSION 3.8.2
+#define AUTOMAKE_VERSION 1.16.5
+#define YYTEXT_POINTER 1
+#define HAVE_CXX11 1
+#define HAVE_ZLIB /**/
+#define HAVE_STDBOOL_H 1
+#define HAVE_SYS_TIME_H 1
+#define HAVE_SYS_SELECT_H 1
+#define HAVE_SYS_SOCKET_H 1
+#define TIME_WITH_SYS_TIME 1
+#define HAVE_SYS_WAIT_H 1
+#define RETSIGTYPE void
+#define HAVE_ARPA_INET_H 1
+#define HAVE_FCNTL_H 1
+#define HAVE_INTTYPES_H 1
+#define HAVE_LIMITS_H 1
+#define HAVE_NETDB_H 1
+#define HAVE_NETINET_IN_H 1
+#define HAVE_POLL_H 1
+#define HAVE_PTHREAD_H 1
+#define HAVE_SCHED_H 1
+#define HAVE_SIGNAL_H 1
+#define HAVE_STDDEF_H 1
+#define HAVE_STDINT_H 1
+#define HAVE_STDLIB_H 1
+#define HAVE_STRINGS_H 1
+#define HAVE_SYS_IOCTL_H 1
+#define HAVE_SYS_PARAM_H 1
+#define HAVE_SYS_POLL_H 1
+#define HAVE_SYS_RESOURCE_H 1
+#define HAVE_SYS_SOCKET_H 1
+#define HAVE_SYS_TIME_H 1
+#define HAVE_SYS_UN_H 1
+#define HAVE_UNISTD_H 1
+#define HAVE_WCHAR_H 1
+#define HAVE_LIBPTHREAD 1
+#define HAVE_PTRDIFF_T 1
+#define HAVE_ALLOCA_H 1
+#define HAVE_ALLOCA 1
+#define HAVE_FORK 1
+#define HAVE_VFORK 1
+#define HAVE_VPRINTF 1
+#define HAVE_WORKING_VFORK 1
+#define HAVE_WORKING_FORK 1
+#define HAVE_MALLOC 1
+#define HAVE_REALLOC 1
+#define SELECT_TYPE_ARG1 int
+#define SELECT_TYPE_ARG234 (fd_set *)
+#define SELECT_TYPE_ARG5 (struct timeval *)
+#define HAVE_DECL_STRERROR_R 1
+#define HAVE_STRERROR_R 1
+#define HAVE_STRFTIME 1
+#define HAVE_STRTOUL 1
+#define HAVE_BZERO 1
+#define HAVE_FTRUNCATE 1
+#define HAVE_GETHOSTBYNAME 1
+#define HAVE_GETTIMEOFDAY 1
+#define HAVE_MEMMOVE 1
+#define HAVE_MEMSET 1
+#define HAVE_MKDIR 1
+#define HAVE_REALPATH 1
+#define HAVE_SELECT 1
+#define HAVE_SETLOCALE 1
+#define HAVE_SOCKET 1
+#define HAVE_STRCHR 1
+#define HAVE_STRDUP 1
+#define HAVE_STRERROR 1
+#define HAVE_STRSTR 1
+#define HAVE_STRTOL 1
+#define HAVE_SQRT 1
+#define HAVE_ALARM 1
diff --git a/conftest.err b/conftest.err
new file mode 100644
index 0000000..7040a2c
--- /dev/null
+++ b/conftest.err
@@ -0,0 +1,7 @@
+conftest.cpp:23:9: warning: 'BISON_VERSION' macro redefined [-Wmacro-redefined]
+#define BISON_VERSION 3.8.2
+        ^
+conftest.cpp:22:9: note: previous definition is here
+#define BISON_VERSION 0.0
+        ^
+1 warning generated.