ci: increase tracesbench defaults to 8 CPU and 32 GiB

Signed-off-by: WenyXu <wenymedia@gmail.com>
This commit is contained in:
WenyXu
2026-09-28 15:26:23 +00:00
parent e3a7654105
commit 3e97614cfc
2 changed files with 46 additions and 5 deletions
+14 -5
View File
@@ -20,7 +20,7 @@ on:
default: Aliyun
required: true
instance_type:
description: 'Instance type; auto = Aliyun: ecs.c9i.2xlarge, AWS: c7i.2xlarge (both 8 vCPU / 16 GiB). Enter a specific type to override.'
description: 'Instance type; auto = Aliyun: ecs.g9i.2xlarge, AWS: m7i.2xlarge (both 8 vCPU / 32 GiB). Enter a specific type to override.'
type: string
default: auto
required: true
@@ -45,14 +45,14 @@ on:
default: 8
required: true
db_cpus:
description: CPU limit per DB container
description: CPU limit per DB container (default 8 vCPU)
type: string
default: '8'
required: true
db_memory:
description: Memory limit per DB container
description: Memory limit per DB container (default 32 GiB; shared host also runs the runtime and runner)
type: string
default: 16g
default: 32g
required: true
runtime_cpus:
description: CPU limit per runtime container (0 = unrestricted)
@@ -95,7 +95,16 @@ jobs:
persist-credentials: false
- name: Resolve CI runner
id: runner
run: python3 greptimedb/.github/scripts/ci-runner-config.py --provider "$PROVIDER" --instance-type "$REQUESTED_INSTANCE_TYPE"
run: |
set -euo pipefail
instance_type="$REQUESTED_INSTANCE_TYPE"
if [[ "$instance_type" == auto ]]; then
case "$PROVIDER" in
Aliyun) instance_type=ecs.g9i.2xlarge ;;
AWS) instance_type=m7i.2xlarge ;;
esac
fi
python3 greptimedb/.github/scripts/ci-runner-config.py --provider "$PROVIDER" --instance-type "$instance_type"
- name: Validate budgets and shared runtime
id: runtime
run: |
+32
View File
@@ -78,6 +78,38 @@ class ProviderConfigTest(unittest.TestCase):
with self.subTest(provider=provider, requested=requested):
self.assertEqual(config.resolve_instance_type(provider, requested), expected)
def test_traces_workflow_runner_defaults_and_overrides(self):
workflow = (SCRIPTS.parent / "workflows/tracesbench.yml").read_text()
step = workflow.split(" - name: Resolve CI runner\n", 1)[1].split(" - name:", 1)[0]
command = textwrap.dedent(step.split(" run: |\n", 1)[1])
with tempfile.TemporaryDirectory() as directory:
root = Path(directory)
(root / "greptimedb").symlink_to(SCRIPTS.parents[1], target_is_directory=True)
output = root / "output"
for provider, requested, expected in (
("Aliyun", "auto", "ecs.g9i.2xlarge"),
("AWS", "auto", "m7i.2xlarge"),
("Aliyun", "ecs.c9i.4xlarge", "ecs.c9i.4xlarge"),
("AWS", "c7i.4xlarge", "c7i.4xlarge"),
("invalid", "auto", None),
("AWS", "ecs.g9i.2xlarge", None),
):
with self.subTest(provider=provider, requested=requested):
output.write_text("")
result = subprocess.run(
["bash", "-c", command], cwd=root, capture_output=True, text=True,
env=dict(os.environ, PROVIDER=provider, REQUESTED_INSTANCE_TYPE=requested,
GITHUB_OUTPUT=str(output)), timeout=10,
)
if expected is None:
self.assertNotEqual(result.returncode, 0)
self.assertEqual(output.read_text(), "")
else:
self.assertEqual(result.returncode, 0, result.stderr)
self.assertEqual(output.read_text(), f"instance_type={expected}\n")
self.assertRegex(workflow, r"(?s)db_cpus:.*?default: '8'")
self.assertRegex(workflow, r"(?s)db_memory:.*?default: 32g")
def test_wrong_provider_and_shell_fragments_rejected(self):
for provider, requested in (("ec2", "auto"), ("AWS", "ecs.c9i.2xlarge"),
("Aliyun", "c7i.2xlarge"), ("AWS", ""),