> ## Documentation Index
> Fetch the complete documentation index at: https://docs.trunk.io/llms.txt
> Use this file to discover all available pages before exploring further.

# runs-on label reference

> The full Trunk Runners runs-on label format in one table, with examples.

This page lists every option of the Trunk Runners `runs-on` label in one place.
For a guide with more context, see [The runs-on label](https://docs.trunk.io/runners/actions/runs-on.md).

## Format

```text theme={"system"}
trunk=<run>[..size=<size>][..memory=<value>][..template=<id>][..cache=<value>]
```

* `trunk=<run>` — the anchor. Use `${{ github.run_id }}-${{
  github.run_attempt }}` for `<run>`, so a job from a different workflow run
  cannot take this run's runners.
* `..` joins the options.
* Each option is `key=value`.

## Options

| Option | Required | Values | Default |
| - | - | - | - |
| `size` | No | See [Sizes](#sizes) | `small` |
| `memory` | No | See [Memory](#memory) | See [Memory](#memory) |
| `template` | No | A template ID | Organization default |
| `cache` | No | `trunk`, `github` | `trunk`, per your settings |

### Sizes

The memory columns are the values of the `memory` option.

| `size` | `low` | `standard` | `high` |
| - | - | - | - |
| `xsmall` (1 CPU) | 1 GiB | 2 GiB | 4 GiB |
| `small` (2 CPUs) | 2 GiB | 4 GiB | 8 GiB |
| `medium` (4 CPUs) | 4 GiB | 8 GiB | 16 GiB |
| `large` (8 CPUs) | 8 GiB | 16 GiB | 32 GiB |
| `xlarge` (16 CPUs) | 16 GiB | 32 GiB | 64 GiB |

### Memory

| `memory` | Memory per CPU |
| - | - |
| `low` | 1 GiB |
| `standard` | 2 GiB |
| `high` | 4 GiB |

The default `memory` depends on `size`. With no `size`, the default is `high`, which
gives the [default machine](https://docs.trunk.io/runners/actions/sizes.md#the-default-machine). With a
`size`, the default is `standard`.

## Rules

* The order of the options does not matter.
* A key must not repeat.
* The `trunk=` label must be the only label in `runs-on`.
* A label that breaks one of these rules gets no runner. The job stays queued, and
  Trunk gives you no message.

## Examples

The default machine, 2 CPUs and 8 GiB:

```yaml theme={"system"}
runs-on: trunk=${{ github.run_id }}-${{ github.run_attempt }}
```

A medium runner:

```yaml theme={"system"}
runs-on: trunk=${{ github.run_id }}-${{ github.run_attempt }}..size=medium
```

A large runner with high memory, a chosen template, and the shared cache:

```yaml theme={"system"}
runs-on: trunk=${{ github.run_id }}-${{ github.run_attempt }}..size=large..memory=high..template=<template-id>..cache=trunk
```
