[rust][ci] Add end-to-end tests for Oracle history backend (#12233)
This commit is contained in:
@@ -179,6 +179,35 @@ jobs:
|
|||||||
run: |
|
run: |
|
||||||
sudo --preserve-env=PATH bash scripts/ci/ci_install_dependency.sh
|
sudo --preserve-env=PATH bash scripts/ci/ci_install_dependency.sh
|
||||||
|
|
||||||
|
- name: Setup Oracle Instant Client
|
||||||
|
run: |
|
||||||
|
sudo apt-get install -y unzip
|
||||||
|
INSTANT_CLIENT_DIR="/home/ubuntu/instant-client"
|
||||||
|
INSTANT_CLIENT_ZIP="instantclient-basic-linux.x64-23.9.0.25.07.zip"
|
||||||
|
|
||||||
|
if [ ! -d "$INSTANT_CLIENT_DIR/instantclient_23_9" ]; then
|
||||||
|
echo "Downloading Oracle Instant Client..."
|
||||||
|
mkdir -p "$INSTANT_CLIENT_DIR"
|
||||||
|
cd "$INSTANT_CLIENT_DIR"
|
||||||
|
wget https://download.oracle.com/otn_software/linux/instantclient/2390000/$INSTANT_CLIENT_ZIP
|
||||||
|
unzip $INSTANT_CLIENT_ZIP
|
||||||
|
rm $INSTANT_CLIENT_ZIP
|
||||||
|
else
|
||||||
|
echo "Oracle Instant Client already exists, skipping download"
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo "LD_LIBRARY_PATH=/home/ubuntu/instant-client/instantclient_23_9:\$LD_LIBRARY_PATH" >> $GITHUB_ENV
|
||||||
|
|
||||||
|
- name: Start Oracle Database
|
||||||
|
run: |
|
||||||
|
docker run -d -p 1521:1521 -e ORACLE_PASSWORD=oracle --name oracle-db gvenzl/oracle-xe:21-slim
|
||||||
|
echo "Starting Oracle DB..."
|
||||||
|
|
||||||
|
# Export Oracle connection environment variables
|
||||||
|
echo "ATP_USER=system" >> $GITHUB_ENV
|
||||||
|
echo "ATP_PASSWORD=oracle" >> $GITHUB_ENV
|
||||||
|
echo "ATP_DSN=localhost:1521/XEPDB1" >> $GITHUB_ENV
|
||||||
|
|
||||||
- name: Build python binding
|
- name: Build python binding
|
||||||
run: |
|
run: |
|
||||||
source "$HOME/.cargo/env"
|
source "$HOME/.cargo/env"
|
||||||
@@ -200,6 +229,12 @@ jobs:
|
|||||||
cd sgl-router
|
cd sgl-router
|
||||||
SHOW_ROUTER_LOGS=1 ROUTER_LOCAL_MODEL_PATH="/home/ubuntu/models" pytest py_test/e2e_grpc -s -vv -o log_cli=true --log-cli-level=INFO
|
SHOW_ROUTER_LOGS=1 ROUTER_LOCAL_MODEL_PATH="/home/ubuntu/models" pytest py_test/e2e_grpc -s -vv -o log_cli=true --log-cli-level=INFO
|
||||||
|
|
||||||
|
- name: Cleanup Oracle Database
|
||||||
|
if: always()
|
||||||
|
run: |
|
||||||
|
docker stop oracle-db || true
|
||||||
|
docker rm oracle-db || true
|
||||||
|
|
||||||
|
|
||||||
finish:
|
finish:
|
||||||
needs: [unit-test-rust, pytest-rust, pytest-rust-2]
|
needs: [unit-test-rust, pytest-rust, pytest-rust-2]
|
||||||
|
|||||||
@@ -75,6 +75,29 @@ class TestXaiBackend(StateManagementTests):
|
|||||||
kill_process_tree(cls.cluster["router"].pid)
|
kill_process_tree(cls.cluster["router"].pid)
|
||||||
|
|
||||||
|
|
||||||
|
class TestOracleStore(ResponseCRUDBaseTest, ConversationCRUDBaseTest):
|
||||||
|
"""End to end tests for Oracle database storage backend."""
|
||||||
|
|
||||||
|
api_key = os.environ.get("OPENAI_API_KEY")
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def setUpClass(cls):
|
||||||
|
cls.model = "gpt-5-nano"
|
||||||
|
cls.base_url_port = "http://127.0.0.1:30040"
|
||||||
|
|
||||||
|
cls.cluster = popen_launch_openai_xai_router(
|
||||||
|
backend="openai",
|
||||||
|
base_url=cls.base_url_port,
|
||||||
|
history_backend="oracle",
|
||||||
|
)
|
||||||
|
|
||||||
|
cls.base_url = cls.cluster["base_url"]
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def tearDownClass(cls):
|
||||||
|
kill_process_tree(cls.cluster["router"].pid)
|
||||||
|
|
||||||
|
|
||||||
class TestGrpcBackend(StateManagementTests, MCPTests):
|
class TestGrpcBackend(StateManagementTests, MCPTests):
|
||||||
"""End to end tests for gRPC backend."""
|
"""End to end tests for gRPC backend."""
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user