La verdad es que escribir código es algo increíble. Es de las pocas formas en las que podemos crear algo nuevo e incluso cambiar el mundo desde nuestra silla con una computadora. Ahora bien, con la evolución de la industria cada día necesitamos hacerlo mejor y más rápido. Es allí cuando debemos recurrir a la automatización y conceptos como CI/CD (Continuos Integration / Continuos Deployment) toman peso.

https://www.freshleafmedia.co.uk/assets/media/bitbucket-pipeline_blogThumb.png

Como resultado de estas necesidades Atlassian ha implementado Pipelines en su producto Bitbucket por lo que reciben el nombre de ¨Bitbucket Pipelines¨ (si, no lo pensaron demasiado).

Como comente en mi artículo anterior (Git Hooks ¿Qué son y para que?), llevo desde marzo 2020 trabajando como freelance para una empresa y pues parte la aventura que empezó como una asesoría, hoy me ha llevado al área de DevOps y a crear estas integraciones para que el equipo de desarrollo funcione de forma más eficiente.


El ejemplo que les explicaré hoy es un proyecto de Angular el cual hemos integrado a Firebase Hosting con nuestro flujo de ramas basado en GitFlow.

Lo primero que explicaré es como creamos nuestra documentación de forma automática mediante Typedoc

https://firebasestorage.googleapis.com/v0/b/fjbatresv-website.appspot.com/o/Blogs%2FSin-título-1.png?alt=media&token=3554e786-131a-4c89-94bf-edd30f5271f2

Typedoc

Es una librería destinada para proyectos de TypeScript la cual nos permite generar una documentación desde los comentarios del código. Si bien es un poco cansado poner comentarios en nuestro código, la verdad es que cuando la aplicación llega a cierto punto de crecimiento se vuelve una necesidad.

El uso es simple, necesitamos crear un archivo en la raiz de nuestro proyecto que tenga la configuración con la que crearemos nuestra documentación. Algo así:

{
    "out": "docs",
    "tsconfig": "./tsconfig.app.json",
    "theme": "./node_modules/typedoc-bitbucket-theme/dist/",
    "plugin": "typedoc-plugin-markdown",
    "exclude": "**/*+(index|.spec|.e2e).ts",
    "inputFiles": ["./src"]
}

En este caso específicamente estamos usando un tema o plantilla para bitbucket y un plugin que genera los archivos en formato Markdown. De igual manera estamos excluyendo a los test que se crean para los componentes de Angular y estamos setteando la configuración del TypeScript desde nuestro tsconfig.app.json para que reconozca algunos ajustes que hemos hecho. Por último vemos que se coloca una lista con los directorios desde los que leerá los archivos y un dato para el nombre nombre del directorio en el que creara la documentación.

Para ejecutarlo solamente debemos correr el siguiente comando:

npx typedoc

Ambientes

En este escenario trabajamos con 4 ambientes los cuales teníamos que configurar previamente en el proyecto.