This is an automated email from the ASF dual-hosted git repository.

xtsong pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/flink-agents.git

commit 393b9ec946b9008aaf7c99dc0c036a51c80832b4
Author: WenjinXie <[email protected]>
AuthorDate: Thu Nov 13 16:02:34 2025 +0800

    [infra] Run e2e tests in ci.
---
 .github/workflows/ci.yml                           | 61 ++++++++++++++++++++--
 .../pom.xml                                        |  2 +-
 .../pom.xml                                        |  2 +-
 .../test/ChatModelIntegrationAgent.java            |  0
 .../integration/test/ChatModelIntegrationTest.java |  0
 .../test/EmbeddingIntegrationAgent.java            |  0
 .../integration/test/EmbeddingIntegrationTest.java |  0
 .../integration/test/FlinkIntegrationAgent.java    |  0
 .../integration/test/FlinkIntegrationTest.java     |  0
 .../agents/integration/test/MemoryObjectAgent.java |  0
 .../agents/integration/test/MemoryObjectTest.java  |  0
 .../integration/test/OllamaPreparationUtils.java   |  0
 .../agents/integration/test/ReActAgentTest.java    |  0
 .../test_from_datastream_to_datastream.txt         |  0
 .../ground-truth/test_from_datastream_to_table.txt |  0
 .../ground-truth/test_from_table_to_table.txt      |  0
 .../src/test/resources/log4j2-test.properties      |  0
 .../src/test/resources/ollama_pull_model.sh        |  0
 e2e-test/pom.xml                                   |  4 +-
 .../{mcp_test => e2e_tests_mcp}/__init__.py        |  0
 .../{mcp_test => e2e_tests_mcp}/mcp_server.py      |  0
 .../{mcp_test => e2e_tests_mcp}/mcp_test.py        |  0
 tools/build.sh                                     | 36 +++++++------
 tools/e2e.sh                                       |  2 +-
 tools/ut.sh                                        | 26 +++++++--
 25 files changed, 104 insertions(+), 29 deletions(-)

diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
index 33b366c..e41b989 100644
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -49,7 +49,7 @@ jobs:
         run: ./tools/lint.sh -c
 
   java_tests:
-    name: java tests on ${{ matrix.os }}
+    name: ut-java [${{ matrix.os }}]
     runs-on: ${{ matrix.os }}
     strategy:
       fail-fast: false
@@ -66,7 +66,7 @@ jobs:
         run: tools/ut.sh -j
 
   python_tests:
-    name: python tests on ${{ matrix.os }} ${{ matrix.python-version}}
+    name: ut-python [${{ matrix.os }}] [${{ matrix.python-version}}]
     runs-on: ${{ matrix.os }}
     strategy:
       fail-fast: false
@@ -91,8 +91,59 @@ jobs:
       - name: Run Python Tests
         run: tools/ut.sh -p
 
-  e2e_tests:
-    name: e2e tests on ${{ matrix.os }} ${{ matrix.python-version}}
+  python_it_tests:
+    name: it-python [${{ matrix.os }}] [${{ matrix.python-version}}]
+    runs-on: ${{ matrix.os }}
+    strategy:
+      fail-fast: false
+      matrix:
+        os: [ 'ubuntu-latest' ]
+        python-version: [ '3.11' ]
+    steps:
+      - uses: actions/checkout@v4
+      - name: Install java
+        uses: actions/setup-java@v4
+        with:
+          java-version: '11'
+          distribution: 'adopt'
+      - name: Install python
+        uses: actions/setup-python@v4
+        with:
+          python-version: ${{ matrix.python-version }}
+      - name: Install uv
+        uses: astral-sh/setup-uv@v4
+        with:
+          version: "latest"
+      - name: Install flink-agents
+        run: bash tools/build.sh
+      - name: Install ollama
+        run: bash tools/start_ollama_server.sh
+      - name: Run Python IT
+        run: tools/ut.sh -p -e
+
+  java_it_tests:
+    name: it-java [${{ matrix.os }}]
+    runs-on: ${{ matrix.os }}
+    strategy:
+      fail-fast: false
+      matrix:
+        os: [ 'ubuntu-latest' ]
+    steps:
+      - uses: actions/checkout@v4
+      - name: Install java
+        uses: actions/setup-java@v4
+        with:
+          java-version: '11'
+          distribution: 'adopt'
+      - name: Install flink-agents Java
+        run: bash tools/build.sh -j
+      - name: Install ollama
+        run: bash tools/start_ollama_server.sh
+      - name: Run Java IT
+        run: tools/ut.sh -j -e
+
+  cross_language_tests:
+    name: cross-language [${{ matrix.os }}] [${{ matrix.python-version}}]
     runs-on: ${{ matrix.os }}
     strategy:
       fail-fast: false
