Taller CI/CD #11

Open
opened 2025-11-15 12:48:12 +01:00 by husbando_enjoyer · 7 comments

Se propone realizar un taller sobre integración continua con Jenkins (open source).

  • Montar un proyecto base sobre el que iterar
  • Ejecutar pruebas de forma automatizada
  • Contextualización en el control de versiones
  • Flujo de trabajo
  • Entrega continua (construcción de artefactos)
  • Calidad de código (Sonar)
Se propone realizar un taller sobre integración continua con Jenkins (open source). - Montar un proyecto base sobre el que iterar - Ejecutar pruebas de forma automatizada - Contextualización en el control de versiones - Flujo de trabajo - Entrega continua (construcción de artefactos) - Calidad de código (Sonar)
husbando_enjoyer added the formato/taller label 2025-11-15 12:48:26 +01:00
husbando_enjoyer added this to the Propuestas de actividades project 2025-11-15 12:49:00 +01:00
husbando_enjoyer added the mu verde label 2025-11-15 12:51:32 +01:00
Member

Ideas de proyecto base

  • Parte de wikiuma (rollo, Asignaturas -> Profesores, algo básico)
  • API de precios de cafeterías (devuelve precios randoms, te muestra el menu del día (siempre de segundo plato esta la opción de pescado) y añadir luego una mejoras o modificación)
## Ideas de proyecto base - Parte de wikiuma (rollo, Asignaturas -> Profesores, algo básico) - API de precios de cafeterías (devuelve precios randoms, te muestra el menu del día (siempre de segundo plato esta la opción de pescado) y añadir luego una mejoras o modificación)
Owner

Lo veo interesente, asumo que esto es para un nivel un poco más avanzado.

Parte de wikiuma (rollo, Asignaturas -> Profesores, algo básico)

Desarrolla porfas xd

Lo veo interesente, asumo que esto es para un nivel un poco más avanzado. > Parte de wikiuma (rollo, Asignaturas -> Profesores, algo básico) Desarrolla porfas xd
husbando_enjoyer added the hackers week label 2025-11-19 21:05:42 +01:00
Author
Member

Añado:

  • En cuanto a la introducción se haría necesario mencionar el por qué del CI/CD, presentar los problemas y relacionarlos con lo que pueden haber visto o lo que verán en el trabajo. Tales como: problemas al integrar desarrollos de varios, mantener siempre una versión estable en la rama principal, y lo clásico de despliegues

  • En cuanto al proyecto base sobre el que iterar, considero que podría tener cierta complejidad. Aunque, este punto es discutible, el taller puede decaer fácilmente en algo aburrido como una clase genérica de universidad. Vería bien aumentar la complejidad del proyecto base. Tiene que haber un punto dulce.

  • La metodología del taller debe pensarse y trabajarse para evitar lo dicho en el punto anterior. Es la parte más complicada diría.

Añado: - En cuanto a la introducción se haría necesario mencionar el por qué del CI/CD, presentar los problemas y relacionarlos con lo que pueden haber visto o lo que verán en el trabajo. Tales como: problemas al integrar desarrollos de varios, mantener siempre una versión estable en la rama principal, y lo clásico de despliegues - En cuanto al proyecto base sobre el que iterar, considero que podría tener cierta complejidad. Aunque, este punto es discutible, el taller puede decaer fácilmente en algo aburrido como una clase genérica de universidad. Vería bien aumentar la complejidad del proyecto base. Tiene que haber un punto dulce. - La metodología del taller debe pensarse y trabajarse para evitar lo dicho en el punto anterior. Es la parte más complicada diría.
Author
Member

En cuanto a @Chacluclu,

API de precios de cafeterías (devuelve precios randoms, te muestra el menu del día (siempre de segundo plato esta la opción de pescado) y añadir luego una mejoras o modificación)

Si se quiere tirar por ahí creo que merece la pena complicarlo un poco. Vería bien incluso añadir un frontend sencillo para ejemplificar la construcción y despliegue de dos artefactos (front y back) junto con los tests de cada parte. Para simplificar la construcción se puede ofrecer un Dockerfile, que se usa bastante en lo laboral para luego hacer despliegues en Kubernetes de forma automatizada. Así la construcción del artefacto en Jenkins queda limpia y nos podemos centrar en otras cosas.

Sigue pendiente aterrizar el flujo del taller para no caer en un estilo docente. Quizá buscando maneras de involucrar a los asistentes: que toquen alguna parte del código en sus propias ramas y vean cómo se actualiza el producto final de forma prácticamente inmediata. O mostrar qué ocurre cuando se introduce un error, para que así puedan experimentar.

