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}
|
||||
|
||||
\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}
|
||||
|
||||
@@ -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}
|
||||
|
||||
@@ -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}
|
||||
|
||||
@@ -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}
|
||||
|
||||
@@ -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