Continuous integration – Dia 91

Este es un tema de opinion, que prosigue al de Bash y al de DevOps

El CI es este concepto que se ha inyectado o viene en combo cuando hablamos de DevOps.

El concepto simplemente es, la integracion constante de todas tus dependencias para generar paquetes. Esto asume pero no obliga, a compilar y exportar tan pronto como sea posible, en un punto centralizado del desarrollo de software. Incluyese pruebas automatizadas o no.

Y puede que esto parezca absurdo para desarrolladores individuales o proyectos pequeños

Y muy probablemente lo sea. Pero aca vengo con un contra argumento.

Es posible, y tiene mucho sentido, dentro de ambientes de desarrollo de software individual, tener un pipeline de integracion continua, sin todo el circo de complejidad que nos venden. Sin jenkins, sin Github, sin Azure DevOps. Solo funcionando en tu equipo.

Y esto se puede lograr mediante el toolchain. Diversas herramientas de desarrollo de software ahora existen en el terminal y son pro-linux. Entonces los frameworks de javascript como angular y react, java, c/c++, .net y me parece que zig y rust, permite personalizar una serie de instrucciones en disparadores comunes.

Es posible crear subrutinas o bash que funcionen en los ambientes de desarrollo, como Visual Studio, Eclipse, Cualquiera de JetBrains, y el mas popular VS Code.

VSCode y sus derivados ya incluyen plantillas que facilitan la productividad dentro de el mismo. Incluyendo Linters, pre-build, testing y otras acciones. Esto es un toolchain, pero colaborativo normalmente, dependiendo de herramientas externas.

El CI al que yo quiero llegar en este articulo es la trampa autoconstruida de ‘home alone’ manualmente. Son el conjunto de triggers y personalizaciones que podemos lograr en nuestros Git locales, al realizar acciones de merge. Son el grupo de subrutinas que podemos programar en un .sh para que se realice Build, Test, y Report antes de compartir nuestro trabajo.

Son las subrutinas que podemos lograr nuestro propio Squash para parecer mas inteligentes. Pero tiene que ver con productividad personal o individual.

Por mucho que me gustaria hablar con ejemplo, cada tooling y workflow es diferente, asi que ten en cuenta estimado lector, que es tu decision lograr estas optimizaciones personales, que la IA o diversos agentes no van a lograr. Que solo tu puedes tomar la decision de mejorar o estandarizar, y todo empieza con un bash sobre tu ng build o dotnet build.