Skip to content

Commit fde939b

Browse files
committed
fix
1 parent 3c339b5 commit fde939b

25 files changed

+195
-186
lines changed

.github/workflows/e2e-tests-flink-1.x-jdk11.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ jobs:
5353
distribution: 'temurin'
5454

5555
- name: Build Flink
56-
run: mvn -T 1C -B clean install -DskipTests -Ppaimon-faiss,flink1,spark3 -pl paimon-e2e-tests -am -Pflink-${{ matrix.flink_version }},java11
56+
run: mvn -T 1C -B clean install -DskipTests -Pflink1,spark3 -pl paimon-e2e-tests -am -Pflink-${{ matrix.flink_version }},java11
5757

5858
- name: Test Flink
5959
run: |
@@ -63,9 +63,9 @@ jobs:
6363
echo "JVM timezone is set to $jvm_timezone"
6464
profile="flink-${{ matrix.flink_version }}"
6565
if [ "${{ matrix.flink_version }}" = "${{ matrix.flink_version[-1] }}" ]; then
66-
mvn -T 1C -B test -Ppaimon-faiss,flink1,spark3 -pl paimon-e2e-tests -Duser.timezone=$jvm_timezone -Pjava11
66+
mvn -T 1C -B test -Pflink1,spark3 -pl paimon-e2e-tests -Duser.timezone=$jvm_timezone -Pjava11
6767
else
68-
mvn -T 1C -B test -Ppaimon-faiss,flink1,spark3 -pl paimon-e2e-tests -Duser.timezone=$jvm_timezone -P${profile},java11
68+
mvn -T 1C -B test -Pflink1,spark3 -pl paimon-e2e-tests -Duser.timezone=$jvm_timezone -P${profile},java11
6969
fi
7070
env:
7171
MAVEN_OPTS: -Xmx4096m

.github/workflows/e2e-tests-flink-1.x.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ jobs:
5656
distribution: 'temurin'
5757

5858
- name: Build Flink
59-
run: mvn -T 2C -B clean install -DskipTests -Ppaimon-faiss,flink1,spark3 -pl paimon-e2e-tests -am -Pflink-${{ matrix.flink_version }}
59+
run: mvn -T 2C -B clean install -DskipTests -Pflink1,spark3 -pl paimon-e2e-tests -am -Pflink-${{ matrix.flink_version }}
6060

6161
- name: Test Flink
6262
run: |
@@ -66,9 +66,9 @@ jobs:
6666
echo "JVM timezone is set to $jvm_timezone"
6767
profile="flink-${{ matrix.flink_version }}"
6868
if [ "${{ matrix.flink_version }}" = "${{ matrix.flink_version[-1] }}" ]; then
69-
mvn -T 1C -B test -Ppaimon-faiss,flink1,spark3 -pl paimon-e2e-tests -Duser.timezone=$jvm_timezone
69+
mvn -T 1C -B test -Pflink1,spark3 -pl paimon-e2e-tests -Duser.timezone=$jvm_timezone
7070
else
71-
mvn -T 1C -B test -Ppaimon-faiss,flink1,spark3 -pl paimon-e2e-tests -Duser.timezone=$jvm_timezone -P${profile}
71+
mvn -T 1C -B test -Pflink1,spark3 -pl paimon-e2e-tests -Duser.timezone=$jvm_timezone -P${profile}
7272
fi
7373
env:
7474
MAVEN_OPTS: -Xmx4096m

.github/workflows/e2e-tests-flink-2.x-jdk11.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ jobs:
5353

