Compare commits
3 Commits
e8555453f7
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
| b6f0339808 | |||
| 70071f5b1d | |||
| 163d55e6fc |
1
slides/.latexmkrc
Normal file
1
slides/.latexmkrc
Normal file
@@ -0,0 +1 @@
|
|||||||
|
$pdflatex = 'xelatex -interaction=nonstopmode -synctex=1 %O %S';
|
||||||
BIN
slides/images/failed_jobs.png
Normal file
BIN
slides/images/failed_jobs.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 46 KiB |
BIN
slides/images/linuxparty.jpeg
Normal file
BIN
slides/images/linuxparty.jpeg
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 153 KiB |
BIN
slides/images/pointat.png
Normal file
BIN
slides/images/pointat.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 1.5 MiB |
@@ -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
|
|
||||||
|
|
||||||
@@ -1,7 +1,7 @@
|
|||||||
\section{Introducción}
|
\section{Introducción}
|
||||||
|
|
||||||
\begin{frame}
|
\begin{frame}
|
||||||
\frametitle{\textbf{Open Bokeron (spam nuestro)}}
|
\frametitle{\textbf{Open Bokeron}}
|
||||||
\begin{itemize}
|
\begin{itemize}
|
||||||
\item Asociaci\'on de software libre de la ETSII (UMA).
|
\item Asociaci\'on de software libre de la ETSII (UMA).
|
||||||
\item Hacemos cosas \#HazCosas
|
\item Hacemos cosas \#HazCosas
|
||||||
@@ -16,6 +16,17 @@
|
|||||||
\end{mybox}
|
\end{mybox}
|
||||||
\end{frame}
|
\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}
|
\begin{frame}
|
||||||
\frametitle{\textbf{\'Que es CI/CD?}}
|
\frametitle{\textbf{\'Que es CI/CD?}}
|
||||||
\begin{itemize}
|
\begin{itemize}
|
||||||
|
|||||||
@@ -65,3 +65,15 @@ pipeline {
|
|||||||
}
|
}
|
||||||
\end{verbatim}
|
\end{verbatim}
|
||||||
\end{frame}
|
\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}
|
||||||
|
|||||||
@@ -1,18 +1,5 @@
|
|||||||
\section{Parte pr\'actica}
|
\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}
|
\begin{frame}
|
||||||
\frametitle{\textbf{CI: qu\'e hace Jenkinsfile.ci?}}
|
\frametitle{\textbf{CI: qu\'e hace Jenkinsfile.ci?}}
|
||||||
\begin{itemize}
|
\begin{itemize}
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
\section{CI/CD desde fuera (como dev)}
|
\section{CI/CD desde fuera (como dev)}
|
||||||
|
|
||||||
\begin{frame}
|
\begin{frame}
|
||||||
\frametitle{\textbf{Flujo de trabajo propuesto (developer view)}}
|
\frametitle{\textbf{Flujo de trabajo propuesto}}
|
||||||
\begin{itemize}
|
\begin{itemize}
|
||||||
\item Crear rama: \texttt{feature/...}
|
\item Crear rama: \texttt{feature/...}
|
||||||
\item Hacer cambio peque\~no y con sentido.
|
\item Hacer cambio peque\~no y con sentido.
|
||||||
@@ -24,7 +24,7 @@
|
|||||||
\end{frame}
|
\end{frame}
|
||||||
|
|
||||||
\begin{frame}
|
\begin{frame}
|
||||||
\frametitle{\textbf{El juego: PR en Gitea + feedback autom\'atico}}
|
\frametitle{\textbf{PR en Gitea}}
|
||||||
\begin{columns}[T]
|
\begin{columns}[T]
|
||||||
\begin{column}{0.62\linewidth}
|
\begin{column}{0.62\linewidth}
|
||||||
\begin{itemize}
|
\begin{itemize}
|
||||||
|
|||||||
@@ -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}
|
|
||||||
Reference in New Issue
Block a user