Skip to main content

Entendendo o GitHub Actions

Aprenda o básico de GitHub Actions, incluindo conceitos fundamentais e terminologia essencial.

Visão geral

GitHub Actions é uma plataforma de integração contínua e entrega contínua (CI/CD) que permite automatizar a sua compilação, testar e pipeline de implantação. É possível criar fluxos de trabalho que criam e testam cada pull request no seu repositório, ou implantar pull requests mesclados em produção.

GitHub Actions vai além de apenas DevOps e permite que você execute fluxos de trabalho quando outros eventos ocorrerem no seu repositório. Por exemplo, você pode executar um fluxo de trabalho para adicionar automaticamente as etiquetas apropriadas sempre que alguém cria um novo problema no repositório.

GitHub fornece máquinas virtuais do Linux, Windows e macOS para executar seus fluxos de trabalho, ou você pode hospedar seus próprios executores auto-hospedados na sua própria infraestrutura de dados ou na nuvem.

Componentes de GitHub Actions

Você pode configurar um fluxo de trabalho do GitHub Actions a ser disparado quando um evento ocorrer no seu repositório, como a abertura de uma solicitação de pull ou a criação de um problema. Seu fluxo de trabalho contém um ou mais trabalhos que podem ser executados em ordem sequencial ou em paralelo. Cada trabalho será executado em um executor próprio de máquina virtual ou em um contêiner e tem uma ou mais etapas que executam um script definido por você ou uma ação, que é uma extensão reutilizável que pode simplificar o fluxo de trabalho.

Diagrama de um evento que dispara o Executor 1 para executar o Trabalho 1, que dispara o Executor 2 para executar o Trabalho 2. Cada um dos trabalhos é dividido em várias etapas.

Fluxos de trabalho

Um fluxo de trabalho é um processo automatizado configurável que executará um ou mais trabalhos. Os fluxos de trabalho são definidos por um arquivo YAML verificado no seu repositório e será executado quando acionado por um evento no repositório, ou eles podem ser acionados manualmente ou de acordo com um cronograma definido.

Os fluxos de trabalho são definidos no diretório .github/workflows de um repositório. Um repositório pode ter vários fluxos de trabalho, cada um dos quais pode executar um conjunto diferente de tarefas, como:

  • Criar e testar pull requests.
  • Implantar seu aplicativo sempre que uma versão for criada.
  • Adicionar um rótulo sempre que um novo problema for aberto.

Você pode referenciar um fluxo de trabalho dentro de outro fluxo de trabalho. Para saber mais, confira Reutilizar fluxos de trabalho.

Para saber mais, confira Escrevendo fluxos de trabalho.

Eventos

Um evento é uma atividade específica em um repositório que dispara a execução de um fluxo de trabalho. Por exemplo, uma atividade pode originar-se de GitHub quando alguém cria uma solicitação de pull request, abre um problema ou faz envio por push de um commit para um repositório. Além disso, é possível acionar um fluxo de trabalho para execução de acordo com um agendamento ao postar em uma API REST ou de forma manual.

Para ver uma lista completa dos eventos que podem ser usados para disparar fluxos de trabalho, confira Eventos que disparam fluxos de trabalho.

Trabalhos

Um trabalho é um conjunto de etapas em um fluxo de trabalho executadas no mesmo executor. Cada etapa é um script de shell que será executado ou uma ação que será executada. As etapas são executadas em ordem e dependem uma da outra. Uma vez que cada etapa é executada no mesmo executor, você pode compartilhar dados de um passo para outro. Por exemplo, você pode ter uma etapa que compila a sua aplicação seguida de uma etapa que testa ao aplicativo criado.

Você pode configurar as dependências de um trabalho com outros trabalhos; por padrão, os trabalhos não têm dependências e são executados em paralelo. Quando um trabalho depende de outro, ele aguarda a conclusão do trabalho dependente antes de ser executado.

Por exemplo, você pode configurar vários trabalhos de build para diferentes arquiteturas sem quaisquer dependências de trabalho e um trabalho de empacotamento que dependa desses builds. Os trabalhos de build são executados em paralelo e, quando concluídos com êxito, o trabalho de empacotamento é executado.

Para saber mais, confira Escolhendo o que seu fluxo de trabalho faz.

Ações

Uma ação é um aplicativo personalizado para a plataforma GitHub Actions que executa uma tarefa complexa, mas frequentemente repetida. Use uma ação para ajudar a reduzir a quantidade de código repetitivo que você escreve nos arquivos de fluxo de trabalho. Uma ação pode extrair seu repositório Git do GitHub, configurar a cadeia de ferramentas correto para seu ambiente de build ou configurar a autenticação para seu provedor de nuvem.

Você pode gravar suas próprias ações, ou você pode encontrar ações para usar nos seus fluxos de trabalho em GitHub Marketplace.

Para obter mais informações sobre ações, consulte Compartilhar automações.

Executores

Um executor é um servidor que executa seus fluxos de trabalho quando eles são disparados. Cada executor pode executar um único trabalho por vez. GitHub fornece executores Ubuntu Linux, Microsoft Windows e macOS para executar seus fluxos de trabalho. Cada execução de fluxo de trabalho é executada em uma máquina virtual nova e recém-provisionada.

GitHub também oferecem executor maiors, que estão disponíveis em configurações maiores. Para saber mais, confira Usando executores maiores.

Se você precisar de um sistema operacional diferente ou de uma configuração de hardware específica, poderá hospedar seus próprios executores.

Para obter mais informações sobre executores auto-hospedados, consulte Hospedar seus próprios executores.

Próximas etapas

O GitHub Actions pode ajudá-lo a automatizar quase todos os aspectos dos processos de desenvolvimento do seu aplicativo. Pronto para começar? Aqui estão alguns recursos úteis para dar seus próximos passos com GitHub Actions:

  • Para criar um fluxo de trabalho do GitHub Actions, consulte "Usando modelos de fluxo de trabalho".
  • Para fluxos de trabalho de CI (integração contínua), consulte "Como criar e testar".
  • Para compilar e publicar pacotes, confira "Publicando pacotes".
  • Para implantar projetos, confira "Casos de uso e exemplos".
  • Para automatizar tarefas e processos em GitHub, confira "Como gerenciar projetos".
  • Para obter exemplos que demonstram recursos mais complexos do GitHub Actions, consulte "Casos de uso e exemplos". Esses exemplos detalhados explicam como testar seu código em um executor, acessar a CLI do GitHub e usar recursos avançados, como simultaneidade e matrizes de teste.
  • Para certificar sua proficiência em automatizar fluxos de trabalho e acelerar o desenvolvimento com o GitHub Actions, obtenha um certificado do GitHub Actions com o GitHub Certifications. Para obter mais informações, confira "Sobre GitHub Certifications".