# Noções básicas sobre GitHub Actions

Aprenda os conceitos fundamentais e a terminologia essencial em GitHub Actions.

> \[!NOTE]
> No momento, não há suporte para executores hospedados no GitHub Enterprise Server no GitHub.

## 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. Você pode criar fluxos de trabalho que compilam e testam cada solicitação de pull para seu repositório ou implantam solicitações de pull mescladas em produção.

GitHub Actions vai além de apenas DevOps e permite executar fluxos de trabalho quando outros eventos acontecem em 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.

Você deve hospedar suas próprias máquinas virtuais Linux, Windows ou macOS para executar fluxos de trabalho para sua instância do GitHub Enterprise Server.

Para obter mais informações sobre como introduzir GitHub Actions à sua empresa, consulte [Apresentando GitHub Actions à sua empresa](/pt/enterprise-server@3.22/admin/managing-github-actions-for-your-enterprise/getting-started-with-github-actions-for-your-enterprise/introducing-github-actions-to-your-enterprise).

## Os componentes de GitHub Actions

Você pode configurar um GitHub Actions**fluxo de trabalho** a ser disparado quando um **evento** ocorre em seu repositório, como uma solicitação de pull sendo aberta ou um problema que está sendo criado. 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.](/assets/images/help/actions/overview-actions-simple.png)

### 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:

* Como criar e testar pull requests
* Como implantar seu aplicativo sempre que uma versão for criada
* Como 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](/pt/enterprise-server@3.22/actions/how-tos/reuse-automations/reuse-workflows).

Para saber mais, confira [Escrevendo fluxos de trabalho](/pt/enterprise-server@3.22/actions/how-tos/write-workflows).

### 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 se originar de GitHub quando alguém cria uma solicitação de pull, abre um problema ou envia uma confirmação por push para um repositório. Além disso, é possível acionar um fluxo de trabalho para execução de acordo com um [agendamento](/pt/enterprise-server@3.22/actions/reference/workflows-and-actions/events-that-trigger-workflows#schedule) ao [postar em uma API REST](/pt/enterprise-server@3.22/rest/repos/repos#create-a-repository-dispatch-event) 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](/pt/enterprise-server@3.22/actions/reference/workflows-and-actions/events-that-trigger-workflows).

### 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.

Você também pode usar uma **matriz** para executar o mesmo trabalho várias vezes, cada uma com uma combinação diferente de variáveis, como sistemas operacionais ou versões de linguagem.

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](/pt/enterprise-server@3.22/actions/how-tos/write-workflows/choose-what-workflows-do).

### Ações

Uma **ação** é um conjunto de trabalhos ou código reutilizável predefinido que executa tarefas específicas em um **fluxo de trabalho**, reduzindo a quantidade de código repetitivo que você escreve em seus arquivos de fluxo de trabalho. As ações podem executar tarefas como:

* Extraindo o seu repositório Git de GitHub
* Configurar a cadeia de ferramentas correta para seu ambiente de build
* 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 GitHub Marketplace.

Para compartilhar ações em sua empresa sem publicar as ações publicamente, você pode armazenar as ações em um repositório interno e configurar o repositório para permitir o acesso a GitHub Actions fluxos de trabalho em outros repositórios pertencentes à mesma organização ou por qualquer organização na empresa. Para saber mais, confira [Compartilhando ações e fluxos de trabalho com sua empresa](/pt/enterprise-server@3.22/actions/how-tos/reuse-automations/share-with-your-enterprise).

Para obter mais informações sobre ações, consulte [Reutilização de automações](/pt/enterprise-server@3.22/actions/how-tos/reuse-automations).

### Executores

Um **runner** é um servidor que executa seus fluxos de trabalho quando eles são disparados. Cada executor pode executar um único **trabalho** por vez.

Você deve hospedar os seus próprios executores para GitHub Enterprise Server.

Para obter mais informações, confira [Como gerenciar executores auto-hospedados](/pt/enterprise-server@3.22/actions/how-tos/manage-runners/self-hosted-runners).

## Próximas etapas

GitHub Actions pode ajudá-lo a automatizar quase todos os aspectos dos processos de desenvolvimento de aplicativos. Pronto para começar? Aqui estão alguns recursos úteis para executar suas próximas etapas com GitHub Actions:

* Para criar um GitHub Actions fluxo de trabalho, consulte [Usando modelos de fluxo de trabalho](/pt/enterprise-server@3.22/actions/how-tos/write-workflows/use-workflow-templates).
* Para fluxos de trabalho de CI (integração contínua), confira [Criar e testar seu código](/pt/enterprise-server@3.22/actions/tutorials/build-and-test-code).
* Para compilar e publicar pacotes, confira [Publicando pacotes](/pt/enterprise-server@3.22/actions/tutorials/publish-packages).
* Para implantar projetos, confira [Implantação em plataformas de terceiros](/pt/enterprise-server@3.22/actions/how-tos/deploy/deploy-to-third-party-platforms).
* Para automatizar tarefas e processos em GitHub, consulte [Gerenciando seu trabalho com o GitHub Actions](/pt/enterprise-server@3.22/actions/tutorials/manage-your-work).
* Para ver exemplos que demonstram recursos mais complexos de GitHub Actions, consulte [Escolhendo o que seu fluxo de trabalho faz](/pt/enterprise-server@3.22/actions/how-tos/write-workflows/choose-what-workflows-do). Estes exemplos detalhados explicam como testar seu código em um executor, acessar a GitHub CLI e usar recursos avançados, como simultaneidade e matrizes de teste.

## Leitura adicional

* [Sobre GitHub Actions para empresas](/pt/enterprise-server@3.22/admin/managing-github-actions-for-your-enterprise/getting-started-with-github-actions-for-your-enterprise/about-github-actions-for-enterprises)