GitHub Actions: Primeiros Passos
Primeiros Passos com GitHub Actions: Automatizando seu Workflow GitHub Actions é uma plataforma de automação de workflow e integração contínua (CI/CD) diretamente integrada ao GitHub. Ela permite automatizar tarefas como testes, compilação, publicação e muito mais, tudo no seu repositório. Este artigo é um guia prático para começar a usar GitHub Actions, ideal para iniciantes que querem otimizar seu fluxo de desenvolvimento.

O que são GitHub Actions?

GitHub Actions são eventos disparados por eventos em seu repositório, como um push de código, a criação de um pull request ou um agendamento regular. Esses eventos disparam workflows, que são arquivos YAML que definem uma série de jobs que serão executados. Principais conceitos:
  • Workflow: Um arquivo YAML (geralmente em .github/workflows/) que define um processo automatizado.
  • Job: Uma unidade de trabalho dentro de um workflow. Pode conter múltiplos passos.
  • Step: Uma única tarefa que é executada dentro de um job. Pode ser um script shell ou uma ação pré-definida.
  • Action: Um componente reutilizável que executa uma tarefa específica. Existem actions oficiais do GitHub e actions criadas pela comunidade.
  • Runner: O servidor (virtual ou físico) que executa os jobs. GitHub oferece runners hospedados ou você pode usar seus próprios (self-hosted runners).

Criando seu Primeiro Workflow

Vamos criar um workflow simples que imprime "Olá, Mundo!" quando houver um push no branch main.
  1. Crie um diretório .github/workflows no seu repositório. Geralmente, você criará esse diretório na raiz do seu repositório.
  2. Crie um arquivo chamado main.yml (ou qualquer nome que desejar com a extensão .yml) dentro do diretório .github/workflows. A extensão .yml é importante para que o GitHub reconheça o arquivo como um workflow.
  3. Cole o seguinte código YAML no arquivo:

name: Hello World

on:
  push:
    branches: [ main ]

jobs:
  hello:
    runs-on: ubuntu-latest
    steps:
      - name: Imprime Olá Mundo!
        run: echo "Olá, Mundo!"
Explicando o código:
  • name: Hello World: Define o nome do workflow. Este nome aparecerá na aba "Actions" do seu repositório.
  • on:: Define quando o workflow será disparado. Neste caso, em um push para o branch main. Você pode configurar para disparar em outros eventos, como pull requests.
  • jobs:: Define os jobs que serão executados. Temos um job chamado hello. Um workflow pode ter múltiplos jobs que rodam em paralelo ou em sequência.
  • runs-on: ubuntu-latest: Especifica que o job será executado em uma máquina Ubuntu fornecida pelo GitHub. Existem outras opções como windows-latest e macos-latest.
  • steps:: Define os passos que serão executados dentro do job. Temos um passo que executa o comando echo "Olá, Mundo!". Cada passo representa uma ação ou um comando a ser executado.

Testando seu Workflow

  1. Faça um commit e push das alterações para o branch main do seu repositório. Este passo dispara o workflow que você definiu.
  2. Acesse a aba "Actions" no seu repositório do GitHub. Você encontrará a aba "Actions" na barra de navegação do seu repositório.
  3. Você verá o workflow "Hello World" sendo executado. Clique nele para ver os detalhes da execução. O nome do workflow será o que você definiu em name: no arquivo YAML.
  4. Dentro do workflow, você verá o job "hello" e o passo "Imprime Olá Mundo!". Clique no passo para ver a saída do comando, que deve ser "Olá, Mundo!". Aqui você pode ver os logs da execução do seu workflow.

Próximos Passos

Este é apenas o começo! Com GitHub Actions, você pode automatizar praticamente qualquer tarefa. Explore as seguintes opções:
  • Actions da comunidade: Use actions pré-definidas para tarefas comuns como deploy, linting e testes. Explore o Marketplace de Actions. Por exemplo, você pode usar uma action para fazer deploy do seu código para um servidor.
  • Variáveis de ambiente e secrets: Acesse informações sensíveis com segurança usando secrets. Secrets são usados para armazenar chaves de API, senhas e outros dados confidenciais.
  • Testes automatizados: Configure testes automatizados para garantir a qualidade do seu código. Por exemplo, você pode usar actions para rodar testes unitários e de integração automaticamente.
  • Deploy automatizado: Automatize o processo de deploy para diversos ambientes. Isso garante que seu código seja entregue de forma rápida e eficiente.
  • Matrix Builds: Execute jobs em paralelo com diferentes configurações (por exemplo, diferentes versões de Node.js). Isso é útil para testar seu código em diferentes ambientes simultaneamente.

Exemplo: Workflow para Testes com Node.js

Aqui está um exemplo de workflow que configura o Node.js e executa testes:

name: Node.js CI

on:
  push:
    branches: [ main ]
  pull_request:
    branches: [ main ]

jobs:
  build:

    runs-on: ubuntu-latest

    strategy:
      matrix:
        node-version: [14.x, 16.x, 18.x]

    steps:
      - uses: actions/checkout@v3
      - name: Use Node.js ${{ matrix.node-version }}
        uses: actions/setup-node@v3
        with:
          node-version: ${{ matrix.node-version }}
          cache: 'npm'
      - run: npm install
      - run: npm run test
Neste exemplo:
  • matrix: define que os testes serão executados para diferentes versões de Node.js.
  • actions/checkout@v3 faz o checkout do código do repositório.
  • actions/setup-node@v3 configura o Node.js com a versão especificada.
  • npm install instala as dependências do projeto.
  • npm run test executa os testes.

Recursos Adicionais

Com GitHub Actions, você pode otimizar seu fluxo de trabalho e focar no que realmente importa: o desenvolvimento do seu projeto! ```

Sem comentários