Back to Blog
githubdeveloper-toolsautomationnews

GitHub Actions y Codespaces: Por qué las actualizaciones de 2025 son imprescindibles para los desarrolladores

Explore las transformadoras actualizaciones de 2025 para GitHub Actions y Codespaces. Aprenda sobre los anclajes YAML, la seguridad OIDC, las preconstrucciones y la integración de la IA. ¡No se pierda estos cambios críticos!

DataFormatHub Team
December 20, 202510 min read
Share:
GitHub Actions y Codespaces: Por qué las actualizaciones de 2025 son imprescindibles para los desarrolladores

El panorama de la integración y el desarrollo continuos es una bestia implacable, en constante evolución, y honestamente, es emocionante seguir el ritmo. Como desarrollador que prácticamente vive en el ecosistema de GitHub, he estado trabajando con la última suite de mejoras para GitHub Actions y Codespaces, y déjenme decirles, algunas de estas actualizaciones son genuinamente transformadoras, mientras que otras... bueno, todavía están encontrando su lugar.

Es evidente que GitHub está presionando con fuerza para solidificar su posición como la plataforma para la experiencia del desarrollador, desde el commit de código hasta el despliegue en la nube. Lo que es particularmente llamativo es el trabajo fundamental que han realizado, junto con las nuevas características brillantes. Sumérjámonos en lo que se ha estado cocinando a finales de 2024 y durante 2025.

GitHub Actions: La sala de máquinas recibe un turbo

Primero, reconozcamos el elefante en la habitación: la pura escala a la que opera GitHub Actions. Estamos hablando de una plataforma que, a finales de 2025, estaba manejando asombrosos 71 millones de trabajos por día. Este tipo de carga requiere una ingeniería seria, y GitHub respondió emprendiendo una reestructuración sustancial de sus servicios backend centrales a principios de 2024. Esta no es una característica que vea directamente, pero es el fundamento sobre el cual se basan todas estas otras mejoras, prometiendo una mejor confiabilidad, rendimiento y escalabilidad. Es el tipo de trabajo sólido y entre bastidores que hace que todo lo demás se sienta más robusto.

Flexibilidad y mantenibilidad del flujo de trabajo: No más dolores de cabeza con YAML (en su mayoría)

He estado esperando esto: Anclajes YAML. Si alguna vez ha luchado con flujos de trabajo de GitHub Actions extensos y repetitivos, especialmente en monorepos o proyectos con pasos de CI/CD estandarizados, conoce el dolor. Las configuraciones duplicadas para diferentes trabajos o pasos son una pesadilla de mantenimiento. La introducción de los anclajes YAML es una solución práctica y eficiente a esto. Le permite definir un bloque de YAML una vez y referenciarlo en todo su flujo de trabajo, reduciendo significativamente la repetición y mejorando la legibilidad.

Aquí hay una rápida mirada a cómo limpia las cosas:

# .github/workflows/my-ci.yaml
name: CI with Anchors

on: [push, pull_request]

jobs:
  # Define a reusable step group using an anchor
  .setup_node_steps: &setup_node
    - name: Checkout repository
      uses: actions/checkout@v4
    - name: Set up Node.js
      uses: actions/setup-node@v4
      with:
        node-version: '20'
        cache: 'npm'
    - name: Install dependencies
      run: npm ci

  build_frontend:
    runs-on: ubuntu-latest
    steps:
      - *setup_node # Reference the anchor here
      - name: Build frontend
        run: npm run build:frontend

  test_backend:
    runs-on: ubuntu-latest
    steps:
      - *setup_node # And here!
      - name: Run backend tests
        run: npm test --workspace=backend

Esto es genuinamente impresionante porque aborda una frustración de larga data para cualquiera que administre pipelines complejos. No es revolucionario, pero es una gran mejora en la calidad de vida.

