Menu
Platform
AI
Analytics
App store purchases
Credits
Database
Flags
Generated Assets
Monitoring
Notifications
Organizations
Payments
- Payments
- Payments quickstart
- Checkout policies
- Checkout sessions
- Customer subscriptions
- Entitlement grants
- Exchange rates
- Licence keys
- Licence tokens
- Merchant accounts
- Portal sessions
- Price catalogs
- Revenue
- Revenue facts
- Revenue sources
- Tax threshold statuses
- Usage events
- Usage invoices
- Usage meter prices
- Usage meters
- Usage reservations
- Usage settings
- Usage tiers
Queues
Realtime
Sandboxes
Webhooks
Getting Started
Authentication
KV Store
Deploy & Infrastructure
Reference
CI Runner Settings
Configure JIT GitHub Actions runner resource limits per-org and per-repo. Settings cascade: repo override → org default → env vars → hardcoded defaults.
- Scope
- per-org · per-repo
- Cascade
- repo → org → env → defaults
- API
- api.sylphx.com/v1/ci-settings
Before you start
- An organisation on Sylphx with GitHub-connected repositories
- A service token for the API path, or the console for the UI path
- The repository full name when overriding one repo (case-sensitive, e.g. SylphxAI/SaaS)
Overview
Sylphx spawns ephemeral Just-In-Time (JIT) GitHub Actions runners as Docker containers on the platform host. Each runner is pre-registered to a single workflow job and is automatically destroyed when the job completes.
CI Runner Settings let you control the resource limits (CPU, memory) and the maximum concurrency of these runners at two levels:
- Org default — applies to all repos in the org
- Per-repo override — overrides specific fields for a single repo; unset fields fall back to the org default
Note
Fallback Chain
When a JIT runner is spawned, settings are resolved in this order. The first non-null value wins for each field independently.
Resolution order for org "MyOrg", repo "MyOrg/big-app":
1. repo_ci_settings WHERE org_id = <myorg-id> AND repo = "MyOrg/big-app"
→ runnerCpu: null (inherit), runnerMemory: "32g", maxConcurrentRunners: null (inherit)
2. org_ci_settings WHERE org_id = <myorg-id>
→ runnerCpu: "8", runnerMemory: "16g", maxConcurrentRunners: 10
3. Env vars: RUNNER_CPU, RUNNER_MEMORY, MAX_JIT_RUNNERS
4. Hardcoded defaults: cpu="4", memory="8g", maxRunners=5
Final resolved settings:
runnerCpu: "8" (from org — repo had null)
runnerMemory: "32g" (from repo override)
maxConcurrentRunners: 10 (from org — repo had null)Configuring in the Console
Step 1. Open CI Config
Step 2. Set Org Defaults
Step 3. Add Per-Repo Overrides (optional)
owner/repo name and specify which fields to override. Leave fields blank to inherit from the org default.Step 4. Delete an Override
Org Default Settings
| Property | Type | Description |
|---|---|---|
runnerCpu | string | Number of CPU cores. Passed as docker run --cpus. Default: "4". |
runnerMemory | string | Memory limit in Docker format (e.g. "8g", "16g"). Passed as docker run --memory. Default: "8g". |
maxConcurrentRunners | number | Maximum number of JIT runner containers allowed to run simultaneously for this org. Default: 5. |
// GET https://api.sylphx.com/v1/ci-settings
// Returns:
{
"isDefault": false,
"runnerCpu": "8",
"runnerMemory": "16g",
"maxConcurrentRunners": 10
}
// PUT https://api.sylphx.com/v1/ci-settings
{
"runnerCpu": "8",
"runnerMemory": "16g",
"maxConcurrentRunners": 10
}Per-Repo Override Settings
| Property | Type | Description |
|---|---|---|
repo | string | Full "owner/repo" string (e.g. "MyOrg/my-app"). Required. |
runnerCpu | string | null | Override CPU cores for this repo. null = inherit from org default. |
runnerMemory | string | null | Override memory for this repo. null = inherit from org default. |
maxConcurrentRunners | number | null | Override max concurrent runners for this repo. null = inherit from org default. |
// POST https://api.sylphx.com/v1/ci-settings/repos
{
"repo": "MyOrg/my-app",
"runnerCpu": "16",
"runnerMemory": "32g",
"maxConcurrentRunners": null // null = inherit from org
}
// DELETE https://api.sylphx.com/v1/ci-settings/repos/MyOrg%2Fmy-appCareful
repo field must exactly match the GitHub repository full name (case-sensitive, e.g. SylphxAI/SaaS). URL-encode slashes when using the DELETE endpoint.