mirror of
https://github.com/katanemo/plano.git
synced 2026-06-26 15:39:40 +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
|
|
@ -13,7 +13,7 @@ FROM envoyproxy/envoy:v1.31-latest as envoy
|
|||
#Build config generator, so that we have a single build image for both Rust and Python
|
||||
FROM python:3-slim as arch
|
||||
|
||||
RUN apt-get update && apt-get install -y gettext-base && apt-get clean && rm -rf /var/lib/apt/lists/*
|
||||
RUN apt-get update && apt-get install -y gettext-base curl && apt-get clean && rm -rf /var/lib/apt/lists/*
|
||||
|
||||
COPY --from=builder /arch/target/wasm32-wasi/release/prompt_gateway.wasm /etc/envoy/proxy-wasm-plugins/prompt_gateway.wasm
|
||||
COPY --from=builder /arch/target/wasm32-wasi/release/llm_gateway.wasm /etc/envoy/proxy-wasm-plugins/llm_gateway.wasm
|
||||
|
|
|
|||
|
|
@ -11,6 +11,11 @@ services:
|
|||
- /etc/ssl/cert.pem:/etc/ssl/cert.pem
|
||||
- ~/archgw_logs:/var/log/
|
||||
env_file:
|
||||
- stage.env
|
||||
- env.list
|
||||
extra_hosts:
|
||||
- "host.docker.internal:host-gateway"
|
||||
healthcheck:
|
||||
test: ["CMD", "curl", "-f", "http://localhost:10000/healthz"]
|
||||
interval: 30s
|
||||
timeout: 10s
|
||||
retries: 3
|
||||
|
|
|
|||
|
|
@ -3,7 +3,6 @@
|
|||
# Define paths
|
||||
source_schema="../arch_config_schema.yaml"
|
||||
source_compose="../docker-compose.yaml"
|
||||
source_stage_env="../stage.env"
|
||||
destination_dir="config"
|
||||
|
||||
# Ensure the destination directory exists only if it doesn't already
|
||||
|
|
@ -15,7 +14,7 @@ fi
|
|||
# Copy the files
|
||||
cp "$source_schema" "$destination_dir/arch_config_schema.yaml"
|
||||
cp "$source_compose" "$destination_dir/docker-compose.yaml"
|
||||
cp "$source_stage_env" "$destination_dir/stage.env"
|
||||
touch "$destination_dir/env.list"
|
||||
|
||||
# Print success message
|
||||
echo "Files copied successfully!"
|
||||
|
|
|
|||
|
|
@ -34,7 +34,7 @@ def validate_and_render_schema():
|
|||
try:
|
||||
validate_prompt_config(ARCH_CONFIG_FILE, ARCH_CONFIG_SCHEMA_FILE)
|
||||
except Exception as e:
|
||||
print(e)
|
||||
print(str(e))
|
||||
exit(1) # validate_prompt_config failed. Exit
|
||||
|
||||
with open(ARCH_CONFIG_FILE, "r") as file:
|
||||
|
|
@ -73,7 +73,6 @@ def validate_and_render_schema():
|
|||
|
||||
print("updated clusters", inferred_clusters)
|
||||
|
||||
config_yaml = add_secret_key_to_llm_providers(config_yaml)
|
||||
arch_llm_providers = config_yaml["llm_providers"]
|
||||
arch_tracing = config_yaml.get("tracing", {})
|
||||
arch_config_string = yaml.dump(config_yaml)
|
||||
|
|
|
|||
|
|
@ -58,6 +58,8 @@ def main(ctx, version):
|
|||
click.echo(f"archgw cli version: {get_version()}")
|
||||
ctx.exit()
|
||||
|
||||
log.info(f"Starting archgw cli version: {get_version()}")
|
||||
|
||||
if ctx.invoked_subcommand is None:
|
||||
click.echo("""Arch (The Intelligent Prompt Gateway) CLI""")
|
||||
click.echo(logo)
|
||||
|
|
@ -68,7 +70,7 @@ def main(ctx, version):
|
|||
@click.option(
|
||||
"--service",
|
||||
default=SERVICE_ALL,
|
||||
help="Optioanl parameter to specify which service to build. Options are model_server, archgw",
|
||||
help="Optional parameter to specify which service to build. Options are model_server, archgw",
|
||||
)
|
||||
def build(service):
|
||||
"""Build Arch from source. Must be in root of cloned repo."""
|
||||
|
|
@ -168,7 +170,7 @@ def up(file, path, service):
|
|||
arch_config_schema_file=arch_schema_config,
|
||||
)
|
||||
except Exception as e:
|
||||
log.info(f"Exiting archgw up: {e}")
|
||||
log.info(f"Exiting archgw up: validation failed")
|
||||
sys.exit(1)
|
||||
|
||||
log.info("Starging arch model server and arch gateway")
|
||||
|
|
@ -178,6 +180,12 @@ def up(file, path, service):
|
|||
env = os.environ.copy()
|
||||
# check if access_keys are preesnt in the config file
|
||||
access_keys = get_llm_provider_access_keys(arch_config_file=arch_config_file)
|
||||
|
||||
# remove duplicates
|
||||
access_keys = set(access_keys)
|
||||
# remove the $ from the access_keys
|
||||
access_keys = [item[1:] if item.startswith("$") else item for item in access_keys]
|
||||
|
||||
if access_keys:
|
||||
if file:
|
||||
app_env_file = os.path.join(
|
||||
|
|
@ -186,6 +194,7 @@ def up(file, path, service):
|
|||
else:
|
||||
app_env_file = os.path.abspath(os.path.join(path, ".env"))
|
||||
|
||||
print(f"app_env_file: {app_env_file}")
|
||||
if not os.path.exists(
|
||||
app_env_file
|
||||
): # check to see if the environment variables in the current environment or not
|
||||
|
|
@ -205,7 +214,7 @@ def up(file, path, service):
|
|||
env_stage[access_key] = env_file_dict[access_key]
|
||||
|
||||
with open(
|
||||
pkg_resources.resource_filename(__name__, "../config/stage.env"), "w"
|
||||
pkg_resources.resource_filename(__name__, "../config/env.list"), "w"
|
||||
) as file:
|
||||
for key, value in env_stage.items():
|
||||
file.write(f"{key}={value}\n")
|
||||
|
|
|
|||
3513
arch/tools/poetry.lock
generated
3513
arch/tools/poetry.lock
generated
File diff suppressed because it is too large
Load diff
|
|
@ -12,7 +12,6 @@ include = [
|
|||
# Include package data (docker-compose.yaml and other files)[
|
||||
"config/docker-compose.yaml",
|
||||
"config/arch_config_schema.yaml",
|
||||
"config/stage.env"
|
||||
]
|
||||
|
||||
[tool.poetry.dependencies]
|
||||
|
|
@ -22,8 +21,8 @@ pydantic = "^2.9.2"
|
|||
click = "^8.1.7"
|
||||
jinja2 = "^3.1.4"
|
||||
jsonschema = "^4.23.0"
|
||||
setuptools = "75.2.0"
|
||||
archgw_modelserver = "0.0.4"
|
||||
setuptools = "75.3.0"
|
||||
archgw_modelserver = "0.0.5"
|
||||
huggingface_hub = "^0.26.0"
|
||||
|
||||
[tool.poetry.scripts]
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue