Un repositorio centralizado de workflows reutilizables diseñados para agilizar y automatizar flujos de trabajo para proyectos impulsados por Wakamiti. Este repositorio proporciona acciones modulares para tareas comunes, asegurando consistencia y eficiencia a través de los repositorios.
-
Validar Código
Este workflow se activa al crear una pull request. Valida el código mediante compilación, ejecución de tests y análisis en SonarQube. Si la rama de destino es
mainy la pull request proviene de una ramareleaseohotfix, también valida los elementos necesarios para hacer la release (fichero changelog, que la versión no exista, que no contenga dependencias snapshot, ...).Loadingflowchart LR PR1(("pull_request")) subgraph SUB1 [ ] direction TB V1["Configurar maven *"] V2["Compilar código *"] V3["Ejecutar tests"] V4["Análisis SonarQube"] V5{"Si destino 'main' y origen 'release' o 'hotfix'"} V6["Validar nueva versión"] end PR1 -- opened synchronize reopened --> SUB1 V1 --> V2 --> V3 --> V4 --> V5 --> V6 -
Crear Snapshot
Este workflow se activa al hacer push a la rama
develop. Se compila el código, se ejecutan tests, se valida la versión snapshot, se elimina el snapshot antiguo si existe y se despliega la nueva snapshot.Loadingflowchart LR D1(("push")) subgraph SUB1 [ ] direction TB S1["Configurar maven *"] S2["Compilar código *"] S3["Ejecutar tests"] S4["Validar Snapshot"] S5["Eliminar Snapshot antiguo"] S6["Desplegar Snapshot"] end D1 -- develop --> SUB1 S1 --> S2 --> S3 --> S4 --> S5 --> S6 -
Preparar Release
Este workflow se activa al hacer push a la rama
developcon un commit que contiene#readyo mediante ejecución manual. Valida la versión y se crea la correspondiente ramareleasea partir del código dedevelop. En la ramareleasese cambia la versión del pom deSNAPSHOTa release, y el bloque[unreleased]del changelog a la versión correspondiente.Loadingflowchart LR D1(("push")) D2(("workflow_dispatch")) subgraph SUB1 [ ] direction TB S1["Configurar maven *"] S2["Validar versión"] S3["Crear rama release"] S4["Actualiza versión"] S5["Push con commit #ready"] end D1 -- develop (commit #ready) --> SUB1 D2 --> SUB1 S1 --> S2 --> S3 --> S4 --> S5 -
Crear Pull Request
Este workflow se activa al hacer push a una rama
releaseohotfixo mediante ejecución manual. Prepara la nueva versión y se crea un pull request amain.Loadingflowchart LR D1(("push")) D2(("workflow_dispatch")) subgraph SUB1 [ ] direction TB S1["Configurar maven *"] S2["Preparar versión"] S3["Crear pull request"] end D1 -- release hotfix (commit #ready) --> SUB1 D2 --> SUB1 S1 --> S2 --> S3 -
Publicar Release
Este workflow se activa cuando se cierra y fusiona un pull request desde una rama
releaseohotfixa la ramamaino mediante ejecución manual. Despliega la versión final y crea una release en GitHub.Loadingflowchart LR D1(("pull_request")) D2{"Si destino 'main' y origen 'release' o 'hotfix'"} subgraph SUB1 [ ] direction TB S1["Configurar maven *"] S2["Desplegar Release"] S3["Crear nueva Release"] end D1 -- closed merged --> D2 --> SUB1 S1 --> S2 --> S3 -
Iniciar Hotfix
Este workflow se activa manualmente para crear una rama de hotfix a partir de la rama
main. Valida la versión actual y prepara la nueva versión incrementando el patch, creando la rama dehotfixcorrespondiente.Loadingflowchart LR D1(("workflow_dispatch")) subgraph SUB1 [ ] direction TB S1["Validar versión"] S2["Preparar nueva versión"] S3["Crear rama hotfix"] end D1 --> SUB1 S1 --> S2 --> S3
(*): cacheable
Para ejecutar pruebas de las GitHub Actions localmente, se utiliza la herramienta act. Esta herramienta permite simular la ejecución de flujos de trabajo de GitHub Actions en tu máquina local, facilitando la depuración y validación. Esta herramienta ha sido dockerizada, junto con una serie de servicios simulados.
Important
Es necesario poder conectarse a Git mediante clave pública SSH. Ver más.
-
Instalar dependencias:
make install
-
Ejecutar pruebas:
make test -
Limpiar pruebas:
Elimina los repositorios de las pruebas en el servidor git simulado.
make clean
-
Actualizar workflows:
Carga los workflows en el contenedor de
act.make workflows
-
Limpiar entorno:
Elimina las carpetas
targety el contenedor deact.make shutdown