Pular para o conteúdo principal

Criando uma GitHub Action Reutilizável

 

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:

  1. Criar um repositório para a ação.
  2. Definir a estrutura do repositório.
  3. Escrever o código da ação no arquivo action.yml.
  4. 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

Postagens mais visitadas deste blog

Funções de Ativação em Redes Neurais: Tipos, Contextos e Aplicações

  Funções de Ativação em Redes Neurais: Tipos, Contextos e Aplicações As funções de ativação são componentes essenciais das redes neurais, permitindo que os modelos aprendam e representem relações complexas nos dados. Neste post, exploraremos os principais tipos de funções de ativação, suas características e como escolher a melhor para diferentes cenários. O Que São Funções de Ativação? As funções de ativação transformam as saídas lineares dos neurônios em representações não lineares, permitindo que as redes aprendam padrões complexos. Sem essas funções, as redes seriam equivalentes a simples regressões lineares. Principais Tipos de Funções de Ativação 1. Sigmoid A função sigmoid transforma valores em uma faixa entre 0 e 1: σ(x) = 1 / (1 + e^(-x)) Características: Boa para modelar probabilidades. Propensa ao problema de vanishing gradient em redes profundas. Aplicações: Classificação binária. 2. Tanh (Tangente Hiperbólica) A função tanh transfor...

Temperatura na Inteligência Artificial Generativa: O Que é e Como Afeta os Resultados

Temperatura na Inteligência Artificial Generativa: O Que é e Como Afeta os Resultados No contexto da Inteligência Artificial generativa, especialmente em modelos de linguagem como o GPT, a "temperatura" é um parâmetro que controla a aleatoriedade nas previsões do modelo. Esse controle influencia a qualidade e a criatividade das respostas geradas, sendo uma ferramenta essencial para personalizar os resultados conforme a necessidade do usuário. O Que é Temperatura? Em modelos de IA generativa, a temperatura é um parâmetro utilizado durante o processo de amostragem de probabilidades para gerar tokens (palavras ou caracteres). O modelo gera uma distribuição de probabilidade para o próximo token com base no contexto atual. A temperatura ajusta a "curvatura" dessa distribuição, controlando a diversidade das respostas geradas. Em termos simples, a temperatura pode ser vista como uma forma de controlar o "nível de criatividade" de uma resposta. Quanto mais ba...

Introdução aos Vector Databases: A Base de Dados para Embeddings em IA Generativa

Os bancos de dados vetoriais (Vector Databases) emergiram como uma tecnologia essencial no processamento de informações em alta dimensão, especialmente no contexto de embeddings. Neste artigo, explicamos o conceito de bancos de dados vetoriais, como eles funcionam e sua importância para aplicações de IA generativa. O que são Bancos de Dados Vetoriais? Bancos de dados vetoriais são sistemas projetados para armazenar, indexar e buscar dados representados como vetores em espaços de alta dimensão. Em vez de dados tradicionais estruturados (como tabelas relacionais), esses bancos armazenam representações matemáticas de objetos, como embeddings gerados por modelos de machine learning. Um embedding é uma representação numérica de um objeto (como palavras, imagens ou usuários) em um espaço vetorial, onde a proximidade entre vetores reflete a similaridade semântica ou estrutural dos objetos originais. Como Funcionam os Bancos de Dados Vetoriais? Esses bancos de dados empregam algoritmos...