Complementando esto, GitHub ha mejorado significativamente los flujos de trabajo reutilizables. Los límites se han aumentado de 4 a 10 niveles de anidamiento y de 20 a 50 llamadas de flujo de trabajo por ejecución. Para organizaciones más grandes o proyectos que se esfuerzan por lograr pipelines verdaderamente modulares y DRY (Don't Repeat Yourself), esto es una bendición. Ahora puede construir abstracciones más sofisticadas y en capas, donde un flujo de trabajo de despliegue de alto nivel puede invocar varios subflujos de trabajo especializados, cada uno de los cuales puede llamar a otros. Esto es fundamental para escalar la automatización y mantener la coherencia en diferentes servicios o componentes.

Y hablando de flexibilidad, el número de entradas para workflow_dispatch se ha aumentado de 10 a 25. Esto puede parecer menor, pero para la automatización de autoservicio (piense en despliegues parametrizados o ejecuciones de pruebas configurables activadas manualmente), significa que puede exponer un conjunto mucho más rico de opciones a los usuarios, haciendo que sus flujos de trabajo sean más versátiles sin recurrir a soluciones alternativas engorrosas.

Seguridad y auditabilidad: OIDC se vuelve granular

La seguridad sigue siendo una preocupación primordial, y la integración de GitHub Actions con OpenID Connect (OIDC) ha sido un cambio de juego para los despliegues seguros en la nube, eliminando la necesidad de credenciales de la nube de larga duración. La reciente adición de nuevas afirmaciones de token OIDC, particularmente check_run_id, es donde las cosas se ponen realmente interesantes para los equipos de seguridad y cumplimiento.

Anteriormente, si bien podía correlacionar un token OIDC con una ejecución de flujo de trabajo (run_id), era más difícil determinar el trabajo exacto o la instancia de cómputo que lo generó para un paso específico. Con check_run_id junto con run_id y run_attempt, obtiene un control de acceso basado en atributos granular y una auditabilidad mejorada. Esto significa que puede crear políticas de IAM en su proveedor de la nube (AWS, Azure, GCP) que no solo digan "permitir que el flujo de trabajo de este repositorio se implemente", sino más bien "permitir que este trabajo específico dentro de esta ejecución de flujo de trabajo acceda a este recurso específico".

Considere un escenario en el que tiene un flujo de trabajo con varios trabajos: build, test, deploy-staging, deploy-production. Quiere asegurarse de que solo el trabajo deploy-production pueda asumir un rol con permisos de despliegue de producción. Con la nueva afirmación check_run_id, su política de confianza en AWS IAM, por ejemplo, ahora puede ser increíblemente precisa:

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Effect": "Allow",
      "Principal": {
        "Federated": "arn:aws:iam::<AWS_ACCOUNT_ID>:oidc-provider/token.actions.githubusercontent.com"
      },
      "Action": "sts:AssumeRoleWithWebIdentity",
      "Condition": {
        "StringEquals": {
          "token.actions.githubusercontent.com:aud": "aws.workload.identity",
          "token.actions.githubusercontent.com:sub": "repo:my-org/my-repo:environment:production:ref:refs/heads/main"
        },
        "StringLike": {
          "token.actions.githubusercontent.com:job_workflow_ref": "my-org/my-repo/.github/workflows/deploy.yml@refs/heads/main",
          "token.actions.githubusercontent.com:check_run_id": "*"
        }
      }
    }
  ]
}

Nota: Este es un ejemplo conceptual. check_run_id se utilizaría en una condición StringEquals adicional para coincidir con el ID de un trabajo específico, o se combinaría con otras afirmaciones para reglas más complejas.

El check_run_id permite a los equipos de plataforma correlacionar un token OIDC específico con el trabajo y la computación exactos que ejecutaron la solicitud. Esto es fundamental para cumplir con los requisitos de cumplimiento, mejorar la trazabilidad y revocar rápidamente el acceso si se ve comprometido un trabajo específico, en lugar de tener que invalidar las credenciales de toda una ejecución de flujo de trabajo. Es un paso sólido hacia los despliegues de confianza cero.

Evolución y rendimiento del ejecutor

GitHub ha continuado su avance constante de mejoras en los ejecutores. Vimos la muy esperada migración de ubuntu-latest a ubuntu-24 entre diciembre de 2024 y enero de 2025, junto con la retirada de ubuntu-20 para abril de 2025. Si bien esta es una evolución necesaria, vale la pena una comprobación de la realidad: estas actualizaciones de imagen pueden y romperán los flujos de trabajo si confía en versiones de paquetes o herramientas específicas que podrían haber cambiado o eliminado en las nuevas imágenes. Siempre fije su runs-on a una versión específica (ubuntu-22.04 o ubuntu-24.04) y pruebe a fondo.

En el frente del rendimiento, los ejecutores alojados en ARM64 para repositorios públicos y las imágenes macOS 15 y Windows 2025 ya están disponibles en general. Los ejecutores macOS M2, en particular, ofrecen un rendimiento mejorado y aceleración de la GPU, lo cual es fantástico para el desarrollo móvil, el desarrollo de juegos o cualquier flujo de trabajo que se beneficie de Apple Silicon. Estas son actualizaciones sólidas y prácticas que impactan directamente en los tiempos de compilación y la productividad de los desarrolladores.

El elefante en la habitación: los precios de Actions

Ahora para la parte menos entusiasta: los cambios en los precios de GitHub Actions. Este ha sido un tema candente, y con razón. GitHub anunció una reducción en los precios de los ejecutores alojados en GitHub (hasta un 39% a partir del 1 de enero de 2026), lo cual es una buena noticia para muchos. Sin embargo, también introdujeron un nuevo cargo de "plataforma en la nube" de $0.002 por minuto para el uso de ejecutores autohospedados en repositorios privados, originalmente programado para el 1 de marzo de 2026.

Esta medida provocó una considerable reacción de la comunidad. Durante años, uno de los principales atractivos de los ejecutores autohospedados fue aprovechar el plano de control de GitHub para la orquestación sin pagar por los minutos de ejecución, lo que lo hacía muy rentable para las grandes empresas con su propia infraestructura de cómputo. Esta nueva tarifa monetiza directamente ese plano de control, cambiando fundamentalmente la ecuación de costos para muchas organizaciones.

En crédito a GitHub, escucharon. A partir del 15 de diciembre de 2025, han pospuesto el cambio de facturación de los ejecutores autohospedados para reevaluar su enfoque, reconociendo que "no dieron en el blanco" con los comentarios de la comunidad. Esta es una verificación de la realidad crucial. Si bien los recortes de precios de los ejecutores alojados son apreciados, el intento de monetizar la orquestación de los ejecutores autohospedados destaca la tensión entre proporcionar una plataforma de nivel gratuito robusta y garantizar un crecimiento sostenible. Es un recordatorio de que incluso las herramientas más queridas operan bajo realidades económicas. Por ahora, el impuesto de los ejecutores autohospedados está en espera, pero la conversación no ha terminado.

GitHub Codespaces: Entornos de desarrollo nativos de la nube madurando

GitHub Codespaces ha madurado constantemente, cumpliendo verdaderamente la promesa de entornos de desarrollo en la nube instantáneos y reproducibles. Para mí, la propuesta de valor central sigue siendo la misma: incorporar nuevos miembros del equipo en minutos, no en días, y entornos consistentes para cada desarrollador.

El paradigma de Dev Container: Una base sólida

La base de Codespaces es, por supuesto, la especificación de Dev Container (devcontainer.json). Este enfoque de configuración como código le permite definir todo lo que necesita su entorno de desarrollo: imagen base, herramientas, versiones de tiempo de ejecución, extensiones de VS Code, reenvío de puertos y comandos posteriores a la creación. Esto no se trata solo de conveniencia; se trata de eliminar el síndrome de "funciona en mi máquina" y garantizar que cada desarrollador, ya sea local o en la nube, trabaje con un conjunto de herramientas idéntico.

Las características personalizadas de Dev Container le permiten modularizar y compartir configuraciones de entorno comunes, lo cual es increíblemente poderoso para proyectos complejos o equipos que mantienen múltiples servicios.

Acelerar la incorporación con preconstrucciones

Para repositorios más grandes o proyectos con dependencias pesadas, el tiempo de creación inicial de Codespace a veces aún podía ser un arrastre. Aquí es donde brillan las preconstrucciones de Codespaces. Una preconstrucción esencialmente precompila los componentes principales de un Codespace (código fuente, dependencias, extensiones, configuraciones) para un repositorio, rama y devcontainer.json dados. Cuando un desarrollador luego inicia un Codespace, se extrae de esta plantilla "lista para usar", reduciendo drásticamente el tiempo de creación.

Las optimizaciones recientes significan que incluso si el flujo de trabajo de preconstrucción más reciente para una rama podría estar fallando, una preconstrucción activa seguirá estando disponible. Esta es una mejora sólida, que garantiza que los pequeños contratiempos en el proceso de preconstrucción no bloqueen por completo a los desarrolladores para obtener un entorno instantáneo. He visto que esto ahorra innumerables horas, especialmente en proyectos con grandes node_modules o compilaciones de imágenes de Docker complejas. Genuinamente transforma la experiencia de incorporación de una tarea en una realidad de hacer clic y codificar.

Desarrollo nativo de la IA: Copilot y modelos de GitHub

