Desenvolvimento de ações personalizadas do GitHub
Aprenda a criar suas próprias ações personalizadas reutilizáveis usando JavaScript ou Docker para ampliar os recursos do GitHub Actions.
Desenvolvimento de ações personalizadas do GitHub é uma aula grátis de CI/CD with GitHub Actions & DevOps Pipelines no CoddyKit. Esta é a aula 1 de 4. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de CI/CD with GitHub Actions & DevOps Pipelines, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de CI/CD with GitHub Actions & DevOps Pipelines inclui 4 aulas no total.
Estendendo o GitHub Actions
E se você precisar de uma tarefa específica no seu fluxo de trabalho que o GitHub Actions não oferece pronto para uso? Ou talvez tenha uma lógica complexa que queira reutilizar?
As Actions personalizadas permitem criar suas próprias ferramentas reutilizáveis para fluxos de trabalho. Elas são como miniprogramas que executam uma tarefa específica, adaptados às suas necessidades.
O poder da personalização
As Actions personalizadas trazem vários benefícios para seus pipelines de CI/CD:
- Reutilização: Escrever uma vez e usar em vários fluxos de trabalho e repositórios.
- Padronização: Garantir processos consistentes em toda a sua organização.
- Encapsulamento: Ocultar uma lógica complexa por trás de uma interface simples.
- Integração: Interagir com ferramentas internas ou APIs específicas.
JavaScript ou Docker?
O GitHub Actions oferece duas maneiras principais de criar Actions personalizadas:
- Actions de JavaScript: Escritas em JavaScript (ou TypeScript), são executadas diretamente na máquina executora. São rápidas e fáceis para tarefas simples.
- Actions de contêiner Docker: Encapsulam seu ambiente e código em uma imagem do Docker. São ideais para Actions que exigem dependências ou linguagens específicas.
Definindo sua Action
Toda Action personalizada precisa de um arquivo action.yml no diretório raiz. Esse arquivo YAML funciona como um manifesto, informando ao GitHub Actions detalhes sobre sua Action:
nameedescription: O que sua Action faz.inputs: Dados que sua Action aceita.outputs: Dados que sua Action produz.runs: Como sua Action é executada (por exemplo, como um arquivo JavaScript ou uma imagem do Docker).
Exemplo simples de uma Action JS
Vamos analisar uma Action básica de JavaScript. Você precisará de um arquivo action.yml e de um arquivo index.js. O arquivo action.yml define os metadados e o ambiente de execução da Action.
# action.yml
name: 'Hello World Action'
description: 'Greets a person using a custom message'
inputs:
who-to-greet:
description: 'Who to greet'
required: true
default: 'World'
outputs:
greeting-message:
description: 'The greeting message generated'
runs:
using: 'node16'
main: 'index.js'Escrevendo o JavaScript
O arquivo index.js contém a lógica efetiva. Usamos o kit de ferramentas @actions/core para obter entradas e definir saídas.
Experimente executar este trecho simples de JavaScript para ver conceitualmente como as entradas e saídas funcionam, mesmo fora de um fluxo de trabalho completo:
// index.js (simplified for demonstration)
const core = require('@actions/core');
try {
const name = core.getInput('who-to-greet');
const message = `Hello, ${name}!`;
console.log(message);
core.setOutput('greeting-message', message);
} catch (error) {
core.setFailed(error.message);
}
// A standalone runnable example to demonstrate core logic
function runSimpleGreeting(inputName) {
const name = inputName || 'World';
const message = `Hello from runnable JS, ${name}!`;
return message;
}
console.log(runSimpleGreeting('CoddyKit'));
console.log(runSimpleGreeting());Noções básicas sobre Actions do Docker
Para ambientes mais complexos, as Actions de contêiner do Docker são poderosas. Elas incluem um Dockerfile que define a imagem do contêiner e reúne todas as dependências necessárias.
Seu action.yml fará referência a essa imagem, informando ao GitHub Actions que deve compilá-la e executá-la.
# action.yml for Docker action
name: 'Docker Hello World'
description: 'Greets a name from within a Docker container'
inputs:
who-to-greet:
description: 'Who to greet'
required: true
default: 'Docker'
outputs:
greeting-message:
description: 'The greeting message from Docker'
runs:
using: 'docker'
image: 'Dockerfile'O ambiente da sua Action
O Dockerfile especifica a imagem base, instala as dependências e define o ponto de entrada da sua Action. Isso garante que ela seja executada em um ambiente consistente e controlado.
# Dockerfile
FROM alpine:3.16
LABEL "com.github.actions.name"="Docker Hello World"
LABEL "com.github.actions.description"="Greets a name from within a Docker container"
LABEL "com.github.actions.icon"="globe"
LABEL "com.github.actions.color"="blue"
# Copy your script into the container
COPY entrypoint.sh /entrypoint.sh
RUN chmod +x /entrypoint.sh
ENTRYPOINT ["/entrypoint.sh"]Criando scripts para Actions do Docker
Dentro do contêiner do Docker, seu script de ponto de entrada (por exemplo, entrypoint.sh) recebe entradas como variáveis de ambiente (com o prefixo INPUT_). Ele define saídas escrevendo no arquivo especificado pela variável de ambiente $GITHUB_OUTPUT.
#!/bin/sh -l
# entrypoint.sh
echo "Hello from Docker, $INPUT_WHO_TO_GREET!"
GREETING="Hello from Docker, $INPUT_WHO_TO_GREET!"
echo "greeting-message=$GREETING" >> "$GITHUB_OUTPUT"Boas práticas para Actions
Ao desenvolver Actions personalizadas, considere estas dicas para criar ferramentas robustas e fáceis de manter:
- Versionamento: Use o versionamento semântico (por exemplo,
v1,v2) para garantir estabilidade. - Testes: Teste rigorosamente sua Action localmente e nos fluxos de trabalho.
- Tratamento de erros: Implemente mensagens de erro claras e falhas controladas.
- Segurança: Higienize as entradas e evite expor dados confidenciais.
- Documentação: Forneça instruções claras de uso no seu README.
Verificação do tipo de Action
Você precisa criar uma Action personalizada do GitHub que exige uma biblioteca específica de Python que não vem pré-instalada nas máquinas executoras padrão do GitHub Actions. Qual tipo de Action geralmente é mais adequado para esse cenário?
Resumo sobre Actions personalizadas
Exploramos como estender o GitHub Actions criando nossas próprias Actions personalizadas. Você aprendeu sobre os dois tipos principais: Actions de JavaScript e Actions de contêiner Docker, além do papel fundamental do arquivo action.yml. Também vimos como definir entradas, saídas e a lógica central de cada tipo, juntamente com boas práticas de desenvolvimento.
As Actions personalizadas são poderosas para promover reutilização e padronização em seus pipelines de CI/CD!
Aprenda CI/CD with GitHub Actions & DevOps Pipelines com um tutor de IA — grátis
Escreva e execute código real no seu navegador, obtenha ajuda instantânea de um tutor de IA 24/7 e continue de onde parou na web ou no app.
- Cursos
- 12
- Aulas
- 48
Perguntas Frequentes
A aula “Desenvolvimento de ações personalizadas do GitHub” é grátis?
Sim — o texto completo de “Desenvolvimento de ações personalizadas do GitHub” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de CI/CD with GitHub Actions & DevOps Pipelines, atualize para CoddyKit PRO. O curso de CI/CD with GitHub Actions & DevOps Pipelines inclui 4 aulas no total.
O que vou aprender em “Desenvolvimento de ações personalizadas do GitHub”?
Aprenda a criar suas próprias ações personalizadas reutilizáveis usando JavaScript ou Docker para ampliar os recursos do GitHub Actions. Você pratica CI/CD with GitHub Actions & DevOps Pipelines com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.
Preciso ter experiência prévia para começar CI/CD with GitHub Actions & DevOps Pipelines?
Nenhuma experiência prévia é necessária. CI/CD with GitHub Actions & DevOps Pipelines no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 1 de 4.
Quanto tempo leva a aula “Desenvolvimento de ações personalizadas do GitHub”?
A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.
Posso escrever e executar código nesta aula de CI/CD with GitHub Actions & DevOps Pipelines?
Sim. Cada aula de CI/CD with GitHub Actions & DevOps Pipelines inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.
Todas as aulas deste curso
- Desenvolvimento de ações personalizadas do GitHub
- Executores autogerenciados para ambientes locais
- Integração com sistemas corporativos
- Ações compostas e publicação no Marketplace