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.
Visão geral do exemplo
Este artigo usa um exemplo de fluxo de trabalho para demonstrar algumas das principais funcionalidades da CI de GitHub Actions. Quando este fluxo de trabalho é acionado, ele testa seu código usando uma matriz de combinações de teste com teste de npm
.
O diagrama a seguir mostra uma visão de alto nível das etapas do fluxo de trabalho e como elas são executadas dentro do trabalho:
Características utilizadas neste exemplo
O exemplo de fluxo de trabalho demonstra os seguintes recursps de GitHub Actions:
Funcionalidade | Implementação |
---|---|
Executando manualmente um fluxo de trabalho a partir da interface do usuário: | workflow_dispatch |
Acionando um fluxo de trabalho para funcionar automaticamente: | pull_request |
Executando um fluxo de trabalho em intervalos regulares: | cronograma |
Definindo permissões para o token: | permissões |
Controlando quantas execuções de fluxo de trabalho ou trabalhos podem ser executados ao mesmo tempo: | concorrência |
Executando o trabalho em diferentes corredores, dependendo do repositório: | runs-on |
Impedindo que um trabalho seja executado a menos que condições específicas sejam atendidas: | se |
Usando uma matriz para criar diferentes configurações de teste: | matriz |
Clonando o repositório para o executor: | actions/checkout |
Instalando o nó no executor: | actions/setup-node |
Deoendências de cache: | actions/cache |
Exemplo de fluxo de trabalho
O fluxo de trabalho a seguir foi criado pela equipe de Engenharia de GitHub Para revisar a versão mais recente deste arquivo no repositório github/docs
, consulte test.yml
.
Observação: Cada linha deste fluxo de trabalho é explicada na próxima seção em "Compreendendo o exemplo".
|
Entendendo o exemplo
A tabela a seguir explica como cada um desses recursos são usados ao criar um fluxo de trabalho de GitHub Actions.
Código | Explicação |
---|---|
|
O nome do fluxo de trabalho como ele aparecerá na aba "Ações" do repositório de GitHub. |
|
A palavra-chave 'on' permite definir os eventos que acionam quando o fluxo de trabalho é executado. Você pode definir vários eventos aqui. Para obter mais informações, consulte "Acionando um fluxo de trabalho." |
|
Adicione o evento "workflow_dispatch" se você quiser poder executar manualmente este fluxo de trabalho na interface do usuário. Para obter mais informações, consulte 'workflow_dispatch'. |
|
Adicione o evento "pull_request", para que o fluxo de trabalho seja executado automaticamente toda vez que um pull request for criado ou atualizado. Para obter mais informações, consulte 'pull_request'. |
|
Add the |
|
Modifica as permissões padrão concedidas a "GITHUB_TOKEN". Isso vai variar dependendo das necessidades do seu fluxo de trabalho. Para obter mais informações, consulte "Atribuindo permissões a trabalhos." |
|
Cria um grupo de concorrência para eventos específicos e usa o operador "||" para definir valores de recuo. Para obter mais informações, consulte "Usando concorrência." |
|
Cancela qualquer trabalho ou fluxo de trabalho em execução no mesmo grupo de concorrência. |
|
Agrupa todos os trabalhos executados no arquivo do fluxo de trabalho. |
|
Define uma trabalho com o ID "test" que é armazenado dentro da chave "jobs". |
|
Configura o trabalho a ser executado em um executor hospedado em GitHub ou em um executor auto-hospedado, dependendo do repositório que executa o fluxo de trabalho. Neste exemplo, o trabalho será executado em um runner auto-hospedado se o repositório for denominado "docs-internal" e estiver dentro da organização "github". Se o repositório não corresponder a este caminho, então ele será executado em um executor "ubuntu-latest" hospedado por GitHub. Para obter mais informações sobre essas opções consulte "Escolhendo o executor para um trabalho". |
|
Define o número máximo de minutos para deixar o trabalho ser executado antes de ser automaticamente cancelado. Para obter mais informações, consulte |
|
Esta seção define a matriz de compilações para seus trabalhos. |
|
Definir "fail-fast" como "false" impede GitHub de cancelar todos os trabalhos em andamento se qualquer trabalho da matriz falhar. |
|
Cria uma matriz denominada "test-group", com uma matriz de grupos de teste. Esses valores correspondem aos nomes dos grupos de teste que serão executados pelo |
|
Agrupa todos os passos que serão executados como parte do trabalho |
|
A palavra-chave "uses" diz para o trabalho recuperar a ação denominada "actions/checkout". Esta é uma ação que verifica seu repositório e o faz o download do runner, permitindo que você execute ações contra seu código (como, por exemplo, ferramentas de teste). Você deve usar a ação de checkout sempre que o fluxo de trabalho for executado no código do repositório ou você estiver usando uma ação definida no repositório. Algumas opções extras são fornecidas para a ação usando a tecla "with". |
|
Se o repositório atual for o repositório |
|
Se o repositório atual for o repositório |
|
Se o repositório atual for o repositório |
|
Esta etapa executa um comando para conferir objetos do LFS do repositório. |
|
Esta etapa usa a ação |
|
Esta etapa executa um comando de shell que usa uma saída da etapa anterior para criar um arquivo que contém a lista de arquivos alterados no pull request. |
|
Esta etapa usa a ação |
|
Esta etapa executa o comando do shell |
|
Este passo usa a ação 'actions/cache' para armazenar em cache o Next.js build, para que o fluxo de trabalho tente recuperar um cache da compilação e não recriá-lo do zero todas as vezes. Para obter mais informações, consulte "Dependências de cache para acelerar fluxos de trabalho". |
|
Esta etapa executa o script de compilação. |
|
Essa etapa executa os testes usando |
Próximas etapas
- Para aprender sobre os conceitos de GitHub Actions, consulte "Entendendo o GitHub Actions."
- Para mais guias passo a passo para criar um fluxo de trabalho básico, consulte "Início rápido para o GitHub Actions".
- Se você estiver confortável com os princípios básicos de GitHub Actions, você pode aprender sobre fluxos de trabalho e suas características em "Sobre fluxos de trabalho. "