Compare commits

...

3 Commits

Author SHA1 Message Date
b6f0339808 Update contents (v1) 2026-02-14 19:34:25 +01:00
70071f5b1d Add latexmkrc file 2026-02-14 19:33:58 +01:00
163d55e6fc Delete files 2026-02-14 17:00:36 +01:00
10 changed files with 27 additions and 229 deletions

1
slides/.latexmkrc Normal file
View File

@@ -0,0 +1 @@
$pdflatex = 'xelatex -interaction=nonstopmode -synctex=1 %O %S';

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 153 KiB

BIN
slides/images/pointat.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 MiB

View File

@@ -1,179 +0,0 @@
% $ biblatex auxiliary file $
% $ biblatex bbl format version 3.3 $
% Do not modify the above lines!
%
% This is an auxiliary file used by the 'biblatex' package.
% This file may safely be deleted. It will be recreated by
% biber as required.
%
\begingroup
\makeatletter
\@ifundefined{ver@biblatex.sty}
{\@latex@error
{Missing 'biblatex' package}
{The bibliography requires the 'biblatex' package.}
\aftergroup\endinput}
{}
\endgroup
\refsection{0}
\datalist[entry]{apa/apasortcite//global/global/global}
\entry{fowler_ci}{online}{}{}
\name{author}{1}{}{%
{{un=0,uniquepart=base,hash=312ac886938a9b2be4f8eb607567fe4c}{%
family={Fowler},
familyi={F\bibinitperiod},
given={Martin},
giveni={M\bibinitperiod},
givenun=0}}%
}
\strng{namehash}{312ac886938a9b2be4f8eb607567fe4c}
\strng{fullhash}{312ac886938a9b2be4f8eb607567fe4c}
\strng{fullhashraw}{312ac886938a9b2be4f8eb607567fe4c}
\strng{bibnamehash}{312ac886938a9b2be4f8eb607567fe4c}
\strng{authorbibnamehash}{312ac886938a9b2be4f8eb607567fe4c}
\strng{authornamehash}{312ac886938a9b2be4f8eb607567fe4c}
\strng{authorfullhash}{312ac886938a9b2be4f8eb607567fe4c}
\strng{authorfullhashraw}{312ac886938a9b2be4f8eb607567fe4c}
\field{sortinit}{F}
\field{sortinithash}{2638baaa20439f1b5a8f80c6c08a13b4}
\field{extradatescope}{labelyear}
\field{labeldatesource}{}
\true{uniqueprimaryauthor}
\field{labelnamesource}{author}
\field{labeltitlesource}{title}
\field{title}{Continuous Integration}
\field{urlday}{18}
\field{urlmonth}{1}
\field{urlyear}{2026}
\field{year}{2023}
\field{urldateera}{ce}
\verb{urlraw}
\verb https://martinfowler.com/articles/continuousIntegration.html
\endverb
\verb{url}
\verb https://martinfowler.com/articles/continuousIntegration.html
\endverb
\endentry
\entry{humble2010continuous}{book}{}{}
\name{author}{2}{}{%
{{un=0,uniquepart=base,hash=9e89d796d06f74d6551850b1c3bff900}{%
family={Humble},
familyi={H\bibinitperiod},
given={Jez},
giveni={J\bibinitperiod},
givenun=0}}%
{{un=0,uniquepart=base,hash=e88f486e16133b897ffb346a75f56d96}{%
family={Farley},
familyi={F\bibinitperiod},
given={David},
giveni={D\bibinitperiod},
givenun=0}}%
}
\list{location}{1}{%
{Boston}%
}
\list{publisher}{1}{%
{Addison-Wesley}%
}
\strng{namehash}{06b8a2e32b3cda03592e143a7f761e36}
\strng{fullhash}{06b8a2e32b3cda03592e143a7f761e36}
\strng{fullhashraw}{06b8a2e32b3cda03592e143a7f761e36}
\strng{bibnamehash}{06b8a2e32b3cda03592e143a7f761e36}
\strng{authorbibnamehash}{06b8a2e32b3cda03592e143a7f761e36}
\strng{authornamehash}{06b8a2e32b3cda03592e143a7f761e36}
\strng{authorfullhash}{06b8a2e32b3cda03592e143a7f761e36}
\strng{authorfullhashraw}{06b8a2e32b3cda03592e143a7f761e36}
\field{sortinit}{H}
\field{sortinithash}{23a3aa7c24e56cfa16945d55545109b5}
\field{extradatescope}{labelyear}
\field{labeldatesource}{}
\true{uniqueprimaryauthor}
\field{labelnamesource}{author}
\field{labeltitlesource}{title}
\field{title}{Continuous Delivery: Reliable Software Releases through Build, Test, and Deployment Automation}
\field{year}{2010}
\endentry
\enddatalist
\datalist[entry]{apa/global//global/global/global}
\entry{fowler_ci}{online}{}{}
\name{author}{1}{}{%
{{un=0,uniquepart=base,hash=312ac886938a9b2be4f8eb607567fe4c}{%
family={Fowler},
familyi={F\bibinitperiod},
given={Martin},
giveni={M\bibinitperiod},
givenun=0}}%
}
\strng{namehash}{312ac886938a9b2be4f8eb607567fe4c}
\strng{fullhash}{312ac886938a9b2be4f8eb607567fe4c}
\strng{fullhashraw}{312ac886938a9b2be4f8eb607567fe4c}
\strng{bibnamehash}{312ac886938a9b2be4f8eb607567fe4c}
\strng{authorbibnamehash}{312ac886938a9b2be4f8eb607567fe4c}
\strng{authornamehash}{312ac886938a9b2be4f8eb607567fe4c}
\strng{authorfullhash}{312ac886938a9b2be4f8eb607567fe4c}
\strng{authorfullhashraw}{312ac886938a9b2be4f8eb607567fe4c}
\field{sortinit}{F}
\field{sortinithash}{2638baaa20439f1b5a8f80c6c08a13b4}
\field{extradatescope}{labelyear}
\field{labeldatesource}{}
\true{uniqueprimaryauthor}
\field{labelnamesource}{author}
\field{labeltitlesource}{title}
\field{title}{Continuous Integration}
\field{urlday}{18}
\field{urlmonth}{1}
\field{urlyear}{2026}
\field{year}{2023}
\field{urldateera}{ce}
\verb{urlraw}
\verb https://martinfowler.com/articles/continuousIntegration.html
\endverb
\verb{url}
\verb https://martinfowler.com/articles/continuousIntegration.html
\endverb
\endentry
\entry{humble2010continuous}{book}{}{}
\name{author}{2}{}{%
{{un=0,uniquepart=base,hash=9e89d796d06f74d6551850b1c3bff900}{%
family={Humble},
familyi={H\bibinitperiod},
given={Jez},
giveni={J\bibinitperiod},
givenun=0}}%
{{un=0,uniquepart=base,hash=e88f486e16133b897ffb346a75f56d96}{%
family={Farley},
familyi={F\bibinitperiod},
given={David},
giveni={D\bibinitperiod},
givenun=0}}%
}
\list{location}{1}{%
{Boston}%
}
\list{publisher}{1}{%
{Addison-Wesley}%
}
\strng{namehash}{06b8a2e32b3cda03592e143a7f761e36}
\strng{fullhash}{06b8a2e32b3cda03592e143a7f761e36}
\strng{fullhashraw}{06b8a2e32b3cda03592e143a7f761e36}
\strng{bibnamehash}{06b8a2e32b3cda03592e143a7f761e36}
\strng{authorbibnamehash}{06b8a2e32b3cda03592e143a7f761e36}
\strng{authornamehash}{06b8a2e32b3cda03592e143a7f761e36}
\strng{authorfullhash}{06b8a2e32b3cda03592e143a7f761e36}
\strng{authorfullhashraw}{06b8a2e32b3cda03592e143a7f761e36}
\field{sortinit}{H}
\field{sortinithash}{23a3aa7c24e56cfa16945d55545109b5}
\field{extradatescope}{labelyear}
\field{labeldatesource}{}
\true{uniqueprimaryauthor}
\field{labelnamesource}{author}
\field{labeltitlesource}{title}
\field{title}{Continuous Delivery: Reliable Software Releases through Build, Test, and Deployment Automation}
\field{year}{2010}
\endentry
\enddatalist
\endrefsection
\endinput

View File

@@ -1,7 +1,7 @@
\section{Introducción}
\begin{frame}
\frametitle{\textbf{Open Bokeron (spam nuestro)}}
\frametitle{\textbf{Open Bokeron}}
\begin{itemize}
\item Asociaci\'on de software libre de la ETSII (UMA).
\item Hacemos cosas \#HazCosas
@@ -16,6 +16,17 @@
\end{mybox}
\end{frame}
\begin{frame}
\frametitle{\textbf{Somos esta gente}}
{\small O sea, no somos todos esos de la foto. Somos los frikis del fondo.}
\vspace{0.3cm}
\centering
\includegraphics[width=1\linewidth]{images/pointat.png}
\end{frame}
\begin{frame}
\frametitle{\textbf{\'Que es CI/CD?}}
\begin{itemize}

View File

@@ -65,3 +65,15 @@ pipeline {
}
\end{verbatim}
\end{frame}
\begin{frame}
\frametitle{\textbf{No}}
\begin{columns}[T]
\begin{column}{0.5\linewidth}
\includegraphics[width=0.9\linewidth]{images/failed_jobs.png}
\end{column}
\begin{column}{0.5\linewidth}
\includegraphics[width=0.9\linewidth]{images/jenkins_failing_again.jpg}
\end{column}
\end{columns}
\end{frame}

View File

@@ -1,18 +1,5 @@
\section{Parte pr\'actica}
\begin{frame}
\frametitle{\textbf{Objetivo de la parte pr\'actica}}
\begin{itemize}
\item Entender un pipeline de CI "de verdad": lint + tests + build.
\item Entender un pipeline de CD: test en main + build de im\'agenes + deploy.
\item Veamos en qué afectan los cambios:
\begin{itemize}
\item logs del pipeline
\item artefactos/im\'agenes Docker
\end{itemize}
\end{itemize}
\end{frame}
\begin{frame}
\frametitle{\textbf{CI: qu\'e hace Jenkinsfile.ci?}}
\begin{itemize}

View File

@@ -1,7 +1,7 @@
\section{CI/CD desde fuera (como dev)}
\begin{frame}
\frametitle{\textbf{Flujo de trabajo propuesto (developer view)}}
\frametitle{\textbf{Flujo de trabajo propuesto}}
\begin{itemize}
\item Crear rama: \texttt{feature/...}
\item Hacer cambio peque\~no y con sentido.
@@ -24,7 +24,7 @@
\end{frame}
\begin{frame}
\frametitle{\textbf{El juego: PR en Gitea + feedback autom\'atico}}
\frametitle{\textbf{PR en Gitea}}
\begin{columns}[T]
\begin{column}{0.62\linewidth}
\begin{itemize}

View File

@@ -1,34 +0,0 @@
\section{Cierre}
\begin{frame}
\frametitle{\textbf{Recap}}
\begin{itemize}
\item CI: automatiza validaci\'on (lint/tests/build) en cada cambio.
\item CD: produce artefactos versionados y despliega de forma reproducible.
\item Jenkins: flexible, potente, pero requiere mimos (seguridad, plugins, mantenimiento). Sin embargo, una vez lo tienes montado, el mantenimiento ya no es tan drama.
\item Ahora podr\'as entrar en los pipelines de tu futuro puesto de trabajo sin miedo a romper nada... ¿Verdad?
\end{itemize}
\end{frame}
\begin{frame}
\frametitle{\textbf{Preguntas y siguientes pasos}}
\begin{columns}[T]
\begin{column}{0.62\linewidth}
\begin{itemize}
\item Preguntas.
\item ¿Ampliamos taller? Se nos ha quedado en el tintero...
\begin{itemize}
\item Registry (Harbor/Docker Hub/GHCR)
\item SonarQube + quality gates
\item An\'alisis de vulnerabilidades con Trivy
\item Despliegue con Quadlets usando Podman
\item Kubernetes (no)
\end{itemize}
\end{itemize}
\end{column}
\begin{column}{0.36\linewidth}
\centering
\includegraphics[width=0.8\linewidth]{images/kubernetes.jpeg}
\end{column}
\end{columns}
\end{frame}