@@ -117,4 +168,4 @@ jobs:
       - name: Build flink-agents
         run: bash tools/build.sh
       - name: Run e2e tests
-        run: bash tools/e2e.sh
+        run: bash tools/e2e.sh
\ No newline at end of file
diff --git a/e2e-test/agent-plan-compatibility-test/pom.xml 
b/e2e-test/flink-agents-end-to-end-tests-agent-plan-compatibility/pom.xml
similarity index 96%
rename from e2e-test/agent-plan-compatibility-test/pom.xml
rename to 
e2e-test/flink-agents-end-to-end-tests-agent-plan-compatibility/pom.xml
index 4639d0c..2a76867 100644
--- a/e2e-test/agent-plan-compatibility-test/pom.xml
+++ b/e2e-test/flink-agents-end-to-end-tests-agent-plan-compatibility/pom.xml
@@ -25,7 +25,7 @@ under the License.
         <version>0.2-SNAPSHOT</version>
     </parent>
 
-    <artifactId>flink-agents-agent-plan-compatibility-tests</artifactId>
+    
<artifactId>flink-agents-end-to-end-tests-agent-plan-compatibility</artifactId>
     <name>Flink Agents : E2E Tests: Agent Plan Compatibility</name>
 
     <dependencies>
diff --git a/e2e-test/integration-test/pom.xml 
b/e2e-test/flink-agents-end-to-end-tests-integration/pom.xml
similarity index 97%
rename from e2e-test/integration-test/pom.xml
rename to e2e-test/flink-agents-end-to-end-tests-integration/pom.xml
index 1551595..b3edb3e 100644
--- a/e2e-test/integration-test/pom.xml
+++ b/e2e-test/flink-agents-end-to-end-tests-integration/pom.xml
@@ -25,7 +25,7 @@ under the License.
         <version>0.2-SNAPSHOT</version>
     </parent>
 
-    <artifactId>flink-agents-integration-tests</artifactId>
+    <artifactId>flink-agents-end-to-end-tests-integration</artifactId>
     <name>Flink Agents : E2E Tests: Integration</name>
 
     <dependencies>
diff --git 
a/e2e-test/integration-test/src/test/java/org/apache/flink/agents/integration/test/ChatModelIntegrationAgent.java
 
b/e2e-test/flink-agents-end-to-end-tests-integration/src/test/java/org/apache/flink/agents/integration/test/ChatModelIntegrationAgent.java
similarity index 100%
rename from 
e2e-test/integration-test/src/test/java/org/apache/flink/agents/integration/test/ChatModelIntegrationAgent.java
rename to 
e2e-test/flink-agents-end-to-end-tests-integration/src/test/java/org/apache/flink/agents/integration/test/ChatModelIntegrationAgent.java
diff --git 
a/e2e-test/integration-test/src/test/java/org/apache/flink/agents/integration/test/ChatModelIntegrationTest.java
 
