\section{CI/CD desde fuera (como dev)} \begin{frame} \frametitle{\textbf{Flujo de trabajo propuesto (developer view)}} \begin{itemize} \item Crear rama: \texttt{feature/...} \item Hacer cambio peque\~no y con sentido. \item Abrir Merge Request / Pull Request. \item Observar checks:\\ \hspace{0.25em}-- CI corre en cada push\\ \hspace{0.25em}-- el MR/PR muestra estado verde/rojo \item Si falla: arreglar y push de nuevo. \item Merge a main y observar despliegue (CD). \end{itemize} \end{frame} \begin{frame} \frametitle{\textbf{Propuesta de cambio para los asistentes}} \textbf{Cambio sugerido} \begin{itemize} \item Cambiar el t\'itulo del hero en \texttt{frontend/src/App.svelte}. Alguien puso "UwU". \item Nuevo texto sugerido: \textit{Taller CI/CD con Jenkins}. \end{itemize} \end{frame} \begin{frame} \frametitle{\textbf{El juego: PR en Gitea + feedback autom\'atico}} \begin{columns}[T] \begin{column}{0.62\linewidth} \begin{itemize} \item Har\'eis la PR con un \textbf{usuario gen\'erico} que os damos en nuestro \textbf{Gitea}. \item Al abrir la PR: \begin{itemize} \item Jenkins lanza la \textbf{CI} (y la ver\'eis en la web de Jenkins). \item Aparece el generalísimo \texttt{jenkins-bot}. \end{itemize} \item \texttt{jenkins-bot} comentar\'a en la PR: \begin{itemize} \item si todo ha ido bien: \textbf{verde} y a mergear. \item si la hab\'eis liado: a mirar el log. \end{itemize} \end{itemize} \end{column} \begin{column}{0.36\linewidth} \centering \includegraphics[height=0.68\textheight]{images/jenkinsbot.jpg} \end{column} \end{columns} \end{frame} \begin{frame} \frametitle{\textbf{Qu\'e observar en Jenkins al hacer el MR/PR}} \begin{itemize} \item Log del stage que falla (si falla): ruff, pytest, svelte-check, build... \item En CD: tag de imagen generado (\texttt{APP\_VERSION}) y deploy. \item En la app: \begin{itemize} \item \texttt{GET /health} refleja build/commit/autor. \item \texttt{GET /builds} refleja builds recientes via Jenkins REST. \end{itemize} \end{itemize} \end{frame}