Observação
No momento, não há suporte para executores hospedados no GitHub no GitHub Enterprise Server.
Visão geral
Use jobs.<job_id>.runs-on para definir o tipo de computador no qual o trabalho será executado.
-
O computador de destino pode ser um executor auto-hospedado.
-
Você pode direcionar os executores com base nos rótulos atribuídos a eles, ou na associação de grupo ou uma combinação deles.
-
Você pode fornecer
runs-oncomo:- Uma única string
- Uma única variável que contém uma cadeia de caracteres
- Uma matriz de cadeias de caracteres, variáveis que contêm cadeias de caracteres ou uma combinação de ambas
- um par de
key: valueusando as chavesgroupoulabels
-
Se você especificar uma matriz de cadeias de caracteres ou variáveis, o fluxo de trabalho será executado em qualquer executor que corresponda a todos os valores
runs-onespecificados. Por exemplo, aqui o trabalho só será executado em um executor auto-hospedado que tenha os rótuloslinux,x64egpu:runs-on: [self-hosted, linux, x64, gpu]Para obter mais informações, confira Como escolher executores auto-hospedados.
-
Você pode misturar cadeias de caracteres e variáveis em uma matriz. Por exemplo:
on: workflow_dispatch: inputs: chosen-os: required: true type: choice options: - Ubuntu - macOS jobs: test: runs-on: [self-hosted, "${{ inputs.chosen-os }}"] steps: - run: echo Hello world! -
Se você quiser executar seu fluxo de trabalho em vários computadores, use
jobs.<job_id>.strategy.
Observação
As aspas não são obrigatórias em sequências simples, como self-hosted, mas são obrigatórias para expressões como "${{ inputs.chosen-os }}".
Escolhendo executores hospedados em GitHub
Observação
No momento, não há suporte para executores hospedados no GitHub no GitHub Enterprise Server.
Escolhendo executores auto-hospedados
Para especificar um executor auto-hospedado para seu trabalho, configure runs-on no arquivo de fluxo de trabalho com rótulos do executor auto-hospedado.
Os executores auto-hospedados podem ter o rótulo self-hosted. Ao configurar um corredor auto-hospedado, por padrão, incluiremos o rótulo self-hosted. Você pode passar o sinalizador --no-default-labels para impedir que o rótulo auto-hospedado seja aplicado. Rótulos podem ser usados para criar opções de segmentação para os executores, como sistema operacional ou arquitetura. Recomendamos fornecer uma matriz de rótulos que comece com self-hosted (isso deve ser listado primeiro) e depois inclua rótulos adicionais, conforme necessário. Quando você especificar uma matriz de rótulos, os trabalhos serão colocados na fila nos executores que têm todos os rótulos especificados.
Observe que o Actions Runner Controller não oferece suporte a vários rótulos e não oferece suporte ao rótulo self-hosted.
Exemplo: Usando etiquetas para seleção do executor
runs-on: [self-hosted, linux]
Para saber mais, confira Executores auto-hospedados e Usar os executores auto-hospedados em um fluxo de trabalho.
Escolher executores em um grupo
Você pode usar runs-on para direcionar grupos de executores para que o trabalho seja executado em qualquer executor que seja membro desse grupo. Para um controle mais granular, você também pode combinar grupos de executores com rótulos.
Exemplo: usar grupos para controlar onde os trabalhos são executados
Neste exemplo, os executores do Ubuntu foram adicionados a um grupo chamado ubuntu-runners. A chave runs-on envia o trabalho para qualquer executor disponível no grupo ubuntu-runners:
name: learn-github-actions
on: [push]
jobs:
check-bats-version:
runs-on:
group: ubuntu-runners
steps:
- uses: actions/checkout@v5
- uses: actions/setup-node@v4
with:
node-version: '14'
- run: npm install -g bats
- run: bats -v
Exemplo: combinar grupos e rótulos
Quando você combina grupos e rótulos, o executor deve atender aos dois requisitos para ser qualificado para executar o trabalho.
Neste exemplo, um grupo de executores chamado ubuntu-runners é preenchido com executores do Ubuntu, que também receberam o rótulo ubuntu-24.04-16core. A chave runs-on combina group e labels para que o trabalho seja roteado para qualquer executor disponível dentro do grupo que também tenha um rótulo correspondente:
name: learn-github-actions
on: [push]
jobs:
check-bats-version:
runs-on:
group: ubuntu-runners
labels: ubuntu-24.04-16core
steps:
- uses: actions/checkout@v5
- uses: actions/setup-node@v4
with:
node-version: '14'
- run: npm install -g bats
- run: bats -v
Exemplo: usar prefixos para diferenciar grupos de executores
Por exemplo, se você tiver um grupo de executores chamado my-group na organização e outro chamado my-group na empresa, poderá atualizar seu arquivo de fluxo de trabalho para usar org/my-group ou ent/my-group para diferenciar os dois.
Usando org/:
runs-on:
group: org/my-group
labels: [ self-hosted, label-1 ]
Usando ent/:
runs-on:
group: ent/my-group
labels: [ self-hosted, label-1 ]