5454
- name: Build Flink
5555
run: |
56-
mvn -T 2C -B clean install -DskipTests -Ppaimon-faiss,flink2,spark3 -pl paimon-e2e-tests -am -Pflink-${{ matrix.flink_version }},java11
56+
mvn -T 2C -B clean install -DskipTests -Pflink2,spark3 -pl paimon-e2e-tests -am -Pflink-${{ matrix.flink_version }},java11
5757
5858
- name: Test Flink
5959
run: |
@@ -63,9 +63,9 @@ jobs:
6363
echo "JVM timezone is set to $jvm_timezone"
6464
profile="flink-${{ matrix.flink_version }}"
6565
if [ "${{ matrix.flink_version }}" = "${{ matrix.flink_version[-1] }}" ]; then
66-
mvn -T 1C -B test -Ppaimon-faiss,flink2,spark3 -pl paimon-e2e-tests -Duser.timezone=$jvm_timezone -Pjava11
66+
mvn -T 1C -B test -Pflink2,spark3 -pl paimon-e2e-tests -Duser.timezone=$jvm_timezone -Pjava11
6767
else
68-
mvn -T 1C -B test -Ppaimon-faiss,flink2,spark3 -pl paimon-e2e-tests -Duser.timezone=$jvm_timezone -P${profile},java11
68+
mvn -T 1C -B test -Pflink2,spark3 -pl paimon-e2e-tests -Duser.timezone=$jvm_timezone -P${profile},java11
6969
fi
7070
env:
7171
MAVEN_OPTS: -Xmx4096m
Lines changed: 158 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,158 @@
1+
################################################################################
2+
# Licensed to the Apache Software Foundation (ASF) under one
3+
# or more contributor license agreements. See the NOTICE file
4+
# distributed with this work for additional information
5+
# regarding copyright ownership. The ASF licenses this file
6+
# to you under the Apache License, Version 2.0 (the
7+
# "License"); you may not use this file except in compliance
8+
# with the License. You may obtain a copy of the License at
9+
#
10+
# http://www.apache.org/licenses/LICENSE-2.0
11+
#
12+
# Unless required by applicable law or agreed to in writing, software
13+
# distributed under the License is distributed on an "AS IS" BASIS,
14+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15+
# See the License for the specific language governing permissions and
16+
# limitations under the License.
17+
################################################################################
18+
19+
name: Paimon Faiss Tests
20+
21+
on:
22+
push:
23+
paths:
24+
- 'paimon-faiss/**'
25+
- 'paimon-faiss-jni/**'
26+
- '.github/workflows/utitcase-faiss.yml'
27+
pull_request:
28+
paths:
29+
- 'paimon-faiss/**'
30+
- 'paimon-faiss-jni/**'
31+
- '.github/workflows/utitcase-faiss.yml'
32+
33+
env:
34+
JDK_VERSION: 8
35+
MAVEN_OPTS: -Dmaven.wagon.httpconnectionManager.ttlSeconds=30 -Dmaven.wagon.http.retryHandler.requestSentEnabled=true
36+
37+
concurrency:
38+
group: ${{ github.workflow }}-${{ github.event_name }}-${{ github.event.number || github.run_id }}
39+
cancel-in-progress: true
40+
41+
jobs:
42+
build-native-and-test:
43+
runs-on: ubuntu-latest
44+
45+
steps:
46+
- name: Checkout code
47+
uses: actions/checkout@v4
48+
49+
- name: Set up JDK ${{ env.JDK_VERSION }}
50+
uses: actions/setup-java@v4
51+
with:
52+
java-version: ${{ env.JDK_VERSION }}
53+
distribution: 'temurin'
54+
55+
- name: Install native dependencies
56+
run: |
57+
sudo apt-get update
58+
sudo apt-get install -y \
59+
build-essential \
60+
libopenblas-dev \
61+
liblapack-dev \
62+
patchelf \
63+
libgomp1 \
64+
wget
65+
66+
- name: Install GCC 9
67+
run: |
68+
sudo apt-get install -y gcc-9 g++-9
69+
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-9 90
70+
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-9 90
71+
gcc --version
72+
g++ --version
73+
# Verify GCC version is >= 9.3.0
74+
# Use -dumpfullversion for full version, fall back to -dumpversion
75+
GCC_VERSION=$(gcc -dumpfullversion 2>/dev/null || gcc -dumpversion)
76+
echo "GCC version: $GCC_VERSION"
77+
# Extract major version
78+
GCC_MAJOR=$(echo "$GCC_VERSION" | cut -d. -f1)
79+
if [[ "$GCC_MAJOR" -lt 9 ]]; then
80+
echo "ERROR: GCC major version must be >= 9, got $GCC_MAJOR"
81+
exit 1
82+
fi
83+
echo "GCC version check passed: $GCC_VERSION (major: $GCC_MAJOR)"
84+
85+
- name: Install CMake 3.30.1
86+
run: |
87+
CMAKE_VERSION="3.30.1"
88+
wget -q https://github.com/Kitware/CMake/releases/download/v${CMAKE_VERSION}/cmake-${CMAKE_VERSION}-linux-x86_64.tar.gz
89+
tar -xzf cmake-${CMAKE_VERSION}-linux-x86_64.tar.gz
90+
sudo mv cmake-${CMAKE_VERSION}-linux-x86_64 /opt/cmake
91+
sudo ln -sf /opt/cmake/bin/cmake /usr/local/bin/cmake
92+
sudo ln -sf /opt/cmake/bin/ctest /usr/local/bin/ctest
93+
sudo ln -sf /opt/cmake/bin/cpack /usr/local/bin/cpack
94+
cmake --version
95+
# Verify CMake version
96+
CMAKE_INSTALLED=$(cmake --version | head -n1 | awk '{print $3}')
97+
echo "CMake version: $CMAKE_INSTALLED"
98+
if [[ "$(printf '%s\n' "3.30.1" "$CMAKE_INSTALLED" | sort -V | head -n1)" != "3.30.1" ]]; then
99+
echo "ERROR: CMake version must be >= 3.30.1, got $CMAKE_INSTALLED"
100+
exit 1
101+
fi
102+
103+
- name: Install FAISS
104+
run: |
105+
# Clone and build FAISS
106+
git clone --depth 1 --branch v1.7.4 https://github.com/facebookresearch/faiss.git /tmp/faiss
107+
cd /tmp/faiss
108+
cmake -B build \
109+
-DFAISS_ENABLE_GPU=OFF \
110+
-DFAISS_ENABLE_PYTHON=OFF \
111+
-DBUILD_TESTING=OFF \
112+
-DCMAKE_BUILD_TYPE=Release
113+
cmake --build build -j $(nproc)
114+
sudo cmake --install build
115+
116+
- name: Build native library
117+
run: |
118+
cd paimon-faiss-jni
119+
./scripts/build-native.sh --clean --fat-lib
120+
121+
- name: List bundled libraries
122+
run: |
123+
echo "=== Bundled libraries ==="
124+
ls -la paimon-faiss-jni/src/main/resources/linux/amd64/
125+
echo ""
126+
echo "=== Library dependencies ==="
127+
ldd paimon-faiss-jni/src/main/resources/linux/amd64/libpaimon_faiss_jni.so || true
128+
129+
- name: Build paimon-faiss-jni
130+
run: |
131+
mvn -B clean install -pl paimon-faiss-jni -am -DskipTests -Ppaimon-faiss
132+
133+
- name: Test paimon-faiss-jni
134+
timeout-minutes: 10
135+
run: |
136+
mvn -B test -pl paimon-faiss-jni -DskipFaissTests=false -Ppaimon-faiss
137+
env:
138+
MAVEN_OPTS: -Xmx2048m
139+
140+
- name: Build paimon-faiss
141+
run: |
142+
mvn -B clean install -pl paimon-faiss -am -DskipTests -Ppaimon-faiss
143+
144+
- name: Test paimon-faiss
145+
timeout-minutes: 30
146+
run: |
147+
mvn -B test -pl paimon-faiss -Ppaimon-faiss
148+
env:
149+
MAVEN_OPTS: -Xmx4096m
150+
151+
- name: Upload native library artifact
152+
uses: actions/upload-artifact@v4
153+
if: always()
154+
with:
155+
name: native-libraries-linux-amd64
156+
path: paimon-faiss-jni/src/main/resources/linux/amd64/
157+
retention-days: 7
158+

