Skip to main content
Each job in your workflow can run on a different size of computer. You choose the size with one label in the job’s runs-on line, so a quick lint job can use a small, cheap computer while a browser test job gets more memory.

Pick a size by CPU and memory

Find the row with the vCPU and RAM your job needs, then put its label in runs-on. See Sizes and prices for disk and per-minute rates. Memory is the standard 2 vCPU, 8 GB computer, the same CPU and RAM as GitHub’s ubuntu-latest in a private repository. The $5 trial covers Micro only. Larger sizes need eligible workspace credit; otherwise the Celesto runner setup check reports a credit problem and the job stays queued. See Troubleshooting if that happens.

Run a job on an 8 GB computer

This workflow runs your Node.js tests on Memory, with 2 vCPU and 8 GB RAM. Save it as .github/workflows/tests.yml in a repository you connected during the CI quickstart:
.github/workflows/tests.yml
After you push, open the run in your repository’s Actions tab. The Show runner resources step prints 2 for the vCPUs and a MemTotal of about 8 GB, shown in kilobytes. You can remove that step once you’ve confirmed the size. For a Python project, keep the same runs-on line and replace the Node.js steps with your Python setup and test commands.

Use different sizes in one workflow

Set runs-on separately on each job. This workflow runs unit tests on Memory and browser end-to-end tests on Large, with 4 vCPU and 16 GB RAM:
.github/workflows/ci.yml
Use exactly one Celesto size label per job. A job with two Celesto labels, or an unknown one, fails setup before a computer starts.

Match your current runner

When you move a workflow, start with a Celesto size that has the same vCPU and RAM as your current runner. Your jobs then get the same CPU and memory, so a failure or slowdown points to a real difference rather than a smaller machine. For example, a Blacksmith workflow with a regular test job and a browser end-to-end job changes only its runs-on lines:
For another provider, find your runner’s vCPU and RAM in its documentation and pick the matching row from Pick a size by CPU and memory. Matching CPU and memory gives a fair starting point, not identical machines. Processor models, disk size, and preinstalled tools can differ, so compare a real run before you move every job. Celesto’s CI image has a different set of tools from GitHub’s hosted image; check what is preinstalled. Celesto Linux runners go up to 8 vCPU and 32 GB. Keep jobs that need more, or that need ARM, Windows, or macOS, on your current provider. The runner is chosen per job, so one workflow can use both.

Choose a smaller size

After a job passes on the matching size, you can try a smaller one to lower its cost. Many lint and unit-test jobs fit Micro or Standard; builds and browser tests usually need more memory.
1

Record a baseline

Run the job on the matching size three times. Note its duration and whether it passed.
2

Try one size down

Change the label to the next smaller size in the size table and run the job three more times.
3

Compare the results

Keep the smaller size if every run passes and the cost per job is lower. Celesto charges per minute, so a smaller runner that runs much longer can cost more per job.
These signs mean the runner is too small for the job:
  • A step ends with exit code 137. The system stopped the process, usually because the job ran out of memory.
  • Test workers crash, or browser tests time out or fail intermittently.
  • The job takes much longer than on the matching size.
Last modified on October 23, 2026