0Pricing
DevOps Bootcamp · Lección

Desarrollo de GitHub Actions personalizadas

Aprenda a crear sus propias Actions personalizadas y reutilizables con JavaScript o Docker para ampliar la funcionalidad de GitHub Actions.

Desarrollo de GitHub Actions personalizadas es una lección gratuita de DevOps Bootcamp en CoddyKit. Esta es la lección 1 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de DevOps Bootcamp, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de DevOps Bootcamp incluye 4 lecciones en total.

Ampliar GitHub Actions

¿Qué ocurre si necesita una tarea específica en su flujo de trabajo que GitHub Actions no ofrece de forma predeterminada? ¿O si tiene una lógica compleja que quiere reutilizar?

Las Actions personalizadas le permiten crear sus propias herramientas reutilizables para los flujos de trabajo. Son como miniprogramas que realizan una tarea específica, adaptada a sus necesidades.

El poder de la personalización

Las Actions personalizadas ofrecen varias ventajas para sus pipelines de CI/CD:

  • Reutilización: Escribir una vez y utilizar en muchos flujos de trabajo y repositorios.
  • Estandarización: Garantizar procesos coherentes en toda su organización.
  • Encapsulación: Ocultar la lógica compleja tras una interfaz sencilla.
  • Integración: Interactuar con herramientas internas o API específicas.

¿JavaScript o Docker?

GitHub Actions admite dos formas principales de crear Actions personalizadas:

  • Actions de JavaScript: Están escritas en JavaScript (o TypeScript) y se ejecutan directamente en la máquina del runner. Son rápidas y sencillas para tareas simples.
  • Actions de contenedor Docker: Encapsulan el entorno y el código en una imagen de Docker. Son ideales para Actions que requieren dependencias o lenguajes específicos.

Definición de su Action

Toda Action personalizada necesita un archivo action.yml en su directorio raíz. Este archivo YAML funciona como un manifiesto que informa a GitHub Actions sobre su Action:

  • name y description: Qué hace su Action.
  • inputs: Datos que acepta su Action.
  • outputs: Datos que produce su Action.
  • runs: Cómo se ejecuta su Action (por ejemplo, mediante un archivo JavaScript o una imagen de Docker).

Ejemplo sencillo de una Action de JS

Veamos una Action básica de JavaScript. Necesitará un archivo action.yml y otro index.js. El archivo action.yml define los metadatos y el entorno de ejecución de la 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'

Escritura del código JavaScript

El archivo index.js contiene la lógica real. Utilizamos el toolkit @actions/core para obtener entradas y establecer salidas.

Pruebe a ejecutar este sencillo fragmento de JavaScript para comprender conceptualmente cómo funcionan las entradas y salidas, incluso fuera de un flujo de trabajo 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());

Conceptos básicos de las Actions de Docker

Para entornos más complejos, las Actions de contenedor Docker son muy potentes. Incluyen un Dockerfile que define la imagen del contenedor y agrupa todas las dependencias necesarias.

Su archivo action.yml hará referencia a esta imagen e indicará a GitHub Actions que la compile y la ejecute.

# 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'

El entorno de su Action

El Dockerfile especifica la imagen base, instala las dependencias y define el punto de entrada de su Action. Esto garantiza que la Action se ejecute en un entorno coherente y 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"]

Creación de scripts para Actions de Docker

Dentro del contenedor de Docker, el script de entrada (por ejemplo, entrypoint.sh) recibe las entradas como variables de entorno (con el prefijo INPUT_). Establece las salidas escribiendo en el archivo especificado por la variable de entorno $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"

Prácticas recomendadas para las Actions

Al desarrollar Actions personalizadas, tenga en cuenta estos consejos para crear herramientas sólidas y fáciles de mantener:

  • Control de versiones: Utilice el versionado semántico (por ejemplo, v1 y v2) para garantizar la estabilidad.
  • Pruebas: Pruebe rigurosamente su Action de forma local y en flujos de trabajo.
  • Gestión de errores: Implemente mensajes de error claros y fallos controlados.
  • Seguridad: Desinfecte las entradas y evite exponer datos confidenciales.
  • Documentación: Proporcione instrucciones de uso claras en su README.

Comprobación del tipo de Action

Necesita crear una Action personalizada de GitHub que requiera una biblioteca específica de Python que no esté preinstalada en los runners estándar de GitHub Actions. ¿Qué tipo de Action es generalmente el más adecuado para este caso?

Resumen de las Actions personalizadas

Hemos explorado cómo ampliar GitHub Actions mediante la creación de sus propias Actions personalizadas. Ha aprendido sobre los dos tipos principales: las Actions de JavaScript y las Actions de contenedor Docker, así como sobre el papel fundamental del archivo action.yml. También hemos explicado cómo definir las entradas, las salidas y la lógica principal de cada tipo, además de las prácticas recomendadas de desarrollo.

Las Actions personalizadas son muy útiles para fomentar la reutilización y la estandarización en sus pipelines de CI/CD.

Preguntas frecuentes

¿La lección «Desarrollo de GitHub Actions personalizadas» es gratis?

Sí — el texto completo de «Desarrollo de GitHub Actions personalizadas» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de DevOps Bootcamp, actualiza a CoddyKit PRO. El curso de DevOps Bootcamp incluye 4 lecciones en total.

¿Qué aprenderé en «Desarrollo de GitHub Actions personalizadas»?

Aprenda a crear sus propias Actions personalizadas y reutilizables con JavaScript o Docker para ampliar la funcionalidad de GitHub Actions. Practicas DevOps Bootcamp con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar DevOps Bootcamp?

No se requiere experiencia previa. DevOps Bootcamp en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 1 de 4.

¿Cuánto tiempo toma la lección «Desarrollo de GitHub Actions personalizadas»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de DevOps Bootcamp?

Sí. Cada lección de DevOps Bootcamp incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. Desarrollo de GitHub Actions personalizadas
  2. Runners autohospedados para entornos locales
  3. Integración con sistemas empresariales
  4. Composite Actions y publicación en el Marketplace
← Volver a DevOps Bootcamp