Acciones de Github
Análisis profundo de mi experiencia con las Acciones de Github
Básico
Para empezar, vamos a aclarar algunas posibles confusiones para aquellos que son nuevos en esto.
Las Acciones de GitHub son una plataforma de integración continua y entrega continua (CI/CD) que te permite automatizar tu pipeline de construcción, pruebas y despliegue. La integración continua (CI) es una práctica de software que requiere comprometer código frecuentemente en un repositorio compartido. Así, puedes construir y probar el código continuamente para asegurarte de que el commit no introduzca errores. Por otro lado, el despliegue continuo (CD) es la práctica de usar automatización para publicar y desplegar actualizaciones de software en tus servidores.
Solo una rápida advertencia sobre las Acciones de GitHub – esto es para asegurarnos de que todos estamos en la misma página. Ahora, vamos a sumergirnos en algunas cosas que no encontrarás en la documentación oficial, que, por cierto, es súper detallada y se puede encontrar en Documentación de Acciones de Github
Acciones de TypeScript
Así que, ¿por qué una Acción de TypeScript, te preguntas? Bueno, no tienes que usar una. Mucha gente crea sus Acciones en simples scripts de Bash. Pero GitHub realmente te permite construir tus acciones directamente en JavaScript, lo que significa que no necesitas ejecutar una Acción dentro de un contenedor.
Si estás buscando sumergirte en la creación de tu propia Acción de GitHub con TypeScript, un lugar súper sólido para empezar es la plantilla oficial. Esta plantilla es una mina de oro de buenas prácticas y, aunque al principio pueda parecer un poco excesiva con todos sus componentes, realmente es funcional. Viene cargada con soporte de compilación, pruebas, un flujo de trabajo de validación y orientación para la publicación y versionado.
Esta plantilla está principalmente orientada a hacer tus Acciones públicas, pero puedes usarla totalmente para cosas internas también. Solo salta las partes de ‘publicación y versionado’, y el resto sigue aplicando. En realidad uso la mayoría de mis Acciones internamente, así que nos enfocaremos en ese caso de uso. Una vez que estés cómodo y listo para hacer tu nueva Acción pública, es un aliento activar esos flujos de trabajo de publicación y versionado.
El ejemplo en la plantilla es bastante básico – tan básico que incluso puede sentirse inútil. Quiero decir, es solo un ejemplo, ¿verdad? Pero es un poco demasiado corto para realmente mostrarte cómo abordar escenarios más complejos. Así que, vamos a construir más ejemplos, empezando desde cosas simples y moviéndose hacia casos más intrincados donde puedes traer tu código real a tus acciones y conectarlo con bibliotecas externas. Ahí es donde las cosas se ponen realmente interesantes y ves la verdadera ventaja sobre los scripts de Bash!
Todos nuestros ejemplos incluirán Pruebas Unitarias de Jest, otro gran plus sobre Bash. Podemos simular (mock) todas nuestras funciones, declaraciones, y así sucesivamente en nuestro código para obtener una excelente cobertura de código. Una buena cobertura de código es súper importante porque cada vez que ajustamos algo en el código, incluso un poquito, podemos estar seguros de que nuestra Acción seguirá funcionando perfectamente.
Bien, ¡empecemos con nuestro primer ejemplo!