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 esse fluxo de trabalho é acionado, ele executa automaticamente um script que verifica se o site Docs de GitHub tem algum link quebrado. Se algum link quebrado for encontrado, o fluxo de trabalho usará a CLI de GitHub para criar um problema de GitHub com os detalhes.
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 um fluxo de trabalho em intervalos regulares: | cronograma |
Definindo permissões para o token: | permissões |
Impedindo que um trabalho seja executado a menos que condições específicas sejam atendidas: | se |
Fazendo referência a segredos em um fluxo de trabalho: | Segredos |
Clonando o repositório para o executor: | actions/checkout |
Instalando o nó no executor: | actions/setup-node |
Usando uma ação de terceiros: | peter-evans/create-issue-from-file |
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 check-all-english-links.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. |
|
Defines 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." |
|
Agrupa todos os trabalhos executados no arquivo do fluxo de trabalho. |
|
Define um trabalho com o ID "check_all_english_links", e o nome 'Verificar todos os links', que é armazenado na chave "trabalhos". |
|
Só execute o trabalho de "checkall_english_links" se o repositório for denominado "docs-internal" e estiver dentro da organização "github". Caso contrário, o trabalho é marcado como _skipped. |
|
Configura o trabalho a ser executado em um executor do Ubuntu Linux. Isso significa que o trabalho será executado em uma nova máquina virtual hospedada por GitHub. Para obter exemplos de sintaxe usando outros executores, consulte "Sintaxe de fluxo de trabalho para GitHub Actions." |
|
Cria variáveis de ambiente personalizadas e redefine a variável "GITHUB_TOKEN" incorporada para usar um secret personalizado. Essas variáveis serão referenciadas posteriormente no fluxo de trabalho. |
|
Agrupa todos os passos que serão executados como parte do trabalho "check_all_english_links". Cada trabalho no fluxo de trabalho tem sua própria seção de "etapas". |
|
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. |
|
Esta etapa usa a ação |
|
A palavra-chave |
|
Este comando "executar" executa um script armazenado no repositório em "script/check-english-links.js" e canalizado a saída para um arquivo denominado 'broken_links.md'. |
|
Se o script "check-english-links.js" detectar links quebrados e retornar um status de saída não zero (falha) e, em seguida, usar um comando de fluxo de trabalho para definir uma saída que tenha o valor da primeira linha do arquivo 'broken_links.md' (este será usado na próxima etapa). |
|
Usa a ação "peter-evans/create-issue-from-file" para criar um novo problema de GitHub. Este exemplo é fixado em uma versão específica da ação, usando o SHA de "b4f9ee0a9d4abbfc6986601d9b1a4f8f8e74c77e". |
|
Usa
|
|
Se um problema de uma execução anterior estiver aberto e atribuído a alguém, use |
|
Se um problema de uma execução anterior estiver aberto e não for atribuído a ninguém, então:
|
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. "