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.
- Invalidació de caixet per contingut estàtic: S’ha afegit la funcionalitat d’invalidació de caixet per a Azure en el workflow de Static CD, incloent un nou input “cdn_profile_name”, “cdn_endpoint_name” i “invalidation_paths”.
- Possibilitat de desplegar multiples targets d’un mateix Databricks bundle: S’ha afegit la possibilitat de desplegar diversos targets d’un mateix bundle. Informant un nou parametro “multi_target” en el workflow de Databricks CI on pr i “bundle_target_*list” en el workflow de Databricks CD.
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
Amb la fi anunciar o avisar que s’ha alliberat una nova versió dels workflows reutilitzables, es procedirà a modificar la configuració de dependabot en tots els repositoris per a incloure el manteniment de la versió dels workflows reutilitzables. Per a aquells repositoris que encara no hagin migrat de versió de reutilitzables, dependabot generarà automàticament un pull request d’avís perquè el Release Manager de l’aplicació sigui conscient que ha d’actualitzar les seves workflows a la versió indicada. El títol assignat serà una cosa similar a “Bump ctti-arq/reusable-workflows from 3 to 4”. Caldria seguir el procediment descrit a continuació:
- 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.
- A partir d’aquí ja es podria desestimar la Pull Request generada per dependabot com a avís i tancar-la.
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