En cuanto a @Chacluclu, > API de precios de cafeterías (devuelve precios randoms, te muestra el menu del día (siempre de segundo plato esta la opción de pescado) y añadir luego una mejoras o modificación) Si se quiere tirar por ahí creo que merece la pena complicarlo un poco. Vería bien incluso añadir un frontend sencillo para ejemplificar la construcción y despliegue de dos artefactos (front y back) junto con los tests de cada parte. Para simplificar la construcción se puede ofrecer un `Dockerfile`, que se usa bastante en lo laboral para luego hacer despliegues en Kubernetes de forma automatizada. Así la construcción del artefacto en Jenkins queda limpia y nos podemos centrar en otras cosas. Sigue pendiente **aterrizar el flujo del taller para no caer en un estilo docente**. Quizá buscando maneras de involucrar a los asistentes: que toquen alguna parte del código en sus propias ramas y vean cómo se actualiza el producto final de forma prácticamente inmediata. O mostrar qué ocurre cuando se introduce un error, para que así puedan experimentar.
Member

@husbando_enjoyer se puede añadir el frontend para hacer el paripé. Menos mal que comentas lo de como involucrar a la gente, porque lo que se me había ocurrido es que hagan PR al repo, pero no se si podrán

@husbando_enjoyer se puede añadir el frontend para hacer el paripé. Menos mal que comentas lo de como involucrar a la gente, porque lo que se me había ocurrido es que hagan PR al repo, pero no se si podrán
Author
Member

Es un punto que hay que tratar de forma extensa. Pues también debemos pensar en el propio Jenkins, si se quiere hacer eso entonces debemos alojarlo nosotros como tal con las implicaciones que ello conlleva. Pero también estaría bien que los asistentes pues trasteasen con el propio pipeline como tal. Queda pendiente de concretar en alguna reunión.

Es un punto que hay que tratar de forma extensa. Pues también debemos pensar en el propio Jenkins, si se quiere hacer eso entonces debemos alojarlo nosotros como tal con las implicaciones que ello conlleva. Pero también estaría bien que los asistentes pues trasteasen con el propio *pipeline* como tal. Queda pendiente de concretar en alguna reunión.
Member

Me parece un buen taller aunque es más del software(tema que no controlo mucho). Pienso que quizás se puede reducir el nivel de entrada tipo combinando este taller con varios conceptos más sencillos y hacer 1 taller tipo All-in-one 'Creando su proyecto de software libre':

  • Creando un repo(bitbucket, gitlab o github o nuestro GITEA??)
  • Elegiendo las licencias(explicar un poco sobre MIT, los GPLs, BSDs, etc,.)
  • Hacer una pequeña app web simple(para que se puede mostrar lo de CI/CD).
  • Hacer un pipeline básico para CI y CD(con Kamal quizás será más sencillo).. Obviamente hay que configurar algún servidor web y hay que mirar como no entrar mucho en tema mucho config o quizás usar algo como heroku pero que sea opensource ns..

Quizás @ferreiro puede desarrollarlo más porque ha creado varios proyectos opensource y yo como he dicho tengo poca xp con el desarrollo de sw..

Me parece un buen taller aunque es más del software(tema que no controlo mucho). Pienso que quizás se puede reducir el nivel de entrada tipo combinando este taller con varios conceptos más sencillos y hacer 1 taller tipo All-in-one 'Creando su proyecto de software libre': - Creando un repo(bitbucket, gitlab o github o nuestro GITEA??) - Elegiendo las licencias(explicar un poco sobre MIT, los GPLs, BSDs, etc,.) - Hacer una pequeña app web simple(para que se puede mostrar lo de CI/CD). - Hacer un pipeline básico para CI y CD(con Kamal quizás será más sencillo).. Obviamente hay que configurar algún servidor web y hay que mirar como no entrar mucho en tema mucho config o quizás usar algo como heroku pero que sea opensource ns.. Quizás @ferreiro puede desarrollarlo más porque ha creado varios proyectos opensource y yo como he dicho tengo poca xp con el desarrollo de sw..
husbando_enjoyer moved this to En desarrollo in Propuestas de actividades on 2025-11-23 12:20:45 +01:00
Chacluclu self-assigned this 2025-11-23 12:21:55 +01:00
ferreiro was assigned by Chacluclu 2025-11-23 12:21:55 +01:00
husbando_enjoyer was assigned by Chacluclu 2025-11-23 12:21:55 +01:00
Sign in to join this conversation.