Skip to content

Latest commit

 

History

History
74 lines (45 loc) · 4.66 KB

sistemas_ci.md

File metadata and controls

74 lines (45 loc) · 4.66 KB

Sistemas de Integración Continua (CI)

En este documento se especifica el procedimiento para la elección de sistemas de Integración Continua que nos permita la ejecución de tests cuando se realicen cambios en el repositorio.


📃 Criterios para elección de CI:

  1. Sistema gratuito: Para proyectos públicos como el caso de este repositorio, lo más conveniente es usar un sistema que podamos utilizar libremente.
  2. Compatible con Github Checks: Para poder realizar comprobaciones contra los cambios de código en el repositorio.
  3. Trabajar con Docker: Es decir, para testear el contenedor con la imagen base elegida en imagen docker.

🖥️ Candidatos a la elección:

CI.1 Github Actions: ✔️

  1. Sistema gratuito (para sistemas públicos): ✔️
  2. Compatible con Github Checks: Github Actions : ckecks-action ✔️
  3. Trabajar con Docker: ✔️

CI.2 Circle CI: ✔️

  1. Sistema gratuito: ✔️
  2. Compatible con Github Checks: Circle CI : Enable Github Checks ✔️
  3. Trabajar con Docker: Circle CI: Running Docker Commands ✔️

CI.3 Semaphore CI: ⚠️

  1. Sistema gratuito: Semaphore CI: Connecting GitHub with Semaphore ✔️
  2. Compatible con Github Checks: ⚠️ habrá que configurarlo para que lo use, ya que Semaphore envía statuses, no checks Github: about statuses.
  3. Trabajar con Docker: Semaphore CI: Working with Docker ✔️

CI.4 Cirrus CI: ✔️

  1. Sistema gratuito: (para repositorios públicos) ✔️
  2. Compatible con Github Checks: Cirrus CI: Manual Tasks ✔️
  3. Trabajar con Docker: ✔️

CI.5 AppVeyor: ❌

  1. Sistema gratuito: ✔️
  2. Compatible con Github Checks: ❓ Según appveyor/ci : issue 2311 comentan que no está soportado.
  3. Trabajar con Docker: AppVeyor: Docker ✔️

💡 Elección

Se opta por elegir Github Actions y Cirrus CI como sistemas de integración, que son los que cumplen todos los criterios, aunque Circle CI es una posible alternativa a considerar, y Semaphore también se puede utilizar teniendo en cuenta las cuestiones indicadas.


📄 Tareas

A continuación, se indicarán las tareas que se encargarán de hacer cada sistema:

  • GitHub Actions: Se encargará de testear la imagen de Docker implementada.
  • Cirrus CI: Se encargará de realizar pruebas sobre diferentes versiones de Python.

❔ ¿Cuándo se deben ejecutar?

Estas tareas deben lanzarse sólo cuando se producen cambios en las fuentes, es decir, en los ficheros que tengan que ver exclusivamente con código (de extensión .py). Cualquier commit realizado que contenga al menos un fichero de este tipo, provoca que se lancen las comprobaciones.


🚦 Versiones de Python

Se realizarán las pruebas en las siguientes versiones de Python, donde se han comparado todas las que hay en Status of Python Versions, y se ha decidido tomar las que sean más interesantes para el testeo de la aplicación:

  • Python 3.11.1: Esta versión es la que está en el Contenedor Docker, por lo que se hará esta comprobación en GitHub Actions. (Esta versión es la última lanzada que es estable).
  • Python 3.7: Esta versión es la más antigua que dispone de soporte, estando a punto de terminar su ciclo en 2023. Se hará la comprobación en Cirrus CI.
  • Python 3.12: Esta versión es inestable, pues está todavía en desarrollo y se espera su lanzamiento oficial a partir de 2024. Se hará la comprobación en Cirrus CI.