b/e2e-test/flink-agents-end-to-end-tests-integration/src/test/java/org/apache/flink/agents/integration/test/ChatModelIntegrationTest.java
similarity index 100%
rename from 
e2e-test/integration-test/src/test/java/org/apache/flink/agents/integration/test/ChatModelIntegrationTest.java
rename to 
e2e-test/flink-agents-end-to-end-tests-integration/src/test/java/org/apache/flink/agents/integration/test/ChatModelIntegrationTest.java
diff --git 
a/e2e-test/integration-test/src/test/java/org/apache/flink/agents/integration/test/EmbeddingIntegrationAgent.java
 
b/e2e-test/flink-agents-end-to-end-tests-integration/src/test/java/org/apache/flink/agents/integration/test/EmbeddingIntegrationAgent.java
similarity index 100%
rename from 
e2e-test/integration-test/src/test/java/org/apache/flink/agents/integration/test/EmbeddingIntegrationAgent.java
rename to 
e2e-test/flink-agents-end-to-end-tests-integration/src/test/java/org/apache/flink/agents/integration/test/EmbeddingIntegrationAgent.java
diff --git 
a/e2e-test/integration-test/src/test/java/org/apache/flink/agents/integration/test/EmbeddingIntegrationTest.java
 
b/e2e-test/flink-agents-end-to-end-tests-integration/src/test/java/org/apache/flink/agents/integration/test/EmbeddingIntegrationTest.java
similarity index 100%
rename from 
e2e-test/integration-test/src/test/java/org/apache/flink/agents/integration/test/EmbeddingIntegrationTest.java
rename to 
e2e-test/flink-agents-end-to-end-tests-integration/src/test/java/org/apache/flink/agents/integration/test/EmbeddingIntegrationTest.java
diff --git 
a/e2e-test/integration-test/src/test/java/org/apache/flink/agents/integration/test/FlinkIntegrationAgent.java
 
b/e2e-test/flink-agents-end-to-end-tests-integration/src/test/java/org/apache/flink/agents/integration/test/FlinkIntegrationAgent.java
similarity index 100%
rename from 
e2e-test/integration-test/src/test/java/org/apache/flink/agents/integration/test/FlinkIntegrationAgent.java
rename to 
e2e-test/flink-agents-end-to-end-tests-integration/src/test/java/org/apache/flink/agents/integration/test/FlinkIntegrationAgent.java
diff --git 
a/e2e-test/integration-test/src/test/java/org/apache/flink/agents/integration/test/FlinkIntegrationTest.java
 
b/e2e-test/flink-agents-end-to-end-tests-integration/src/test/java/org/apache/flink/agents/integration/test/FlinkIntegrationTest.java
similarity index 100%
rename from 
e2e-test/integration-test/src/test/java/org/apache/flink/agents/integration/test/FlinkIntegrationTest.java
rename to 
e2e-test/flink-agents-end-to-end-tests-integration/src/test/java/org/apache/flink/agents/integration/test/FlinkIntegrationTest.java
diff --git 
a/e2e-test/integration-test/src/test/java/org/apache/flink/agents/integration/test/MemoryObjectAgent.java
 
b/e2e-test/flink-agents-end-to-end-tests-integration/src/test/java/org/apache/flink/agents/integration/test/MemoryObjectAgent.java
similarity index 100%
rename from 
e2e-test/integration-test/src/test/java/org/apache/flink/agents/integration/test/MemoryObjectAgent.java
rename to 
e2e-test/flink-agents-end-to-end-tests-integration/src/test/java/org/apache/flink/agents/integration/test/MemoryObjectAgent.java
diff --git 
a/e2e-test/integration-test/src/test/java/org/apache/flink/agents/integration/test/MemoryObjectTest.java
 
