RELEASE v4
Release notes
Els canvis o changelog de la v4 són els següents:
- Desplegaments estesos: documentació i exemples per a desplegaments estesos en Desplegaments estesos
- Publicació de llibreries complexes per a projectes java-maven multi-mòdul en GitHub Packages
- Suport a GCP (Google Cloud Platform): s’afegeix suport a GCP en els workflows d’infraestructura i als worfklows de desplegaments de contenidors, funcions i contingut estàtic
- Model flexible de CI/CD per a tecnologies no suportades: s’afegeix un model flexible de CI/CD per a tecnologies no suportades en els workflows de contenidors, funcions i contingut estàtic. Més informació a Model flexible de CI/CD amb tecnología “custom”
- Nou paràmetre “container_app” per a desplegaments en ACA (Azure Container Apps) per tal d’alinear la nomenclatura amb la del hiperescalar
- Correcció del funcionament de la integració amb SonarQube per a projectes Java 8
- Suport a Databricks, incloent una nova tecnlogia suportada en els workflows d’aplicació anomenada “databricks”
- Suport a Datafactory, incloent una nova tecnlogia suportada en els workflows d’aplicació anomenada “datafactory”
- Desplegament de contingut estàtic a Azure Static Web Apps: S’ha implementat l’opció de desplegar contingut estàtic a Azure Static Web App en el workflow de Static CD, incloent un nou engine “swebapp” i un novo input “swebapp_name”.
- Invalidació de caixet per contingut estàtic: S’ha afegit la funcionalitat d’invalidació de caixet per a AWS CloudFront en el workflow de Static CD, incloent un nou input “distribution_id” i “invalidation_paths”.
- Polítiques amb Checkov: S’han establert unes polítiques obligatòries que prèviament estaven en mode auditoria. Ara només les polítiques excepcionades estaran en mode auditoria.
- Autenticació a través d’OIDC per a AWS: S’ha imposat l’autenticació a través d’OIDC per a AWS als workflows. Això assegura una autenticació més segura i eficient en utilitzar identitats temporals en lloc de credencials permanents.
- Canvis en la integració amb ITSM: Ara es força aquesta integració sempre en els workflows de CD, però el comportament consisteix en el fet que, fins i tot sent obligatori, en cas d’error, es continuï amb el desplegament i es mostri l’error en els logs perquè els equips de desenvolupament ho solucionin.
Guia d’actualització a la v4
La versió v4 dels workflows reutilitzables per al SIC+ ja s’ha alliberat i està disponible per al seu ús. Aquesta nova versió inclou una sèrie de millores i canvis que poden afectar els projectes existents. Per a facilitar la transició a la nova versió, s’ha preparat una guia d’actualització que detalla els passos necessaris per a adaptar els projectes a la v4.
La guia d’actualització inclou informació sobre el procés a seguir, pas a pas, perquè els diferents components utilitzin la versió v4 dels workflows reutilitzables. Es recomana a tots els equips de desenvolupament que revisin aquesta guia i realitzin les actualitzacions necessàries en els seus projectes per a aprofitar al màxim les millores de la v4.
Per cada repositori que utilitza els workflows reutilitzables, s’hauran de seguir els següents passos:
Pas a pas
- Crear una nova branca “feature/v4-update” en el repositori del projecte a partir de la branca “develop”. Sobre aquesta branca es realitzaran tots els canvis necessaris per a l’actualització a la v4.
- Depenent del tipus de component, s’haurà de descarregar la plantilla corresponent per a inlcuirla posteriorment en la carpeta “.github/*workflows”. Aquestes plantilles són les següents:
- Infraestructura: https://github.com/ctti-arq/infrastructure-template
- Contenidors: https://github.com/ctti-arq/container-template
- Funcions: https://github.com/ctti-arq/function-template
- Estàtics: https://github.com/ctti-arq/static-template
- Llibreries: https://github.com/ctti-arq/library-template
- Apim: https://github.com/ctti-arq/apim-template
- Databricks: https://github.com/ctti-arq/databricks-template
- Datafactory: https://github.com/ctti-arq/datafactory-template
- Executor (per desplegament estesos): https://github.com/ctti-arq/executor-template
- Copiar el contingut de la carpeta “.github/workflows” de la plantilla descarregada al repositori del projecte, guardant la configuració dels workflows anteriors per a no perdre el valor dels paràmetres que es van configurar inicialment quan es va aprovisionar el repositori per primera vegada i es va fer la primera configuració dels workflows reutilitzables.
- Modificar els workflows de la plantilla per a adaptar-los a les necessitats del projecte, donant els valors corresponents a cada paràmetre fixant-se en els valors antics i secundant-se en els mateixos comentaris en els propis workflows. En aquest pas es recomana revisar la documentació de cada workflow per a entendre els possibles valors de cada paràmetre i com afecten la configuració del projecte. Configuració workflows.
- Una vegada fets els canvis, s’haurà de realitzar un commit i un push de la branca “feature/v4-update” al repositori del projecte.
- Accedir a la pestanya de “Actions” del repositori i deshabilitar momentàniament els workflows que apareixen llistats, entrant a cadascun d’ells i usant l’opció “Disable workflow” en el botó “…” on apareixen les opcions del workflow. Això és necessari per a evitar que s’executin automàticament els workflows en interactuar amb aquests fitxers mentre s’apliquen els canvis. Aquí s’adjunta la guia oficial de GitHub per a deshabilitar workflows: Deshabilitar workflows
- Realitzar una Pull Request de la branca “feature/v4-update” a la branca “develop” del repositori del projecte només amb els canvis indicats en els passos anteriors. Aquesta pull request haurà de ser revisada pel responsable del projecte i mergeada per l’equip de desenvolupament o responsable. Quan s’hagi realitzat la integració de codi a “develop” s’haurà d’esborrar aquesta branca “feature/v4-update” per a evitar confusions i mantenir el repositori net.
- Una vegada es té el codi mergeado en la branca “develop”, s’haurà de realitzar una nova Pull Request de la branca “develop” a la branca “release” del repositori del projecte. Es procedirà de la mateixa manera que en el pas anterior, fins que el codi estigui mergeado en la branca “release”.
- Repetir el pas anterior per a la branca “master” del repositori del projecte. En aquest cas, la Pull Request es realitzarà de la branca “release” a la branca “master”. Amb això ens assegurem que els workflows estiguin definits i configurats en totes les branques crítiques del repositori, amb tots els paràmetres informats i amb els valors correctes.
- Una vegada mergeada la pull request, s’haurà d’accedir novament a la pestanya de “Actions” del repositori i habilitar els workflows que es van deshabilitar en el pas 6. Per a això, s’haurà d’entrar a cadascun d’ells i usar l’opció “Enable workflow” en el botó “…” on apareixen les opcions del workflow. Habilitar workflows.
Cal destacar que caldria tenir especial compte amb les branques de desenvolupament “feature/*” que existeixin en el repositori prèviament a l’actualització, ja que aquestes branques podrien contenir els workflows antics apuntant a la versió v3, i en intentar promocionar el codi a “develop” no adonar-se que s’estaria sobreescrivint la nova configuració dels workflows que s’ha realitzat.
Després de tots aquests canvis, els workflows reutilitzables estaran actualitzats a la versió v4 i es podran utilitzar en el repositori del projecte. Es recomana realitzar proves de funcionament dels workflows per a assegurar-se que tot està funcionant correctament i que no hi ha problemes de compatibilitat amb la nova versió. A més, se suggereix revisar la documentació de cada workflow per a entendre les noves funcionalitats i millores que s’han implementat en la v4.
RELEASE v3
Release notes
La v3 no es depreca però no evolucionarà a no ser que sigui per a pegats de seguretat.
Versions anteriors
Les versions v1 i v2 dels reusable workflows estan discontinuades.
Plantilles de les workflows reutilitzables
- Infraestructura: https://github.com/ctti-arq/infrastructure-template
- Contenidors: https://github.com/ctti-arq/container-template
- Funcions: https://github.com/ctti-arq/function-template
- Estàtics: https://github.com/ctti-arq/static-template
- Llibreries: https://github.com/ctti-arq/library-template
- Apim: https://github.com/ctti-arq/apim-template
- Databricks: https://github.com/ctti-arq/databricks-template
- Datafactory: https://github.com/ctti-arq/datafactory-template
- Executor (per desplegament estesos): https://github.com/ctti-arq/executor-template