Publicamos atualizações frequentes em nossa documentação, e a tradução desta página ainda pode estar em andamento. Para obter as informações mais recentes, acesse a documentação em inglês. Se houver problemas com a tradução desta página, entre em contato conosco.

Especificações para executores hospedados no GitHub

O GitHub oferece máquinas virtuais hospedadas para executar fluxos de trabalho. A máquina virtual tem um ambiente de ferramentas, pacotes e configurações disponíveis para uso no GitHub Actions.

GitHub Actions está disponível com GitHub Free, GitHub Pro, GitHub Free para organizações, GitHub Team, GitHub Enterprise Cloud e GitHub One. GitHub Actions não está disponível para repositórios privados pertencentes a contas usando os planos de legado por repositório.

Neste artigo

Observação: O suporte de GitHub Actions em GitHub Enterprise Server 2.22 é beta pública limitada. Para revisar os requisitos de armazenamento externo e solicitar acesso ao beta, consulte "Habilitar GitHub Actions e configurar o armazenamento".

Observação: Executores hospedados em GitHub não são atualmente compatíveis com GitHub Enterprise Server. Você pode ver mais informações sobre suporte futuro planejado no Itinerário público do GitHub.

Sobre os executores hospedados no GitHub

Um executor hospedado no GitHub é uma máquina virtual hospedada pelo GitHub com o aplicativo do executor GitHub Actions instalado. O GitHub oferece executores com os sistemas operacionais Linux, Windows e macOS.

Ao usar um executor hospedada no GitHub, a manutenção e as atualizações da máquina são feitas para você. É possível executar fluxos de trabalho diretamente na máquina virtual ou em um contêiner Docker.

Você pode especificar o tipo de executor para cada trabalho em um fluxo de trabalho. Cada trabalho em um fluxo de trabalho é executado em uma nova instância da máquina virtual. Todas as etapas de um trabalho são executadas na mesma instância da máquina virtual, o que permite que ações de cada trabalho compartilhem informações usando o sistema de arquivos.

O aplicativo de executor do GitHub Actions tem código aberto. Você pode contribuir e arquivar problemas no repositório runner.

Hosts da nuvem para os executores hospedados em GitHub

O GitHub hospeda executores do Linux e Windows no Standard_DS2_v2 máquinas virtuais no Microsoft Azure com o aplicativo do executor GitHub Actions instalado. A o aplicativo do executor hospedado no GitHub é uma bifurcação do agente do Azure Pipelines. Os pacotes ICMP de entrada estão bloqueados para todas as máquinas virtuais do Azure. Portanto, é possível que os comandos ping ou traceroute não funcionem. Para obter mais informações sobre os recursos da máquina Standard_DS2_v2, consulte "Dv2 e DSv2-series" na documentação do Microsoft Azure.

GitHub hospedas executores do macOS na nuvem do macOS do próprio GitHub.

Privilégios administrativos os executores hospedados no GitHub

As máquinas virtuais Linux e macOS executam usando autenticação sem senha sudo. Quando precisar executar comandos ou instalar ferramentas que exigem mais permissões que o usuário atual possui, você pode usar sudo sem a necessidade de fornecer uma senha. Para obter mais informações, consulte o "Manual do Sudo".

As máquinas virtuais do Windows estão configuradas para ser executadas como administradores com Controle de Conta de Usuário (UAC) desativado. Para obter mais informações, consulte "Como funciona o Controle de Conta de Usuário" na documentação do Windows.

Executores e recursos de hardware compatíveis

Cada máquina virtual tem os mesmos recursos de hardware disponíveis.

  • CPU dual core
  • 7 GB de memória RAM
  • 14 GB de espaço de disco SSD
Ambiente virtualEtiqueta de fluxo de trabalho YAML
Windows Server 2019windows-latest ou windows-2019
Ubuntu 20.04ubuntu-20.04
Ubuntu 18.04ubuntu-latest ou ubuntu-18.04
Ubuntu 16.04ubuntu-16.04
macOS Big Sur 11.0macos-11.0
macOS Catalina 10.15macos-latest or macos-10.15

Nota: O ambiente virtual do Ubuntu 20.04 é atualmente fornecido apenas como visualização. A etiqueta de fluxo de trabalho YAML ubuntu-latest ainda usa o ambiente virtual Ubuntu 18.04.

Nota: O ambiente virtual do MacOS 11.0 é atualmente fornecido apenas como visualização. A etiqueta do fluxo de trabalho do YAML macos-latest ainda usa o ambiente virtual do MacOS 10.15.

Lista de registros de fluxo de trabalho do executor usado para executar um trabalho. Para obter mais informações, consulte "Visualizar histórico de execução de fluxo de trabalho".

Software compatível

As ferramentas do software incluídas em executores hospedados em GitHub são atualizadas semanalmente. Para a lista mais recente das ferramentas incluídas para cada sistema operacional do executor, consulte os links abaixo:

