Folha de dicas do GitHub Actions
12 de março de 2020 // 4 min read
Tudo o que você precisa saber sobre como começar a usar o GitHub Actions
O GitHub Actions ajuda na automação dos fluxos de trabalho de desenvolvimento de software no mesmo local de armazenamento e colaboração no código. Ações individuais são trechos reutilizáveis de código que permitem criar, testar, empacotar ou implantar projetos no GitHub. Contudo, você também pode usá-las para automatizar qualquer etapa do fluxo de trabalho.
Como iniciar em quatro etapas simples
- Clique na guia “Actions” no seu repositório
O GitHub Actions está totalmente integrado ao seu código e ao restante das experiências no GitHub. - Escolha o fluxo de trabalho mais adequado ao seu tipo de projeto
O GitHub Actions oferece templates de workflow úteis para dar os primeiros passos, incluindo templates para Node.js, Rust, .NET Core e muito mais. - Personalize seu fluxo de trabalho
Você pode começar com os templates de workflow que fornecemos e personalizá-los de acordo com os requisitos exatos do seu projeto. - Após escolher o fluxo de trabalho, pressione o botão “start commit”
A configuração do fluxo de trabalho reside no seu repositório, portanto, a definição de compilação é versionada com o código finalizado.
Guia do GitHub Actions: https://help.github.com/en/actions
Perguntas e respostas sobre o GitHub Actions: github.community
Termos úteis para conhecer
Ação
Um programa que se torna um componente reutilizável para uso em fluxos de trabalho. As ações podem instalar um software para o ambiente, configurar a autenticação ou automatizar conjuntos complexos de tarefas. Você pode encontrar as ações no GitHub Marketplace ou criar as suas próprias e compartilhá-las com a comunidade.
Fluxo de trabalho
Um processo configurável e automatizado que você pode usar no repositório para criar, testar, empacotar, lançar ou implantar seu projeto. Os fluxos de trabalho são compostos por um ou mais “trabalhos” e podem ser acionados por eventos do GitHub.
Integração contínua (CI)
A prática de desenvolvimento de software de fazer commit frequente de pequenas alterações de código em um repositório compartilhado. Com o GitHub Actions, você pode criar fluxos de trabalho de CI personalizados que criam e testam seu código automaticamente. No seu repositório, você pode visualizar o status das alterações do código e os logs detalhados de cada ação no fluxo de trabalho. A CI economiza tempo dos desenvolvedores, fornecendo feedback imediato sobre alterações no código para detectar e resolver bugs com mais rapidez.
YAML
YAML significa “Yet Another Markup Language” (mais uma linguagem de marcação). É uma linguagem de marcação legível para humanos, comumente usada para arquivos de configuração, principalmente por ferramentas de software focadas em CI e DevOps. O GitHub Actions usa YAML como base para seus fluxos de trabalho de configuração.
Arquivo de fluxo de trabalho
O arquivo de configuração que define seu fluxo de trabalho do GitHub Actions. Ele é escrito em YAML e fica dentro do seu repositório do GitHub em .github/workflows. Cada arquivo nesse diretório nomeado com uma extensão .yaml define um fluxo de trabalho exclusivo.
Exemplo de arquivo de fluxo de trabalho
name: CI for Node.js Project
on:
push:
branches: [ master ]
pull_request:
branches: [ master ]
jobs:
build:
runs-on: ubuntu-latest
name: Build and Test
steps:
- uses: actions/checkout@v2
name: Check out repository
- uses: actions/setup-node@v1
name: Set up Node.js
with:
node-version: 12
- run: |
npm ci
npm run build
npm test
name: Build and Test
Uma explicação desse exemplo de fluxo de trabalho:
name
O nome do seu fluxo de trabalho será exibido na página de ações do repositório.
on
Os eventos que ocorrem no GitHub e fazem com que o fluxo de trabalho seja executado. Por exemplo, você pode executar seu fluxo de trabalho nos acionadores push e pull_request, o que permitirá compilar seu código e executar testes em um fluxo de trabalho de Integração contínua. Você pode adicionar outras restrições a esses acionadores, como executar quando determinados arquivos são alterados ou quando efetua-se push de um determinado branch.
jobs
Uma lista dos trabalhos executados como parte do fluxo de trabalho. Cada trabalho é executado de forma independente dos outros e em um ambiente virtual diferente. Os trabalhos podem ter um name para torná-los facilmente identificáveis na interface do usuário ou nos logs. Os trabalhos contêm um conjunto de steps que são executadas em ordem. Esse fluxo de trabalho tem um único trabalho: build.
jobs.<job-id>.runs-on
O tipo de executor a ser usado na execução do trabalho especificado, seja um executor fornecido pelo GitHub, seja um executor auto-hospedado configurado por você. O GitHub fornece três tipos principais de executores: Linux (denominado ubuntu-latest), Windows (denominado windows-latest) e macOS (denominado macos-latest).
jobs.<job-id>.steps
Uma lista das etapas que são executadas como parte do trabalho. Cada etapa é executada uma após a outra, todas no mesmo ambiente virtual. Por padrão, se alguma etapa falhar, todo o trabalho será interrompido. Nesse fluxo de trabalho, o trabalho build contém três etapas:
- A primeira etapa usa uma ação denominada actions/checkout@v2. Essa ação é fornecida pelo GitHub e faz o checkout do repositório no executor para que ele possa ser criado e testado.
- A segunda etapa usa uma ação denominada actions/setup-node@v1. Essa ação é fornecida pelo GitHub e configura uma versão específica do Node.js no executor. Argumentos podem ser fornecidos à ação na seção with; nesse exemplo, o argumento node-version está definido como 12, o que instrui a ação a colocar o Node.js versão 12 no PATH para etapas subsequentes.
-
A etapa final executa programas na linha de comando. Por padrão, esses programas serão executados com bash (no Linux e macOS) ou PowerShell (no Windows). Um único comando pode ser especificado ou vários comandos podem ser especificados iniciando-os com um símbolo de barra vertical (|).
Nesse caso, uma compilação de integração contínua do Node.js é feita executando npm ci para baixar e instalar pacotes do registro npm. Em seguida, é executada a compilação npm run para executar o script de compilação especificado no projeto. Por fim, é executado npm test para executar quaisquer testes unitários no projeto.
Tags