b/e2e-test/flink-agents-end-to-end-tests-integration/src/test/java/org/apache/flink/agents/integration/test/MemoryObjectTest.java
similarity index 100%
rename from 
e2e-test/integration-test/src/test/java/org/apache/flink/agents/integration/test/MemoryObjectTest.java
rename to 
e2e-test/flink-agents-end-to-end-tests-integration/src/test/java/org/apache/flink/agents/integration/test/MemoryObjectTest.java
diff --git 
a/e2e-test/integration-test/src/test/java/org/apache/flink/agents/integration/test/OllamaPreparationUtils.java
 
b/e2e-test/flink-agents-end-to-end-tests-integration/src/test/java/org/apache/flink/agents/integration/test/OllamaPreparationUtils.java
similarity index 100%
rename from 
e2e-test/integration-test/src/test/java/org/apache/flink/agents/integration/test/OllamaPreparationUtils.java
rename to 
e2e-test/flink-agents-end-to-end-tests-integration/src/test/java/org/apache/flink/agents/integration/test/OllamaPreparationUtils.java
diff --git 
a/e2e-test/integration-test/src/test/java/org/apache/flink/agents/integration/test/ReActAgentTest.java
 
b/e2e-test/flink-agents-end-to-end-tests-integration/src/test/java/org/apache/flink/agents/integration/test/ReActAgentTest.java
similarity index 100%
rename from 
e2e-test/integration-test/src/test/java/org/apache/flink/agents/integration/test/ReActAgentTest.java
rename to 
e2e-test/flink-agents-end-to-end-tests-integration/src/test/java/org/apache/flink/agents/integration/test/ReActAgentTest.java
diff --git 
a/e2e-test/integration-test/src/test/resources/ground-truth/test_from_datastream_to_datastream.txt
 
b/e2e-test/flink-agents-end-to-end-tests-integration/src/test/resources/ground-truth/test_from_datastream_to_datastream.txt
similarity index 100%
rename from 
e2e-test/integration-test/src/test/resources/ground-truth/test_from_datastream_to_datastream.txt
rename to 
e2e-test/flink-agents-end-to-end-tests-integration/src/test/resources/ground-truth/test_from_datastream_to_datastream.txt
diff --git 
a/e2e-test/integration-test/src/test/resources/ground-truth/test_from_datastream_to_table.txt
 
b/e2e-test/flink-agents-end-to-end-tests-integration/src/test/resources/ground-truth/test_from_datastream_to_table.txt
similarity index 100%
rename from 
e2e-test/integration-test/src/test/resources/ground-truth/test_from_datastream_to_table.txt
rename to 
e2e-test/flink-agents-end-to-end-tests-integration/src/test/resources/ground-truth/test_from_datastream_to_table.txt
diff --git 
a/e2e-test/integration-test/src/test/resources/ground-truth/test_from_table_to_table.txt
 
b/e2e-test/flink-agents-end-to-end-tests-integration/src/test/resources/ground-truth/test_from_table_to_table.txt
similarity index 100%
rename from 
e2e-test/integration-test/src/test/resources/ground-truth/test_from_table_to_table.txt
rename to 
e2e-test/flink-agents-end-to-end-tests-integration/src/test/resources/ground-truth/test_from_table_to_table.txt
diff --git 
a/e2e-test/integration-test/src/test/resources/log4j2-test.properties 
b/e2e-test/flink-agents-end-to-end-tests-integration/src/test/resources/log4j2-test.properties
similarity index 100%
rename from e2e-test/integration-test/src/test/resources/log4j2-test.properties
rename to 
e2e-test/flink-agents-end-to-end-tests-integration/src/test/resources/log4j2-test.properties
diff --git a/e2e-test/integration-test/src/test/resources/ollama_pull_model.sh 
b/e2e-test/flink-agents-end-to-end-tests-integration/src/test/resources/ollama_pull_model.sh
similarity index 100%
rename from e2e-test/integration-test/src/test/resources/ollama_pull_model.sh
rename to 
e2e-test/flink-agents-end-to-end-tests-integration/src/test/resources/ollama_pull_model.sh
diff --git a/e2e-test/pom.xml b/e2e-test/pom.xml
index 7fc91d9..5d5683d 100644
--- a/e2e-test/pom.xml
+++ b/e2e-test/pom.xml
@@ -29,7 +29,7 @@ under the License.
     <packaging>pom</packaging>
     <name>Flink Agents : E2E Tests: </name>
     <modules>
