Índice
Este repositorio se encarga de servir como una estructura de los recursos utilizados para los artículos publicados en la plataforma enmilocalfunciona.io relacionados con el uso de Git Hooks y basado en la serie de artículos “Uso de Git Hooks”
- Uso de Git Hooks (Parte 1): Artículo de introducción teórica al uso de Git Hooks
- Uso de Git Hooks (Parte 2): Artículo de introducción práctica al uso de Git Hooks
Este respositorio se compone de los siguientes directorios:
- examples/: Directorio que contiene los ficheros a analizar
- config/: Directorio que contiene toda la configuración del proyecto
- spectral/: Directorio que contiene todo lo relacionado con la herramienta spectral
- rules/: Subdirectorio que contiene los ficheros de reglas utilizados
- spectral/: Directorio que contiene todo lo relacionado con la herramienta spectral
- src/: Directorio que contiene código para una supuesta aplicación de calculadora
- Nota: En este caso NO será necesario utilizar el código implementado para realizar un API, sino que servirá de ejemplo para usar fase de testing en posteriores ejemplos
- tests/: Directorio que contiene test unitarios / integración sobre código implementado en el directorio "src/"
- docs/: Directorio que contiene cierta documentación del proyecto
- scripts/: Directorio que contiene ciertos scripts que pueden ayudar a usar ciertos acciones de la aplicación, en su instalación, en la preparación del entorno o bien ayudar en el ciclo de desarrollo
- Ejemplos
- Ejecución de test
- Lintado con Spectral
- Operativa de Build del proyecto
- ...
- Recordar de proporcionar permisos de ejecución: chmod +x XXX
- Ejemplos
- git-hooks/: Directorio que contiene referencias de los Git Hooks y que se distribuirán junto con la aplicación, posteriormente se podrán activar de diferentes maneras
Este proyecto se encuentra finalizado
- Node.js >18.x.x
N/A
Desarrollo
- @stoplight/spectral-core : Framework de Spectral
Testing
- jest : Framework de Testing
- Requerido tener instalado Node.js >18.x.x
Pasos a seguir:
- Clonar el repositorio
- Arrancar un terminal
- Localizar el PATH el directorio del proyecto
- Ejecutar el siguiente comando
npm install
- Verificar que se ha instalado todo correctamente
Pasos a seguir:
- Crear un script en el fichero package.json
"scripts": {
...
"spectral:oas:lint:one": "spectral lint ./examples/example1.yaml",
"spectral:oas:lint": "spectral lint ./examples/*",
"spectral:oas:lint-warning-as-errors": "spectral lint -F warn ./examples/*"
...
},
Detalle:
- spectral:oas:lint:one: Análisis de Spectral sobre un fichero seleccionado del directorio examples/
- spectral:oas:lint: Análisis de Spectral sobre todos los ficheros del directorio examples/
- spectral:oas:lint-warning-as-errors: Análisis de Spectral sobre todos los ficheros del directorio examples/ generando un error al detectar al menos un warning, es decir, para la ejecución con un warning
Se va a intentar definir un scrip de Git Hook para la operativa de pre-commit que se encargue de :
- Ejecutar los test configurados en el proyecto
- Ejecutar una operativa de lintado con Spectral
La propuesta del script se encuentra en : docs/pre-commit.txt
Nota:
Todos los ejemplos harán uso de la configuración de spectral de .spectral.yml
Todos los escenarios de uso serán explicados en el segundo artículo
- Víctor Madrid