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