.github/workflows/utitcase-flink-1.x-jdk11.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ jobs:
4646
java-version: ${{ env.JDK_VERSION }}
4747
distribution: 'temurin'
4848
- name: Build Flink
49-
run: mvn -T 1C -B clean install -DskipTests -Ppaimon-faiss,flink1,spark3
49+
run: mvn -T 1C -B clean install -DskipTests -Pflink1,spark3
5050
- name: Test Flink
5151
run: |
5252
# run tests with random timezone to find out timezone related bugs
@@ -58,6 +58,6 @@ jobs:
5858
test_modules+="org.apache.paimon:paimon-flink-${suffix},"
5959
done
6060
test_modules="${test_modules%,}"
61-
mvn -T 1C -B test verify -Ppaimon-faiss,flink1,spark3 -pl "${test_modules}" -Duser.timezone=$jvm_timezone
61+
mvn -T 1C -B test verify -Pflink1,spark3 -pl "${test_modules}" -Duser.timezone=$jvm_timezone
6262
env:
6363
MAVEN_OPTS: -Xmx4096m

.github/workflows/utitcase-flink-1.x.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ jobs:
5858
run: |
5959
COMPILE_MODULE="org.apache.paimon:paimon-flink-${{ matrix.flink_version }}"
6060
echo "Start compiling modules: $COMPILE_MODULE"
61-
mvn -T 2C -B clean install -DskipTests -Ppaimon-faiss,flink1,spark3 -pl "${COMPILE_MODULE}" -am
61+
mvn -T 2C -B clean install -DskipTests -Pflink1,spark3 -pl "${COMPILE_MODULE}" -am
6262
6363
- name: Test Flink
6464
run: |
@@ -67,7 +67,7 @@ jobs:
6767
echo "JVM timezone is set to $jvm_timezone"
6868
TEST_MODULE="org.apache.paimon:paimon-flink-${{ matrix.flink_version }}"
6969
echo "Start testing module: $TEST_MODULE"
70-
mvn -T 2C -B test verify -Ppaimon-faiss,flink1,spark3 -pl "${TEST_MODULE}" -Duser.timezone=$jvm_timezone
70+
mvn -T 2C -B test verify -Pflink1,spark3 -pl "${TEST_MODULE}" -Duser.timezone=$jvm_timezone
7171
echo "All modules tested"
7272
env:
7373
MAVEN_OPTS: -Xmx4096m -XX:+UseG1GC -XX:CICompilerCount=2

