summaryrefslogtreecommitdiff
path: root/.github
diff options
context:
space:
mode:
authorJiayu Liu <Jimexist@users.noreply.github.com>2022-05-10 01:56:30 +0800
committerGitHub <noreply@github.com>2022-05-09 13:56:30 -0400
commitab83ffc894c00f0a8feade2f54cb444c22e16461 (patch)
tree715e73c16b47dbab617ec1056dc9fb7c7809d17f /.github
parent5fdfd0cae0abaa89a26fa0015d31b6d369b32777 (diff)
downloadthrift-ab83ffc894c00f0a8feade2f54cb444c22e16461.tar.gz
THRIFT-5564: setup cross test in GitHub action (#2602)
* include java and kotlin into precross
Diffstat (limited to '.github')
-rw-r--r--.github/workflows/build.yml97
1 files changed, 95 insertions, 2 deletions
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index cc2d1c90f..d1afc3383 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -7,7 +7,7 @@ on:
branches: ["*"]
env:
- BUILD_DEPS: automake bison flex g++ git libboost-all-dev libevent-dev libssl-dev libtool make pkg-config
+ BUILD_DEPS: automake bison flex git libboost-all-dev libevent-dev libssl-dev libtool make pkg-config
jobs:
# TODO windows and macos
@@ -22,7 +22,7 @@ jobs:
- 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 g++ $BUILD_DEPS
- name: Run bootstrap
run: ./bootstrap.sh
@@ -131,11 +131,104 @@ jobs:
- name: Run make for java
run: make -C lib/java
+ - name: Run make install for java
+ run: make -C lib/java install
+
+ - name: Upload java libthrift artifacts
+ uses: actions/upload-artifact@v3
+ with:
+ name: libthrift
+ if-no-files-found: error
+ path: ~/.m2/repository/org/apache/thrift
+
- name: Run make check for java
run: make -C lib/java check
+ - name: Run make precross for java
+ run: make -C lib/java precross
+
+ - name: Upload java precross artifacts
+ uses: actions/upload-artifact@v3
+ with:
+ name: java-precross
+ if-no-files-found: error
+ path: |
+ lib/java/build/functionalTestJar/
+ lib/java/build/runclient
+ lib/java/build/runnonblockingserver
+ lib/java/build/runserver
+ lib/java/build/runservletserver
+ retention-days: 3
+
- name: Run make for kotlin
run: make -C lib/kotlin
- name: Run make check for kotlin
run: make -C lib/kotlin check
+
+ - name: Run make precross for kotlin
+ run: make -C lib/kotlin precross
+
+ - name: Upload kotlin precross artifacts
+ uses: actions/upload-artifact@v3
+ with:
+ name: kotlin-precross
+ if-no-files-found: error
+ path: |
+ lib/kotlin/cross-test-client/build/install/TestClient/
+ lib/kotlin/cross-test-server/build/install/TestServer/
+ retention-days: 3
+
+ cross-test:
+ needs:
+ - lib-java-kotlin
+ runs-on: ubuntu-20.04
+ steps:
+ - uses: actions/checkout@v3
+ - uses: actions/setup-python@v3
+ with:
+ python-version: "3.x"
+ - uses: actions/setup-java@v3
+ with:
+ distribution: temurin
+ # here we intentionally use java 8 so that we also verify java 11 compiles to version 8
+ java-version: 8
+ cache: "gradle"
+
+ - name: Download java precross artifacts
+ uses: actions/download-artifact@v3
+ with:
+ name: java-precross
+ path: lib/java/build
+
+ - name: Download kotlin precross artifacts
+ uses: actions/download-artifact@v3
+ with:
+ name: kotlin-precross
+ path: lib/kotlin
+
+ - name: Set back executable flags
+ run: |
+ chmod a+x \
+ lib/java/build/run* \
+ lib/kotlin/cross-test-client/build/install/TestClient/bin/* \
+ lib/kotlin/cross-test-server/build/install/TestServer/bin/*
+
+ - name: Run cross test
+ env:
+ THRIFT_CROSSTEST_CONCURRENCY: 4
+ PRECROSS_LANGS: java,kotlin
+ run: |
+ python test/test.py \
+ --retry-count 5 \
+ --skip-known-failures \
+ --server $PRECROSS_LANGS \
+ --client $PRECROSS_LANGS
+
+ - name: Upload log files from failed cross test runs
+ uses: actions/upload-artifact@v3
+ if: failure()
+ with:
+ name: cross-test-log
+ path: test/log/
+ retention-days: 3