Observação: no momento, não há suporte para os executores hospedados no GitHub no GitHub Enterprise Server. Você pode ver mais informações sobre o suporte futuro planejado no GitHub public roadmap.
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 executores com base nos rótulos atribuídos a eles, ou na associação de grupo ou em uma combinação deles.
-
Você pode fornecer
runs-on
como:- 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: value
usando as chavesgroup
oulabels
-
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-on
especificados. Por exemplo, aqui o trabalho só será executado em um executor auto-hospedado que tenha os rótuloslinux
,x64
egpu
: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 os executores hospedados no GitHub no GitHub Enterprise Server. Você pode ver mais informações sobre o suporte futuro planejado no GitHub public roadmap.
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 obter mais informações, confira "Sobre 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@v4
- 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-20.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-20.04-16core
steps:
- uses: actions/checkout@v4
- 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 ]