Criando uma GitHub Action Reutilizável
No GitHub Actions, é possível criar ações personalizadas que podem ser reutilizadas em diferentes workflows. Isso é útil para tarefas comuns, como enviar notificações, fazer deploy ou realizar testes, que precisam ser realizadas em vários projetos. Neste post, vamos aprender como criar uma GitHub Action reutilizável e como integrá-la em diferentes workflows do GitHub Actions.
Uma GitHub Action reutilizável é criada como um repositório com uma estrutura bem definida, contendo um arquivo de configuração que descreve as etapas a serem executadas. Após criada, você pode referenciar essa ação em qualquer workflow de outro repositório, promovendo reutilização e consistência em suas automações.
Como Criar uma GitHub Action Reutilizável
A criação de uma GitHub Action reutilizável envolve os seguintes passos:
- Criar um repositório para a ação.
- Definir a estrutura do repositório.
- Escrever o código da ação no arquivo action.yml.
- Publicar o repositório como uma ação pública ou privada.
Vamos ver um exemplo de como fazer isso.
Exemplo: Criando uma GitHub Action para Enviar Notificações
Neste exemplo, vamos criar uma ação simples para enviar uma notificação de sucesso ou falha ao final de um workflow. A ação será escrita em Node.js, mas você pode criar ações em outras linguagens, como Python, Ruby ou Shell.
A estrutura do repositório da ação será a seguinte:
my-github-action/
├── action.yml
├── index.js
├── package.json
└── README.md
1. Criação do Arquivo action.yml
O arquivo action.yml é o arquivo de configuração da ação. Ele define os inputs, os outputs e os passos a serem executados pela ação. Veja como configurá-lo:
name: 'Send Notification'
description: 'Envia uma notificação após o término do workflow.'
inputs:
status:
description: 'O status do workflow (success ou failure)'
required: true
runs:
using: 'node12'
main: 'index.js'
2. Escrevendo o Código da Ação
Agora, criamos o arquivo index.js que executa a lógica para enviar a notificação com base no status fornecido. O código abaixo é um exemplo simples de como enviar uma notificação:
const core = require('@actions/core');
async function run() {
try {
const status = core.getInput('status');
if (status === 'success') {
console.log('Workflow completed successfully!');
} else {
console.log('Workflow failed!');
}
} catch (error) {
core.setFailed(error.message);
}
}
run();
Este script usa a biblioteca oficial @actions/core para interagir com o GitHub Actions, obter o input do status e exibir uma mensagem de notificação.
3. Publicando a Ação
Depois de criar a ação, você precisa publicá-la. Para isso, basta fazer o push do código para o repositório no GitHub. Certifique-se de que o repositório seja público ou tenha permissões adequadas para compartilhá-lo.
Como Usar a Ação em Outros Workflows
Agora que você tem sua GitHub Action criada e publicada, é hora de usá-la em outros workflows. Você pode incluir a ação no seu arquivo YAML do workflow, como mostrado abaixo:
name: Example Workflow
on:
push:
branches:
- main
jobs:
notify:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v2
- name: Send notification
uses: user/my-github-action@v1
with:
status: ${{ job.status }}
No exemplo acima, o workflow dispara após um push para o branch main e executa a ação personalizada de notificação. O parâmetro status é passado para a ação com o valor do status do job (success ou failure).
Note que você pode usar a GitHub Action em vários workflows de diferentes repositórios, apenas referenciando o repositório e a versão (no caso, v1).
Benefícios de Criar Ações Reutilizáveis
- Reusabilidade: A ação pode ser usada em vários workflows, reduzindo a duplicação de código e mantendo as automações consistentes.
- Manutenção Facilitada: Alterações em uma ação centralizada se refletem automaticamente em todos os workflows que a utilizam.
- Colaboração: Ações reutilizáveis podem ser compartilhadas entre equipes e repositórios, promovendo colaboração e melhorando a produtividade.
Agora que você sabe como criar uma GitHub Action reutilizável, experimente criar suas próprias ações e integrá-las em seus workflows. Se tiver dúvidas ou quiser compartilhar suas experiências, deixe nos comentários!
Comentários
Postar um comentário