Explorar o GitHub Actions

Concluído

O GitHub Actions é uma plataforma de CI/CD (integração contínua e entrega contínua) que permite automatizar seus pipelines de build, teste e implantação. Ele permite criar fluxos de trabalho que criam, testam e implantam automaticamente seu código em qualquer plataforma. Vamos explorar o GitHub Actions e como os desenvolvedores as usam.

Componentes do GitHub Actions

Você pode executar um fluxo de trabalho do GitHub Actions manualmente ou configurá-lo para ser disparado quando ocorrer um evento em seu repositório. Por exemplo, uma solicitação de pull pode disparar um fluxo de trabalho que executa uma verificação de validação como parte de um processo de revisão.

Um fluxo de trabalho contém os seguintes componentes:

  • Fluxos de trabalho: contêm um ou mais trabalhos que podem ser executados em ordem sequencial ou em paralelo.
  • Trabalhos: contém uma ou mais etapas que executam um script que você define ou executam uma ação. Os trabalhos são executados dentro de seu próprio executor de máquina virtual ou dentro de um contêiner.
  • Etapas: defina as tarefas específicas a serem executadas durante a execução do fluxo de trabalho.

Cada etapa executa um único script de shell ou uma ação que é uma extensão reutilizável que pode simplificar seu fluxo de trabalho.

Fluxos de trabalho

Um fluxo de trabalho é um processo automatizado configurável que executa um ou mais trabalhos. Os fluxos de trabalho são definidos por um arquivo YAML carregado no seu repositório. Eles são executados quando disparados por um evento, executados manualmente ou executados em um agendamento definido.

Os fluxos de trabalho são definidos no diretório .github/workflows em um repositório e um repositório pode ter vários fluxos de trabalho, cada um deles pode executar um conjunto diferente de tarefas. Por exemplo, você pode ter um fluxo de trabalho para criar e testar solicitações de pull, um fluxo de trabalho para implantar seu aplicativo sempre que uma versão é criada e um fluxo de trabalho que adiciona um rótulo sempre que alguém abre um novo problema.

Eventos

Um evento é uma atividade específica em um repositório que dispara uma execução de fluxo de trabalho. Por exemplo, a atividade pode se originar do GitHub quando alguém cria uma solicitação de pull, abre um problema ou envia uma confirmação por push para um repositório. Você também pode iniciar um fluxo de trabalho para ser executado conforme uma programação, postando para uma API REST ou manualmente.

Empregos

Um trabalho é um conjunto de etapas em um fluxo de trabalho executado em um executor. Cada etapa é um script de shell executado ou uma ação que é executada. As etapas são executadas em ordem e dependem umas das outras. Como cada etapa é executada no mesmo executor, você pode compartilhar dados de uma etapa para outra. Por exemplo, você pode ter uma etapa que compila seu aplicativo seguido por uma etapa que testa o aplicativo que foi 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 entre si. Quando um trabalho assume uma dependência de outro trabalho, ele aguarda a conclusão do trabalho dependente antes que ele possa ser executado. Por exemplo, você pode ter várias tarefas de compilação de arquiteturas diferentes que não têm dependências, e uma tarefa de empacotamento que depende dessas tarefas. Os trabalhos de build são executados em paralelo e, quando são bem-sucedidos, o trabalho de empacotamento é iniciado.

Ações

Uma ação é um aplicativo personalizado para a plataforma GitHub Actions que executa uma tarefa complexa, mas repetida com frequência. Use uma ação para ajudar a reduzir a quantidade de código repetitivo que você escreve em seus arquivos de fluxo de trabalho. Uma ação pode efetuar pull do repositório git do GitHub, configurar a cadeia de ferramentas correta para seu ambiente de build ou configurar a autenticação para seu provedor de nuvem.

Você pode escrever suas próprias ações ou encontrar ações para usar em seus fluxos de trabalho no do GitHub Marketplace.

Executores

Um executor é um servidor que executa seus fluxos de trabalho quando eles são ativados. Cada executor pode executar apenas um trabalho de cada vez. O GitHub fornece o Ubuntu Linux, o Microsoft Windows e os executores do macOS para executar seus fluxos de trabalho; cada execução de fluxo de trabalho é executada em uma máquina virtual recém-provisionada. O GitHub também oferece corredores maiores, que estão disponíveis em configurações maiores.

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

Agora que você entende os componentes do GitHub Actions, vamos examinar um arquivo de fluxo de trabalho.