mirror of
https://github.com/katanemo/plano.git
synced 2026-06-23 15:38:07 +02:00
Use large github action machine to run e2e tests (#230)
This commit is contained in:
parent
bb882fb59b
commit
e462e393b1
30 changed files with 4725 additions and 441 deletions
|
|
@ -6,6 +6,11 @@ log() {
|
|||
echo "$timestamp: $message"
|
||||
}
|
||||
|
||||
print_disk_usage() {
|
||||
echo free disk space
|
||||
df -h | grep "/$"
|
||||
}
|
||||
|
||||
wait_for_healthz() {
|
||||
local healthz_url="$1"
|
||||
local timeout_seconds="${2:-30}" # Default timeout of 30 seconds
|
||||
|
|
@ -28,6 +33,8 @@ wait_for_healthz() {
|
|||
return 1
|
||||
fi
|
||||
|
||||
print_disk_usage
|
||||
|
||||
sleep $sleep_between
|
||||
done
|
||||
}
|
||||
|
|
|
|||
39
e2e_tests/poetry.lock
generated
39
e2e_tests/poetry.lock
generated
|
|
@ -455,13 +455,13 @@ files = [
|
|||
|
||||
[[package]]
|
||||
name = "pytest"
|
||||
version = "7.4.4"
|
||||
version = "8.3.3"
|
||||
description = "pytest: simple powerful testing with Python"
|
||||
optional = false
|
||||
python-versions = ">=3.7"
|
||||
python-versions = ">=3.8"
|
||||
files = [
|
||||
{file = "pytest-7.4.4-py3-none-any.whl", hash = "sha256:b090cdf5ed60bf4c45261be03239c2c1c22df034fbffe691abe93cd80cea01d8"},
|
||||
{file = "pytest-7.4.4.tar.gz", hash = "sha256:2cf0005922c6ace4a3e2ec8b4080eb0d9753fdc93107415332f50ce9e7994280"},
|
||||
{file = "pytest-8.3.3-py3-none-any.whl", hash = "sha256:a6853c7375b2663155079443d2e45de913a911a11d669df02a50814944db57b2"},
|
||||
{file = "pytest-8.3.3.tar.gz", hash = "sha256:70b98107bd648308a7952b06e6ca9a50bc660be218d53c257cc1fc94fda10181"},
|
||||
]
|
||||
|
||||
[package.dependencies]
|
||||
|
|
@ -469,11 +469,11 @@ colorama = {version = "*", markers = "sys_platform == \"win32\""}
|
|||
exceptiongroup = {version = ">=1.0.0rc8", markers = "python_version < \"3.11\""}
|
||||
iniconfig = "*"
|
||||
packaging = "*"
|
||||
pluggy = ">=0.12,<2.0"
|
||||
tomli = {version = ">=1.0.0", markers = "python_version < \"3.11\""}
|
||||
pluggy = ">=1.5,<2"
|
||||
tomli = {version = ">=1", markers = "python_version < \"3.11\""}
|
||||
|
||||
[package.extras]
|
||||
testing = ["argcomplete", "attrs (>=19.2.0)", "hypothesis (>=3.56)", "mock", "nose", "pygments (>=2.7.2)", "requests", "setuptools", "xmlschema"]
|
||||
dev = ["argcomplete", "attrs (>=19.2)", "hypothesis (>=3.56)", "mock", "pygments (>=2.7.2)", "requests", "setuptools", "xmlschema"]
|
||||
|
||||
[[package]]
|
||||
name = "pytest-cov"
|
||||
|
|
@ -493,6 +493,23 @@ pytest = ">=4.6"
|
|||
[package.extras]
|
||||
testing = ["fields", "hunter", "process-tests", "pytest-xdist", "six", "virtualenv"]
|
||||
|
||||
[[package]]
|
||||
name = "pytest-retry"
|
||||
version = "1.6.3"
|
||||
description = "Adds the ability to retry flaky tests in CI environments"
|
||||
optional = false
|
||||
python-versions = ">=3.9"
|
||||
files = [
|
||||
{file = "pytest_retry-1.6.3-py3-none-any.whl", hash = "sha256:e96f7df77ee70b0838d1085f9c3b8b5b7d74bf8947a0baf32e2b8c71b27683c8"},
|
||||
{file = "pytest_retry-1.6.3.tar.gz", hash = "sha256:36ccfa11c8c8f9ddad5e20375182146d040c20c4a791745139c5a99ddf1b557d"},
|
||||
]
|
||||
|
||||
[package.dependencies]
|
||||
pytest = ">=7.0.0"
|
||||
|
||||
[package.extras]
|
||||
dev = ["black", "flake8", "isort", "mypy"]
|
||||
|
||||
[[package]]
|
||||
name = "pytest-sugar"
|
||||
version = "1.0.0"
|
||||
|
|
@ -535,13 +552,13 @@ use-chardet-on-py3 = ["chardet (>=3.0.2,<6)"]
|
|||
|
||||
[[package]]
|
||||
name = "selenium"
|
||||
version = "4.25.0"
|
||||
version = "4.26.0"
|
||||
description = "Official Python bindings for Selenium WebDriver"
|
||||
optional = false
|
||||
python-versions = ">=3.8"
|
||||
files = [
|
||||
{file = "selenium-4.25.0-py3-none-any.whl", hash = "sha256:3798d2d12b4a570bc5790163ba57fef10b2afee958bf1d80f2a3cf07c4141f33"},
|
||||
{file = "selenium-4.25.0.tar.gz", hash = "sha256:95d08d3b82fb353f3c474895154516604c7f0e6a9a565ae6498ef36c9bac6921"},
|
||||
{file = "selenium-4.26.0-py3-none-any.whl", hash = "sha256:48013f36e812de5b3948ef53d04e73f77bc923ee3e1d7d99eaf0618179081b99"},
|
||||
{file = "selenium-4.26.0.tar.gz", hash = "sha256:f0780f85f10310aa5d085b81e79d73d3c93b83d8de121d0400d543a50ee963e8"},
|
||||
]
|
||||
|
||||
[package.dependencies]
|
||||
|
|
@ -699,4 +716,4 @@ h11 = ">=0.9.0,<1"
|
|||
[metadata]
|
||||
lock-version = "2.0"
|
||||
python-versions = "^3.10"
|
||||
content-hash = "6ae4fa6397091b87b63698201a08d7d97628ed65992d46514f118768b46b99ce"
|
||||
content-hash = "a40015b90325879e50f82cca6a26a730d763cad26589671df798832d41c42db3"
|
||||
|
|
|
|||
|
|
@ -9,11 +9,12 @@ package-mode = false
|
|||
|
||||
[tool.poetry.dependencies]
|
||||
python = "^3.10"
|
||||
pytest = "^7.3.1"
|
||||
pytest = "^8.3.3"
|
||||
requests = "^2.29.0"
|
||||
selenium = "^4.11.2"
|
||||
pytest-sugar = "^1.0.0"
|
||||
deepdiff = "^8.0.1"
|
||||
pytest-retry = "^1.6.3"
|
||||
|
||||
[tool.poetry.dev-dependencies]
|
||||
pytest-cov = "^4.1.0"
|
||||
|
|
@ -21,3 +22,6 @@ pytest-cov = "^4.1.0"
|
|||
[tool.pytest.ini_options]
|
||||
python_files = ["test*.py"]
|
||||
addopts = ["-v", "-s"]
|
||||
retries = 2
|
||||
retry_delay = 0.5
|
||||
cumulative_timing = false
|
||||
|
|
|
|||
|
|
@ -4,6 +4,11 @@ set -e
|
|||
|
||||
. ./common_scripts.sh
|
||||
|
||||
print_disk_usage
|
||||
|
||||
mkdir -p ~/archgw_logs
|
||||
touch ~/archgw_logs/modelserver.log
|
||||
|
||||
print_debug() {
|
||||
log "Received signal to stop"
|
||||
log "Printing debug logs for model_server"
|
||||
|
|
@ -18,63 +23,62 @@ trap 'print_debug' INT TERM ERR
|
|||
|
||||
log starting > ../build.log
|
||||
|
||||
log building function_callling demo
|
||||
log ===============================
|
||||
log building and running function_callling demo
|
||||
log ===========================================
|
||||
cd ../demos/function_calling
|
||||
docker compose build -q
|
||||
|
||||
log starting the function_calling demo
|
||||
docker compose up -d
|
||||
docker compose up api_server --build -d
|
||||
cd -
|
||||
|
||||
log building model server
|
||||
log =====================
|
||||
print_disk_usage
|
||||
|
||||
log building and install model server
|
||||
log =================================
|
||||
cd ../model_server
|
||||
poetry install 2>&1 >> ../build.log
|
||||
log starting model server
|
||||
log =====================
|
||||
mkdir -p ~/archgw_logs
|
||||
touch ~/archgw_logs/modelserver.log
|
||||
poetry run archgw_modelserver restart &
|
||||
poetry install
|
||||
cd -
|
||||
|
||||
print_disk_usage
|
||||
|
||||
log building and installing archgw cli
|
||||
log ==================================
|
||||
cd ../arch/tools
|
||||
sh build_cli.sh
|
||||
cd -
|
||||
|
||||
print_disk_usage
|
||||
|
||||
log building docker image for arch gateway
|
||||
log ======================================
|
||||
cd ../
|
||||
archgw build
|
||||
cd -
|
||||
|
||||
print_disk_usage
|
||||
|
||||
log startup arch gateway with function calling demo
|
||||
cd ..
|
||||
tail -F ~/archgw_logs/modelserver.log &
|
||||
model_server_tail_pid=$!
|
||||
archgw down
|
||||
archgw up demos/function_calling/arch_config.yaml
|
||||
kill $model_server_tail_pid
|
||||
cd -
|
||||
|
||||
log building llm and prompt gateway rust modules
|
||||
log ============================================
|
||||
cd ../arch
|
||||
docker build -f Dockerfile .. -t katanemo/archgw -q
|
||||
log starting the arch gateway service
|
||||
log =================================
|
||||
docker compose -f docker-compose.e2e.yaml down
|
||||
log waiting for model service to be healthy
|
||||
wait_for_healthz "http://localhost:51000/healthz" 300
|
||||
kill $model_server_tail_pid
|
||||
docker compose -f docker-compose.e2e.yaml up -d
|
||||
log waiting for arch gateway service to be healthy
|
||||
wait_for_healthz "http://localhost:10000/healthz" 60
|
||||
log waiting for arch gateway service to be healthy
|
||||
cd -
|
||||
print_disk_usage
|
||||
|
||||
log running e2e tests
|
||||
log =================
|
||||
poetry install 2>&1 >> ../build.log
|
||||
poetry install
|
||||
poetry run pytest
|
||||
|
||||
log shutting down the arch gateway service
|
||||
log ======================================
|
||||
cd ../arch
|
||||
docker compose -f docker-compose.e2e.yaml stop 2>&1 >> ../build.log
|
||||
cd ../
|
||||
archgw down
|
||||
cd -
|
||||
|
||||
log shutting down the function_calling demo
|
||||
log =======================================
|
||||
cd ../demos/function_calling
|
||||
docker compose down 2>&1 >> ../build.log
|
||||
cd -
|
||||
|
||||
log shutting down the model server
|
||||
log ==============================
|
||||
cd ../model_server
|
||||
poetry run archgw_modelserver stop 2>&1 >> ../build.log
|
||||
docker compose down
|
||||
cd -
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue