perf(ci): parallelize compile+test, bump runner concurrency to 10

- compile-services now depends on check (not test), running in parallel
  with test stage — saves ~10 min from critical path
- Runner concurrent bumped 4→10 so all 9 Kaniko builds run simultaneously
- Runner default resources lowered (500m/1Gi) for lightweight Kaniko jobs;
  Rust compile/test/training override via KUBERNETES_*_REQUEST CI vars

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
jgrusewski
2026-02-27 10:50:02 +01:00
parent 37cc6959c4
commit 610e0d446e
2 changed files with 11 additions and 8 deletions

View File

@@ -272,7 +272,9 @@ test:
compile-services:
extends: .rust-base
stage: compile
needs: [test]
needs:
- job: check
optional: true # skipped in dev-release mode
rules:
- if: $CI_COMMIT_BRANCH == "main" && $CI_PIPELINE_SOURCE == "push"
changes:

View File

@@ -32,11 +32,12 @@ runners:
node_selector_overwrite_allowed = ".*"
# L40S scale-to-zero needs ~3-5 min to provision; default 180s times out
poll_timeout = 600
# Resource limits for build pods (L40S node: ~24 vCPU, ~96GB)
cpu_request = "6000m"
cpu_limit = "20000m"
memory_request = "24Gi"
memory_limit = "80Gi"
# Default resource limits — low for Kaniko/lightweight jobs
# Rust compile/test/training jobs override via KUBERNETES_*_REQUEST CI vars
cpu_request = "500m"
cpu_limit = "4000m"
memory_request = "1Gi"
memory_limit = "8Gi"
helper_cpu_request = "100m"
helper_cpu_limit = "500m"
helper_memory_request = "128Mi"
@@ -68,8 +69,8 @@ runners:
# Runner tags for job matching
tags: "kapsule,rust,docker,gpu"
# Concurrency
concurrent: 4
# Concurrency — 10 allows all 9 Kaniko builds + test to run in parallel
concurrent: 10
# RBAC for runner to spawn pods
rbac: