Migra tus Azure Pipelines a GitHub Actions

El mundo está dividido: ¿GitHub o Azure DevOps? ¿Azure Pipelines o GitHub Actions? Mientras la duda prevalece, buscamos descubrir cuál es la opción que mejor se ajusta a nuestras necesidades a través de la experiencia.

Si tienes tu CI y CD (u otros procesos) en Azure Pipelines, entonces te interesará esta herramienta para migrarlas a GitHub Actions.

Lo mejor de todo es que puedes traer tus automatizaciones a GitHub desde las siguientes plataformas:

  • Azure DevOps
  • CircleCI
  • GitLab
  • Jenkins
  • Travis CI

Para migrar desde cualquiera de estas opciones, puedes unirte a la waitlist de la GitHub Actions Importer, que actualmente se encuentra en public preview. Una vez dentro, la magia puede comenzar.

Este software es distribuido como un contenedor de Docker, y puedes acceder a él como una extensión dentro de la herramienta GitHub CLI. Ya empezamos a ver algunos requisitos, pero los listaremos todos para mayor claridad. Para migrar a GitHub Actions necesitarás:

  • Acceso a la preview pública de Github Actions Importer
  • Credenciales para autenticarte en GitHub Packages Container registry
  • Las siguientes instalaciones en tu equipo:
    • Docker
    • GitHub CLI

Es bastante obvio, pero no por ello vamos a dejar de recordarlo. Para que tus migraciones sean exitosas, tus pipelines o flujos de automatización en cualquier alternativa, debe ser correcta en su definición. Y aunque se dan muchas casuísticas posibles (por ejemplo, existen extensiones en Azure DevOps que añaden otros steps posibles), la idea es migrar hasta el 80% de los workflows. Siempre teniendo en cuenta los diferentes márgenes de error sobre customizaciones.

Instalar la extensión:

gh extension install github/gh-actions-importer

Verifica que la extensión está instalada:

gh actions-importer -h

A partir de entonces, una vez todo esté funcionando y listo para correr, tienes varias acciones a tomar. Puedes ejecutar un audit (para analizar la footprint de la pipeline en cuestión), un forecasting (para revisar el historial de uso de la pipeline) o ejecutar una migración a workflow de GitHub Actions.

Recordemos que se va a intentar crear un workflow equivalente, con posibles fallos y no exactamente iguales. La intervención humana se da por hecho en este tipo de procesos.

La acción dry-run creará un workflow equivalente que no quedará almacenado en ninguna parte, deberás tomarlo de forma manual para guardarlo en tu sistema de ficheros local:

gh actions-importer dry-run -h

Este comando, ya de migración, también crea el workflow equivalente, «traducido», y crea un pull request en tu repositorio de GitHub Actions para que se revise en común:

gh actions-importer migrate -h

Y prepárate para un camino lleno de ensayo y error, pero que seguro te acercará de forma automatizada a tus necesidades o a las de tu proyecto.


Si estás en proceso de utilizarlo o ya lo estás probando, no dudes en escribirnos tus opiniones e impresiones sobre GitHub Actions Importer.

Si quieres explorar y aprender más, no dudes en consultar la documentación oficial.