AlexRuiz7 / CC

Cloud Computing repository for the course 2022-2023
GNU General Public License v3.0
0 stars 0 forks source link

Hito 4: Integración Continua (CI) #16

Closed AlexRuiz7 closed 1 year ago

AlexRuiz7 commented 1 year ago

Objetivos

Issues

AlexRuiz7 commented 1 year ago

Sistemas de Integración Continua (CI) elegidos

Tras comparar algunos de los sistemas de CI disponibles, tales como Travis, Jenkins, CircleCI y GitHub Actions, se ha decidido usar como sistema principal GitHub Actions, por simplicidad, dado la gran documentación y variedad de ejemplos que ofrece, por su integración out-of-the-box y por familiaridad.

Como sistema de CI adicional se ha escogido CircleCI, por ser gratuito, ampliamente usado y fácil de configurar e integrar con GitHub.

CI en Github Actions funcionando

En la siguiente imagen podemos ver como el pull request #17 el workflow se ha ejecutado y los tests han pasado en las 3 versiones de NodeJS definidas. Adicionalmente, podríamos configurar el repositorio para impedir que un pull request se fusione si los tests no pasan.

image

CI en CircleCI funcionando

En la siguiente imagen podemos ver como el pull request #18 el workflow de CircleCI se ha ejecutado y los tests han pasado.

image

Badges

Además, añadimos los badges al README para tener visibilidad:

image

Aprovechamiento del contenedor Docker generado en el hito anterior

En el caso de GitHub Actions no se va a utilizar el contenedor creado en la práctica anterior, ya que GitHub dispone de workflows listos para usar y optimizados (mediante uso de caché). Configurar el workflow equivale a un par de clics desde la UI de GitHub.

Sin embargo, en cuanto a CircleCI, como requiere algo más de configuración y como no dispongo de experiencia previa con este sistema, se utilizará la imagen de Docker que tenemos subida y actualizada en el registro de DockerHub.