-        <module>agent-plan-compatibility-test</module>
-        <module>integration-test</module>
+        <module>flink-agents-end-to-end-tests-agent-plan-compatibility</module>
+        <module>flink-agents-end-to-end-tests-integration</module>
     </modules>
 </project>
\ No newline at end of file
diff --git a/python/flink_agents/e2e_tests/mcp_test/__init__.py 
b/python/flink_agents/e2e_tests/e2e_tests_mcp/__init__.py
similarity index 100%
rename from python/flink_agents/e2e_tests/mcp_test/__init__.py
rename to python/flink_agents/e2e_tests/e2e_tests_mcp/__init__.py
diff --git a/python/flink_agents/e2e_tests/mcp_test/mcp_server.py 
b/python/flink_agents/e2e_tests/e2e_tests_mcp/mcp_server.py
similarity index 100%
rename from python/flink_agents/e2e_tests/mcp_test/mcp_server.py
rename to python/flink_agents/e2e_tests/e2e_tests_mcp/mcp_server.py
diff --git a/python/flink_agents/e2e_tests/mcp_test/mcp_test.py 
b/python/flink_agents/e2e_tests/e2e_tests_mcp/mcp_test.py
similarity index 100%
rename from python/flink_agents/e2e_tests/mcp_test/mcp_test.py
rename to python/flink_agents/e2e_tests/e2e_tests_mcp/mcp_test.py
diff --git a/tools/build.sh b/tools/build.sh
index 4c070a9..435ce56 100755
--- a/tools/build.sh
+++ b/tools/build.sh
@@ -17,11 +17,15 @@
 
 # Parse command-line arguments
 build_java=true
+build_python=true
 while [[ "$#" -gt 0 ]]; do
     case $1 in
         -p|--python)
             build_java=false
             ;;
+        -j|--java)
+            build_python=false
+            ;;
         *)
             echo "Error: Unknown option '$1'" >&2
             show_help
@@ -38,23 +42,25 @@ PROJECT_ROOT="${BASE_DIR}/../"
 # build java
 if $build_java; then
     mvn --version
-    mvn clean package -DskipTests -B
+    mvn clean install -DskipTests -B
 fi
 
-# copy flink-agents-dist jar to python lib
-PYTHON_LIB_DIR=${PROJECT_ROOT}/python/flink_agents/lib
-rm -rf ${PYTHON_LIB_DIR}
-mkdir -p ${PYTHON_LIB_DIR}
+if $build_python; then
+  # copy flink-agents-dist jar to python lib
+  PYTHON_LIB_DIR=${PROJECT_ROOT}/python/flink_agents/lib
+  rm -rf ${PYTHON_LIB_DIR}
+  mkdir -p ${PYTHON_LIB_DIR}
 
-PROJECT_VERSION=$(sed -n 's/.*<version>\(.*\)<\/version>.*/\1/p' pom.xml | 
head -n 2 | tail -n 1)
-cp "${PROJECT_ROOT}/dist/target/flink-agents-dist-${PROJECT_VERSION}.jar" 
${PYTHON_LIB_DIR}
+  PROJECT_VERSION=$(sed -n 's/.*<version>\(.*\)<\/version>.*/\1/p' pom.xml | 
head -n 2 | tail -n 1)
+  cp "${PROJECT_ROOT}/dist/target/flink-agents-dist-${PROJECT_VERSION}.jar" 
${PYTHON_LIB_DIR}
 