.github/workflows/utitcase-flink-2.x-jdk11.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ jobs:
4848

4949
- name: Build Flink
5050
run: |
51-
mvn -T 2C -B clean install -DskipTests -Ppaimon-faiss,flink2,spark3
51+
mvn -T 2C -B clean install -DskipTests -Pflink2,spark3
5252
5353
- name: Test Flink
5454
run: |
@@ -61,6 +61,6 @@ jobs:
6161
test_modules+="org.apache.paimon:paimon-flink-${suffix},"
6262
done
6363
test_modules="${test_modules%,}"
64-
mvn -T 2C -B test verify -Ppaimon-faiss,flink2,spark3 -pl "${test_modules}" -Duser.timezone=$jvm_timezone
64+
mvn -T 2C -B test verify -Pflink2,spark3 -pl "${test_modules}" -Duser.timezone=$jvm_timezone
6565
env:
6666
MAVEN_OPTS: -Xmx4096m

.github/workflows/utitcase-jdk11.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ jobs:
4444
java-version: ${{ env.JDK_VERSION }}
4545
distribution: 'temurin'
4646
- name: Build
47-
run: mvn -T 1C -B clean install -DskipTests -Ppaimon-faiss,flink1,spark3,paimon-lucene
47+
run: mvn -T 1C -B clean install -DskipTests -Pflink1,spark3,paimon-lucene
4848
- name: Test
4949
run: |
5050
# run tests with random timezone to find out timezone related bugs
@@ -56,6 +56,6 @@ jobs:
5656
test_modules+="!org.apache.paimon:paimon-spark-${suffix}_2.12,"
5757
done
5858
test_modules="${test_modules%,}"
59-
mvn -T 1C -B clean install -pl "${test_modules}" -Ppaimon-faiss,flink1,spark3,paimon-lucene -Pskip-paimon-flink-tests -Duser.timezone=$jvm_timezone
59+
mvn -T 1C -B clean install -pl "${test_modules}" -Pflink1,spark3,paimon-lucene -Pskip-paimon-flink-tests -Duser.timezone=$jvm_timezone
6060
env:
6161
MAVEN_OPTS: -Xmx4096m

.github/workflows/utitcase-spark-3.x.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ jobs:
5454
distribution: 'temurin'
5555

5656
- name: Build Spark 3 with ${{ matrix.scala_version }}
57-
run: mvn -T 2C -B clean install -DskipTests -Ppaimon-faiss,spark3,flink1,scala-${{ matrix.scala_version }}
57+
run: mvn -T 2C -B clean install -DskipTests -Pspark3,flink1,scala-${{ matrix.scala_version }}
5858

5959

6060
- name: Test Spark 3 with ${{ matrix.scala_version }}
@@ -69,6 +69,6 @@ jobs:
6969
test_modules+="org.apache.paimon:paimon-spark-${suffix}_${{ matrix.scala_version }},"
7070
done
7171
test_modules="${test_modules%,}"
72-
mvn -T 2C -B verify -pl "${test_modules}" -Duser.timezone=$jvm_timezone -Ppaimon-faiss,spark3,flink1,scala-${{ matrix.scala_version }}
72+
mvn -T 2C -B verify -pl "${test_modules}" -Duser.timezone=$jvm_timezone -Pspark3,flink1,scala-${{ matrix.scala_version }}
7373
env:
7474
MAVEN_OPTS: -Xmx4096m

.github/workflows/utitcase-spark-4.x.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ jobs:
5151
distribution: 'temurin'
5252

5353
- name: Build Spark
54-
run: mvn -T 2C -B clean install -DskipTests -Pspark4,flink1,paimon-lucene,paimon-faiss
54+
run: mvn -T 2C -B clean install -DskipTests -Pspark4,flink1,paimon-lucene
5555

5656

5757
- name: Test Spark
@@ -66,6 +66,6 @@ jobs:
6666
test_modules+="org.apache.paimon:paimon-spark-${suffix}_2.13,"
6767
done
6868
test_modules="${test_modules%,}"
69-
mvn -T 2C -B verify -pl "${test_modules}" -Duser.timezone=$jvm_timezone -Pspark4,flink1,paimon-lucene,paimon-faiss
69+
mvn -T 2C -B verify -pl "${test_modules}" -Duser.timezone=$jvm_timezone -Pspark4,flink1,paimon-lucene
7070
env:
7171
MAVEN_OPTS: -Xmx4096m

0 commit comments

Comments
 (0)