mirror of
https://github.com/GreptimeTeam/greptimedb.git
synced 2026-10-19 02:12:28 +00:00
ci: increase tracesbench defaults to 8 CPU and 32 GiB
Signed-off-by: WenyXu <wenymedia@gmail.com>
This commit is contained in:
@@ -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: |
|
||||
|
||||
@@ -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", ""),
|
||||
|
||||
Reference in New Issue
Block a user