GitHub Universe 2024 (octubre de 2024) destacó un fuerte impulso hacia las experiencias de desarrollo nativas de la IA dentro de Codespaces. La integración más profunda de GitHub Copilot ahora incluye soporte multi-modelo (Anthropic's Claude 3.5 Sonnet, Google's Gemini 1.5 Pro y OpenAI's GPT-4o). Esto significa que los desarrolladores pueden elegir el mejor modelo de IA para su tarea de codificación específica directamente dentro de Copilot Chat en Codespaces.

Aún más interesante es GitHub Models, ahora en vista previa pública. Este patio de recreo interactivo de modelos permite a los desarrolladores e ingenieros de IA experimentar, comparar y construir con varios modelos de IA directamente dentro de su entorno Codespaces. Incluye soporte de SDK, lo que permite un ciclo de retroalimentación más estrecho para desarrollar características impulsadas por la IA o incluso agentes de IA. Aquí es donde Codespaces comienza a sentirse menos como un simple IDE en la nube y más como una plataforma de desarrollo holística para la era de la IA. Puede iniciar un Codespace, importar un entorno de IA preconfigurado e inmediatamente comenzar a iterar en indicaciones o integraciones de modelos sin fricción de configuración local.

Más allá de VS Code: Ampliando horizontes

Si bien VS Code sigue siendo el cliente estrella, GitHub ha ampliado el soporte de Codespaces para incluir JetBrains IDEs y JupyterLab en beta. Este es un movimiento inteligente, que reconoce que los desarrolladores tienen diversas preferencias. Dar a los usuarios la opción de conectar su IDE familiar a un entorno en la nube potente amplía significativamente el atractivo y la utilidad de Codespaces.

Costo y seguridad: Beneficios prácticos

Para los desarrolladores individuales, el nivel gratuito para cuentas personales (120 horas de núcleo y 15 GB de almacenamiento por mes) hace que Codespaces sea una herramienta increíblemente accesible para proyectos personales o para explorar nuevas tecnologías.

Desde una perspectiva de seguridad, Codespaces ofrece un aislamiento robusto. Cada Codespace es un entorno distinto y efímero. Esto reduce significativamente el riesgo de la cadena de suministro; si está experimentando con una biblioteca no confiable o un proyecto de código abierto, puede iniciarlo en un Codespace aislado sin exponer su máquina local u otros proyectos a posibles vulnerabilidades. Es un límite de seguridad práctico que es difícil de lograr con el desarrollo local.

El camino por delante: Mis dos centavos

Los desarrollos recientes en GitHub Actions y Codespaces pintan un cuadro de una plataforma que se esfuerza por lograr una infraestructura robusta y una experiencia de desarrollador refinada. La reconstrucción central del núcleo para Actions y las continuas mejoras en las preconstrucciones de Codespaces demuestran un compromiso con el rendimiento y la confiabilidad, que son innegociables para los usuarios de alto volumen.

La flexibilidad del flujo de trabajo ofrecida por los anclajes YAML y los flujos de trabajo reutilizables mejorados son una victoria práctica para la mantenibilidad y la escalabilidad. Las afirmaciones OIDC granulares son una actualización de seguridad genuina, que brinda a los equipos de plataforma las herramientas que necesitan para implementaciones de confianza cero sofisticadas. Estoy emocionado de ver cómo los equipos aprovechan check_run_id para controles de acceso verdaderamente robustos.

Sin embargo, los recientes cambios de precios para los ejecutores de Actions autohospedados, incluso con el aplazamiento, destacan el desafío continuo de equilibrar los costos de la plataforma con las expectativas de los usuarios. La rápida respuesta de GitHub a los comentarios de la comunidad es una señal positiva, pero subraya la necesidad de una comunicación transparente y una cuidadosa consideración de cómo tales cambios impactan a diversas bases de usuarios.

Codespaces, con su ecosistema de contenedores de desarrollo en evolución, preconstrucciones y capacidades de IA que se integran rápidamente, se está convirtiendo en una herramienta indispensable para la creación rápida de prototipos, la incorporación perfecta y el desarrollo colaborativo. La capacidad de iniciar rápidamente un entorno listo para la IA y experimentar con diferentes modelos es particularmente atractiva para el ritmo acelerado del desarrollo de la IA.

En general, GitHub continúa superando los límites. Si bien siempre hay imperfecciones y áreas de mejora (me gustaría ver un control aún más granular sobre la administración del ciclo de vida de Codespaces y quizás desgloses de costos más transparentes para escenarios complejos), la trayectoria general es de innovación poderosa y centrada en el desarrollador. Es un momento emocionante para construir en GitHub, y estoy ansioso por ver lo que lanzan a continuación, especialmente cómo abordan los precios de los ejecutores autohospedados de una manera que satisfaga a sus usuarios empresariales.


Fuentes


🛠️ Herramientas relacionadas

Explore estas herramientas de DataFormatHub relacionadas con este tema:


📚 También podría gustarle