Skip to content

Meta Labels

vzakaznikov edited this page May 19, 2025 · 13 revisions

Using Meta Labels

Meta labels can be used to define custom runner labels that will be expanded to include itself as well as any other supported labels, such as:

The meta labels can be defined using the --meta-label option. More than one meta label can be defined.

⚠️ Warning:

Composite label values for `type-` and `in-` do not work inside meta labels.

--meta-label test-x86 "self-hosted,type-cx22,type-cpx11" — works
--meta-label test-x86 "self-hosted,type-cx22-cpx11"does not work
✋ Note:

The meta label is not replaced but expanded to include itself and any labels that are defined for it.

For example, --meta-label test-x86 "self-hosted,type-cx22,type-cpx11"

runs-on: [test-x86] — is expanded to
runs-on: [self-hosted, test-x86, type-cx22, type-cpx11]

Interaction with --label-prefix and --with-label options

  • The --label-prefix option is checked after the meta labels have been expanded.
  • The --with-label option is checked before the meta labels are expanded.

Examples

  • You can define test-arm and test-x86 meta labels to provide x86 and ARM runners with the specific server type and image.

    github-hetzner-runners --meta-label test-arm "self-hosted,type-cax21,image-arm-system-ubuntu-22.04" --meta-label test-x86 "self- 
    hosted,type-cpx21,image-x86-system-ubuntu-22.04"

    will define the following two meta labels:

    • test-arm that will map to [test-arm, self-hosted, type-cax21, image-arm-system-ubuntu-22.04]
    • test-x86 that will map to [test-x86, self-hosted, type-cpx21, image-x86-system-ubuntu-22.04]

    Once meta labels are defined, you can use them to request a runner with the corresponding labels.

    job-name:
      runs-on: [test-arm]

    that will be equivalent to

    job-name:
      runs-on: [test-arm, self-hosted, type-cax21, image-arm-system-ubuntu-22.04]

    and

    job-name:
      runs-on: [test-x86]

    that will be equivalent to

    job-name:
      runs-on: [test-x86, self-hosted, type-cpx21, image-x86-system-ubuntu-22.04]
  • You can make self-hosted to be a meta label to include your custom defaults for server type, server image and location.

    github-hetzner-runners  --meta-label self-hosted type-cax21,image-arm-system-ubuntu-22.04,in-hel1
  • You can use meta label to define proper server image for ARM server types given that the default image is for x86.

    github-hetzner-runners  --meta-label type-cax21 image-arm-system-ubuntu-22.04
Clone this wiki locally