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.