-# build python
-cd python
-rm -rf dist/  # Clean old build artifacts before building
-pip install uv
-uv sync --extra dev
-uv run python -m build
-uv pip install dist/*.whl
+  # build python
+  cd python
+  rm -rf dist/  # Clean old build artifacts before building
+  pip install uv
+  uv sync --extra dev
+  uv run python -m build
+  uv pip install dist/*.whl
 
-rm -rf ${PYTHON_LIB_DIR}
\ No newline at end of file
+  rm -rf ${PYTHON_LIB_DIR}
+fi
\ No newline at end of file
diff --git a/tools/e2e.sh b/tools/e2e.sh
index 939d4bc..103d024 100755
--- a/tools/e2e.sh
+++ b/tools/e2e.sh
@@ -112,7 +112,7 @@ script_dir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
 project_root="$(cd "$script_dir/.." && pwd)"
 
 # Find jar file more robustly
-jar_files=("$project_root"/e2e-test/agent-plan-compatibility-test/target/flink-agents-agent-plan-compatibility-tests-*.jar)
+jar_files=("$project_root"/e2e-test/flink-agents-end-to-end-tests-agent-plan-compatibility/target/flink-agents-end-to-end-tests-agent-plan-compatibility-*.jar)
 if [[ ${#jar_files[@]} -eq 0 ]] || [[ ! -f "${jar_files[0]}" ]]; then
   echo "Error: Could not find jar file in 
e2e-test/agent-plan-compatibility-test/target/"
   exit 1
diff --git a/tools/ut.sh b/tools/ut.sh
index acb0307..18d459e 100755
--- a/tools/ut.sh
+++ b/tools/ut.sh
@@ -23,6 +23,7 @@ ROOT="$(cd "$( dirname "$0" )" && pwd)/.."
 # Default values
 run_java=true
 run_python=true
+run_e2e=false
 verbose=false
 
 # Help information
@@ -35,6 +36,7 @@ Usage: $0 [options]
 Options:
   -j, --java        Run only Java tests
   -p, --python      Run only Python tests
+  -e, --e2e         Run e2e tests
   -b, --both        Run both Java and Python tests (default)
   -v, --verbose     Show verbose output
   -h, --help        Display this help message
@@ -67,6 +69,9 @@ while [[ "$#" -gt 0 ]]; do
             run_java=true
             run_python=true
             ;;
+        -e|--e2e)
+            run_e2e=true
+            ;;
         -v|--verbose)
             verbose=true
             ;;
@@ -90,7 +95,11 @@ java_tests() {
     set +e
     echo "Executing Java test suite..."
     pushd "${ROOT}"
-    mvn -T16 --batch-mode --no-transfer-progress test
+    if $run_e2e; then
+        mvn -T16 --batch-mode --no-transfer-progress test -pl 
'e2e-test/flink-agents-end-to-end-tests-integration'
+    else
+        mvn -T16 --batch-mode --no-transfer-progress test -pl 
'!e2e-test/flink-agents-end-to-end-tests-integration'
+    fi
     testcode=$?
     case $testcode in
         0)  # All tests passed
@@ -128,11 +137,16 @@ python_tests() {
         if $verbose; then
             echo "Using uv for dependency management"
         fi
-        uv sync --extra test
         if $verbose; then
             echo "Running tests with uv..."
         fi
-        uv run pytest flink_agents
+        if $run_e2e; then
+            # There will be an individual build step before run e2e test for 
including java dist
+            uv run --no-sync pytest flink_agents -s -k "e2e_tests"
+        else
+            uv sync --extra test
+            uv run pytest flink_agents -k "not e2e_tests"
+        fi
         testcode=$?
     else
         if $verbose; then
@@ -153,7 +167,11 @@ python_tests() {
         if $verbose; then
             echo "Running tests with pytest..."
         fi
-        pytest flink_agents
+        if $run_e2e; then
+            pytest flink_agents -k "e2e_tests"
+        else
+            pytest flink_agents -k "not e2e_tests"
+        fi
         testcode=$?
     fi
     

Reply via email to