Running jobs on your runner
Depois que o tipo de executor for definido, você poderá atualizar os arquivos YAML de fluxo de trabalho para enviar trabalhos às instâncias de executor recém-criadas para processamento. Você pode usar grupos de executores ou rótulos para definir onde seus trabalhos são executados.
Observação
Executor avançados são atribuídos automaticamente a rótulos padrão que correspondem ao nome. Você não pode adicionar rótulos personalizados a executor avançado, mas pode usar os rótulos padrão ou o grupo do executor para enviar trabalhos a tipos específicos de executores.
Somente contas de proprietário ou administrador podem ver as configurações do executor. Usuários não administrativos podem entrar em contato com o proprietário da organização para descobrir quais executores estão habilitados. O proprietário da sua organização pode criar novos executores e grupos de executores, bem como configurar permissões para especificar quais repositórios podem acessar um grupo de executores. Para saber mais, confira Managing larger runners.
Depois que o tipo de executor for definido, você poderá atualizar os arquivos YAML de fluxo de trabalho para enviar trabalhos às instâncias de executor recém-criadas para processamento. Você pode usar grupos de executores ou rótulos para definir onde seus trabalhos são executados.
Observação
Executor avançados são atribuídos automaticamente a rótulos padrão que correspondem ao nome. Você não pode adicionar rótulos personalizados a executor avançado, mas pode usar os rótulos padrão ou o grupo do executor para enviar trabalhos a tipos específicos de executores.
Somente contas de proprietário ou administrador podem ver as configurações do executor. Usuários não administrativos podem entrar em contato com o proprietário da organização para descobrir quais executores estão habilitados. O proprietário da sua organização pode criar novos executores e grupos de executores, bem como configurar permissões para especificar quais repositórios podem acessar um grupo de executores. Para saber mais, confira Managing larger runners.
Once your runner type has been defined, you can update your workflow YAML files to send jobs to runner instances for processing. To run jobs on macOS executor avançados, update the runs-on
key in your workflow YAML files to use one of the GitHub-defined labels for macOS runners. For more information, see Available macOS executor avançados.
Available macOS executor avançados
Use the labels in the table below to run your workflows on the corresponding macOS executor avançado.
Tamanho do executor | Arquitetura | Processador (CPU) | Memória (RAM) | Armazenamento (SSD) | Rótulo do fluxo de trabalho |
---|---|---|---|---|---|
Grande | Intel | 12 | 30 GB | 14 GB | macos-latest-large , macos-13-large , macos-14-large [mais recente], macos-15-large [Versão prévia pública] |
XLarge | arm64 (M1) | 6 (+ 8 aceleração de hardware GPU) | 14 GB | 14 GB | macos-latest-xlarge , macos-13-xlarge , macos-14-xlarge [mais recente], macos-15-xlarge [Versão prévia pública] |
Observação
For macOS executor avançados, the -latest
runner label uses the macOS 12 runner image. For macOS Xlarge, the -latest
runner label uses the macOS 13 runner image
Viewing available runners for a repository
Se você tiver repo: write
acesso a um repositório, poderá exibir uma lista dos executores disponíveis para o repositório.
-
Em GitHub, acesse a página principal do repositório.
-
No nome do repositório, clique em Ações.
-
Na barra lateral esquerda, na seção "Gerenciamento", clique em Executores.
-
Review the list of available runners for the repository.
-
Opcionalmente, para copiar o rótulo de um corredor para usá-lo em um fluxo de trabalho, clique em à direita do corredor e clique em Copiar rótulo.
Observação
Os proprietários de empresas e organizações e usuários com a permissão "Manage organization runners and runner groups" podem criar executores podem criar novos executores a partir desta página. Para criar um novo executores, clique em Novo executor no canto superior direito da lista de executores para adicionar executores ao repositório.
Para obter mais informações, confira Managing larger runners e Adding self-hosted runners. Para obter mais informações sobre funções de organização personalizadas, confira Sobre as funções da organização personalizadas.
Using groups to control where jobs are run
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
Using groups to control where jobs are run
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
Using labels to control where jobs are run
Você pode passar implicitamente um rótulo para a chave runs-on
usando a sintaxe runs-on: LABEL
. Como alternativa, você pode usar a chave labels
, como mostrado no exemplo abaixo.
In this example, the runs-on
key sends the job to any available runner that has been assigned the ubuntu-20.04-16core
label:
name: learn-github-actions
on: [push]
jobs:
check-bats-version:
runs-on:
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
Qualquer pessoa com acesso de gravação a um repositório habilitado para ações pode descobrir os rótulos dos executores que estão disponíveis nesse repositório. Confira Running jobs on larger runners.
Using labels to control where jobs are run
Você pode passar implicitamente um rótulo para a chave runs-on
usando a sintaxe runs-on: LABEL
. Como alternativa, você pode usar a chave labels
, como mostrado no exemplo abaixo.
In this example, the runs-on
key sends the job to any available runner that has been assigned the windows-2022-16core
label:
name: learn-github-actions
on: [push]
jobs:
check-bats-version:
runs-on:
labels: windows-2022-16core
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: '14'
- run: npm install -g bats
- run: bats -v
Qualquer pessoa com acesso de gravação a um repositório habilitado para ações pode descobrir os rótulos dos executores que estão disponíveis nesse repositório. Confira Running jobs on larger runners.
Targeting macOS executor avançados in a workflow
To run your workflows on macOS executor avançados, set the value of the runs-on
key to a label associated with a macOS executor avançado. For a list of macOS executor avançado labels, see Available macOS executor avançados.
In this example, the workflow uses a label that is associated with macOS XL runners. The runs-on
key sends the job to any available runner with a matching label:
name: learn-github-actions-testing
on: [push]
jobs:
build:
runs-on: macos-13-xlarge
steps:
- uses: actions/checkout@v4
- name: Build
run: swift build
- name: Run tests
run: swift test
Using labels and groups to control where jobs are run
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
Usar nomes exclusivos para grupos de executores
GitHub Actions exige que os nomes de grupos de executores precisem ser exclusivos no nível da organização. Isso significa que uma organização não poderá mais criar um grupo de executores com o mesmo nome que um na empresa. Além disso, os usuários verão uma faixa de aviso em qualquer grupo de executores que compartilhem o mesmo nome de um grupo na empresa, sugerindo que o grupo da organização deve ser renomeado.
Para evitar ambiguidade, um fluxo de trabalho falhará se houver grupos de executores duplicados na organização e na empresa. Para resolver isso, você pode renomear um dos grupos de executores na organização ou na empresa ou atualizar o arquivo de fluxo de trabalho para adicionar um prefixo ao nome do grupo de executores:
org/
ouorganization/
ent/
ouenterprise/
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 ]
Using labels and groups to control where jobs are run
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
Usar nomes exclusivos para grupos de executores
GitHub Actions exige que os nomes de grupos de executores precisem ser exclusivos no nível da organização. Isso significa que uma organização não poderá mais criar um grupo de executores com o mesmo nome que um na empresa. Além disso, os usuários verão uma faixa de aviso em qualquer grupo de executores que compartilhem o mesmo nome de um grupo na empresa, sugerindo que o grupo da organização deve ser renomeado.
Para evitar ambiguidade, um fluxo de trabalho falhará se houver grupos de executores duplicados na organização e na empresa. Para resolver isso, você pode renomear um dos grupos de executores na organização ou na empresa ou atualizar o arquivo de fluxo de trabalho para adicionar um prefixo ao nome do grupo de executores:
org/
ouorganization/
ent/
ouenterprise/
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 ]
Troubleshooting executor avançados
Se você observar que os trabalhos direcionados aos seus executor avançado estão atrasados ou não estão em execução, há vários fatores que podem estar causando isso.
- Configurações de simultaneidade: talvez você tenha atingido o limite máximo de simultaneidade. Para permitir que mais trabalhos sejam executados em paralelo, atualize as configurações de dimensionamento automático para um número maior. Para saber mais, confira Managing larger runners.
- Permissões de repositório: verifique se você tem as permissões de repositório apropriadas habilitadas para seus executor avançado. Por padrão, os executores corporativos não estão disponíveis no nível do repositório e devem ser habilitados manualmente por um administrador da organização. Para saber mais, confira Managing larger runners.
- Informações de cobrança: você deve ter um cartão de crédito válido no arquivo para usar executor avançado. Depois de adicionar um cartão de crédito à sua conta, pode levar até 10 minutos para habilitar o uso dos executor avançado. Para saber mais, confira Gerenciar suas informações de pagamento e cobrança.
- Limite de gastos: o limite de gastos do GitHub Actions deve ser definido como um valor maior que zero. Para saber mais, confira Como usar orçamentos para controlar gastos com produtos mensuráveis.
- Política de uso justo: GitHub tem uma política de uso justo que começa a limitar os trabalhos com base em vários fatores, como quantos trabalhos você está executando ou quantos trabalhos estão sendo executados em toda a GitHub Actions.
- Fila de trabalhos para atribuir tempo: a fila de trabalhos para atribuir tempo refere-se ao tempo entre uma solicitação de trabalho e a GitHub atribuir uma VM para executar o trabalho. Os executores hospedados pela GitHub padrão que utilizam rótulos de fluxo de trabalho YAML prescritos (como
ubuntu-latest
) estão sempre em um estado "quente". Com executores avançados, uma máquina quente pode não estar pronta para assumir um trabalho na primeira solicitação, pois os pools para essas máquinas são menores. Como resultado, a GitHub pode precisar criar uma nova VM, o que aumenta a fila para atribuir tempo. Quando um executor está em uso, as VMs estão prontas para as execuções de fluxo de trabalho subsequentes, reduzindo a fila para atribuir tempo para futuras execuções de fluxo de trabalho nas próximas 24 horas.
Se você observar que os trabalhos direcionados aos seus executor avançado estão atrasados ou não estão em execução, há vários fatores que podem estar causando isso.
- Configurações de simultaneidade: talvez você tenha atingido o limite máximo de simultaneidade. Para permitir que mais trabalhos sejam executados em paralelo, atualize as configurações de dimensionamento automático para um número maior. Para saber mais, confira Managing larger runners.
- Permissões de repositório: verifique se você tem as permissões de repositório apropriadas habilitadas para seus executor avançado. Por padrão, os executores corporativos não estão disponíveis no nível do repositório e devem ser habilitados manualmente por um administrador da organização. Para saber mais, confira Managing larger runners.
- Informações de cobrança: você deve ter um cartão de crédito válido no arquivo para usar executor avançado. Depois de adicionar um cartão de crédito à sua conta, pode levar até 10 minutos para habilitar o uso dos executor avançado. Para saber mais, confira Gerenciar suas informações de pagamento e cobrança.
- Limite de gastos: o limite de gastos do GitHub Actions deve ser definido como um valor maior que zero. Para saber mais, confira Como usar orçamentos para controlar gastos com produtos mensuráveis.
- Política de uso justo: GitHub tem uma política de uso justo que começa a limitar os trabalhos com base em vários fatores, como quantos trabalhos você está executando ou quantos trabalhos estão sendo executados em toda a GitHub Actions.
- Fila de trabalhos para atribuir tempo: a fila de trabalhos para atribuir tempo refere-se ao tempo entre uma solicitação de trabalho e a GitHub atribuir uma VM para executar o trabalho. Os executores hospedados pela GitHub padrão que utilizam rótulos de fluxo de trabalho YAML prescritos (como
ubuntu-latest
) estão sempre em um estado "quente". Com executores avançados, uma máquina quente pode não estar pronta para assumir um trabalho na primeira solicitação, pois os pools para essas máquinas são menores. Como resultado, a GitHub pode precisar criar uma nova VM, o que aumenta a fila para atribuir tempo. Quando um executor está em uso, as VMs estão prontas para as execuções de fluxo de trabalho subsequentes, reduzindo a fila para atribuir tempo para futuras execuções de fluxo de trabalho nas próximas 24 horas.
Because macOS arm64 does not support Node 12, macOS executor avançados automatically use Node 16 to execute any JavaScript action written for Node 12. Some community actions may not be compatible with Node 16. If you use an action that requires a different Node version, you may need to manually install a specific version at runtime.
Observação
ARM-powered runners are currently in versão prévia pública and are subject to change.