Nota: O ambiente virtual do Ubuntu 20.04 é atualmente fornecido apenas como visualização. A etiqueta de fluxo de trabalho YAML ubuntu-latest ainda usa o ambiente virtual Ubuntu 18.04.

Nota: O ambiente virtual do MacOS 11.0 é atualmente fornecido apenas como visualização. A etiqueta do fluxo de trabalho do YAML macos-latest ainda usa o ambiente virtual do MacOS 10.15.

Executores hospedados no GitHub incluem as ferramentas integradas padrão do sistema operacional, além dos pacotes listados nas referências acima. Por exemplo, os executores do Ubuntu e do macOS incluem grep, find e which, entre outras ferramentas-padrão.

Os registros do fluxo de trabalho incluem um link para as ferramentas pré-instaladas no executor. Para obter mais informações, consulte "Visualizar histórico de execução de fluxo de trabalho".

Se houver uma ferramenta que você queira solicitar, abra um problema em actions/virtual-environments.

Endereços IP

Observação: Se você usar uma lista de permissões de endereço IP para a sua organização ou conta corporativa de GitHub, você não poderá usar executores hospedados em GitHub. Em vez disso, deverá usar executores auto-hospedados. Para obter mais informações, consulte "Sobre os executores auto-hospedados."

Executores do Windows e Ubuntu são hospedados no Azure e têm os mesmos intervalos de endereços IP dos centros de dados Azure. Atualmente, todos os executores hospedados em GitHub do Windows e Ubuntu encontram-se nas seguintes regiões do Azure:

  • Leste dos EUA (eastus)
  • Leste dos EUA 2 (eastus2)
  • Oeste dos EU 2 (westus2)
  • Centro dos EUA (centralus)
  • Centro-sul dos EUA (southcentralus)

A Microsoft atualiza os intervalos de endereços IP Azure semanalmente em um arquivo JSON que você pode baixar no site Azure intervalos IP e tags de serviço - nuvem pública. Você pode usar esse intervalo de endereços IP se precisar de uma lista de permissão para evitar acesso não-autorizado em seus recursos internos.

O arquivo JSON contém um array chamado values (valores). Dentro desse array, você pode encontrar os endereços IP suportados em um objeto com name e id da região Azure, por exemplo "AzureCloud. astus2".

Você pode encontrar os intervalos de endereços IP compatíveis no objeto "addressPrefixes". Este é um exemplo resumido do arquivo JSON.

{
  "changeNumber": 84,
  "cloud": "Public",
  "values": [
    {
      "name": "AzureCloud.eastus2",
      "id": "AzureCloud.eastus2",
      "properties": {
        "changeNumber": 33,
        "region": "eastus2",
        "platform": "Azure",
        "systemService": "",
        "addressPrefixes": [
          "13.68.0.0/17",
          "13.77.64.0/18",
          "13.104.147.0/25",
          ...
        ]
      }
    }
  ]
}

Sistemas de arquivos

O GitHub executa ações e comandos de shell em diretórios específicos na máquina virtual. Os caminhos dos arquivos nas máquinas virtuais não são estáticos. Use as variáveis de ambiente que GitHub fornece para construir caminhos de arquivos para os diretórios home, workspace e workflow.

DiretórioVariável de ambienteDescrição
homeHOMEContém dados relacionados ao usuário. Por exemplo, esse diretório pode conter credenciais de uma tentativa de login.
workspaceGITHUB_WORKSPACEAs ações e comandos do shell executados neste diretório. Uma ação pode modificar o conteúdo desse diretório, que fica acessível nas ações subsequentes.
workflow/event.jsonGITHUB_EVENT_PATHO payload do POST do evento webhook que acionou o fluxo de trabalho. O GitHub o rescreve sempre que uma ação é executada para isolar o conteúdo do arquivo entre as ações.

Para obter uma lista das variáveis de ambiente que GitHub cria para cada fluxo de trabalho, consulte "Usar variáveis de ambiente".

Sistema de arquivos do contêiner Docker

Ações executadas em contêineres Docker têm diretórios estáticos no caminho /github. No entanto, é altamente recomendável usar as variáveis de ambiente padrão para elaborar caminhos de arquivos em contêineres do Docker.

O GitHub reserva o prefixo de caminho /github e cria três diretórios para ações.

  • /github/home
  • /github/workspace - Observação: GitHub Actions deve ser executado pelo usuário do Docker padrão (raiz). Certifique-se de seu arquivo do Dockerfile não defina a instrução USUÁRIO. Caso contrário, você não conseguirá acessar GITHUB_WORKSPACE.
  • /github/workflow

Esse documento ajudou você?

Privacy policy

Ajude-nos a tornar esses documentos ótimos!

Todos os documentos do GitHub são de código aberto. Você percebeu que algo que está errado ou não está claro? Envie um pull request.

Faça uma contribuição

Ou, aprenda como contribuir.