Introducción a github actions


En este post damos la introducción a github actions, explicamos los conceptos y creamos el primer workflow

oscar Escrito por oscar 05 June 2025 32 0

GitHub Actions es una potente herramienta de automatización dentro de GitHub que permite crear flujos de trabajo (workflows) para compilar, probar, empaquetar, y desplegar tu código automáticamente.

A continuación te dejo una guía completa para aprender GitHub Actions desde cero.

Conceptos clave GitHub actions

Workflow

Un workflow es un archivo YAML que define la automatización.

Job

Un workflow tiene uno o más jobs.

Step

Cada job tiene steps.

Un step puede:

Action

Reutilizable, puede ser una acción propia o de terceros.

Runner

Es la máquina donde corre el workflow.

Ejemplo:

Event

Define cuándo se ejecuta el workflow.

Ejemplos:

Conceptos de workflows

Clave YAML ¿Qué hace? Ejemplo
name

Define el nombre del workflow.

Aparece en la pestaña de "Actions" en GitHub.

 
on

Define los eventos que disparan el workflow.

Puede ser:

  • push: Cuando se hace un push a una rama.
  • pull_request: Cuando se crea/modifica un PR.
  • workflow_dispatch: Permite ejecutar el workflow manualmente.
  • schedule: Ejecuta según un cron.
  • release: Al crear/editar un release.
  • issues: Cuando se abre/modifica un issue.
on: [push, pull_request]
on: 
  workflow_dispatch: 
    inputs: 
      version: 
      description: 'Versión' 
      required: true 
      default: '1.0.0'
jobs

Contiene los diferentes bloques de ejecución.

Cada job es independiente y puede tener pasos (steps) y condiciones.

jobs: 
  build: 
    runs-on: ubuntu-latest
runs-on

Define el sistema operativo donde se ejecutará el job.

Valores comunes:

  • ubuntu-latest
  • windows-latest
  • macos-latest
runs-on: ubuntu-latest
steps Lista de acciones o comandos que se ejecutan dentro de un job.
steps: 
  - name: Checkout 
    uses: actions/checkout@v4
uses

Ejecuta una acción de GitHub.

Sintaxis: autor/repositorio@versión

uses: actions/setup-node@v4
run Ejecuta comandos de shell directamente.
run: npm install && npm test
name (dentro de steps) Nombre descriptivo del paso, útil para identificarlo en la interfaz.  
with Se usa con uses: para pasar parámetros a la acción.
- uses: actions/setup-node@v4 
  with: node-version: '20'
env Define variables de entorno (env) disponibles en los pasos.
env: NODE_ENV: production
if Condicional para ejecutar un paso o job.
if: github.ref == 'refs/heads/main'
needs Establece dependencias entre jobs.
jobs: 
  test: 
    needs: build
strategy Permite definir matrices de ejecución para probar múltiples versiones/configuraciones.
strategy: 
  matrix: 
    node-version: [18, 20]
continue-on-error Si es true, no falla el job aunque el paso falle.  
timeout-minutes Establece un tiempo máximo de ejecución del job.  
defaults Permite establecer valores por defecto para los pasos.
defaults: 
  run: 
    shell: bash 
    working-directory: ./frontend
outputs Permite compartir datos entre jobs.
outputs: 
  version: ${{ steps.set_version.outputs.version }}
secrets Accede a secretos definidos en GitHub (por ejemplo, tokens, contraseñas).
env: 
  TOKEN: ${{ secrets.MI_TOKEN }}
github y env contextos Se accede a información del evento actual:
${{ github.ref }} 
${{ github.actor }} 
${{ env.MI_VARIABLE }}

Ejemplo de archivo yaml

name: Mi primer workflow

on:                           # Evento
  push:
    branches: ["main"]

jobs:                         # Trabajo
  saludo:                     # Nombre del job
    runs-on: ubuntu-latest    # Runner

    steps:                    # Pasos
      - name: Mostrar mensaje
        run: echo "Hola"      # Comando

Primer proyecto práctico (desde cero)

Objetivo del proyecto

Crear un repositorio que:

Crear repositorio

  1. En GitHub → New repository
  2. Nombre: github-actions-intro
  3. Público
  4. Inicializar con README

Clonar repositorio

Procedemos a clonar el repositorio remoto en nuestro equipo local 

git clone https://github.com/tu-usuario/github-actions-intro.git
cd github-actions-intro

Crear estructura de GitHub Actions

Crear carpetas dentro del proyecto clonado:

mkdir -p .github/workflows

Crear tu primer workflow

Archivo: .github/workflows/hello-world.yml

name: Mi primer workflow

on:
  push:
    branches: ["main"]

jobs:
  saludo:
    runs-on: ubuntu-latest

    steps:
      - name: Mostrar mensaje
        run: echo "Hola, este workflow funciona 🎉"

Subir cambios

Luego de crear el archivo, procedemos a realizar el commit y subir los cambios al repositorio remoto, esto lo hacemos de la siguiente forma

git add .
git commit -m "Primer workflow de GitHub Actions"
git push origin main

Ver ejecución

Ve al repositorio en GitHub

Pestaña Actions

Verás el workflow ejecutándose

Ejecución del workflow
Ejecución del workflow

Abre el job y revisa los logs

Detalle de ejecución de workflow
Detalle de ejecución de workflow

Comentario

Debe aceptar antes de enviar