Introducció
En els darrers dies s’han aprovisionat nous workflows d’integració contínua automàtica en el moment de fer el commit després de la PR segons la branca destí, per les tipologíes de: Aplicació mòbil iOS i Aplicació mòbil Android.
També, s’han fet canvis en els workflows de distribució, per les tipologies de Aplicació mòbil iOS i Aplicació mòbil Android.
Els canvis més importants són:
- Una nova “CI on commit” a les branques develop, release i master que compilen, generen el binari firmat, pugen a JFrog amb visibilitat privada i etiqueten el repo del projecte.
- Canvis a la CD per identificar la versió de l’artefacte generat, descarregar-ho de JFrog i distribuir-lo al market.
Per tant, els worfklows d’integració contínua i distribució de les tipologies esmentades, han tingut canvis i cal avaluar les modificacions a fer al projecte.
Descripció dels treballs
Depenent de cada situació del projecte, els canvis poden ser diferents, però exposem la situació més general:
- Cal crear fitxers .yml per a la CI on commit per develop, release i master, a imatge dels ubicats al template original del projecte. La definició del nou worklfow es pot veure en detall segons la tipologia al següent enllaç
- Cal canviar el fitxer .yml per a la CD per informar els paràmetres definits a la nova versió. Veure detall
Per cada repositori que utilitza els workflows reutilitzables, s’hauran de seguir els següents passos:
Pas a pas
Per a aquells repositoris que encara no hagin migrat de versió de reutilitzables, dependabot generarà automàticament una 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. AQUESTA PULL REQUEST DE DEPENDABOT ÉS ÚNICAMENT D’AVÍS I NO CAL ACCEPTAR-LA. El títol assignat serà una cosa similar a “Bump ctti-arq/reusable-workflows-mobile from 3 to 4”. Caldria seguir el procediment descrit a continuació:
- Crear una nova branca “feature/v4-update-develop” en el repositori del projecte a partir de la branca “develop”. Sobre aquesta branca es realitzaran els canvis necessaris per a l’actualització a la v4.
- Modificar en cada workflow definit en el repositori tota referència a la versió “v3” per la versió “v4”, revisant i adaptant la configuració de paràmetres així com els paràmetres que han estat deprecats els quals hauran de ser eliminats o substituïts d’acord amb l’especificació descrita a la documentació de cada workflow: Configuració workflows. En aquest pas, es recomana revisar la documentació de cada workflow per a entendre els diferents paràmetres i els seus possibles valors.
- Una vegada fets els canvis, s’haurà de realitzar un commit i un push de la branca “feature/v4-update-develop” al repositori del projecte.
- Accedir a la pestanya de “Actions” del repositori i deshabilitar momentàniament els workflows que apareixen llistats, entrant a cadascun i usant l’opció “Disable workflow” en el botó “…”. 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 (PR) de la branca “feature/v4-update-develop” a la branca “develop” del repositori del projecte només amb els canvis indicats en els passos anteriors. Es procedirà a revisar i aprovar la PR, i un cop aprovada s’iniciarà el procés d’integració del codi a la branca “develop”. Quan s’hagi realitzat la integració de codi a “develop” s’haurà d’esborrar aquesta branca “feature/v4-update-develop” per a evitar confusions i mantenir el repositori net.
- Una vegada es té el codi integrat a la branca “develop”, s’haurà de crear una nova branca “feature/v4-update-release” a partir de la branca “release” del repositori del projecte. Sobre aquesta branca es realitzaran els mismes canvis que en el pas 2. Un cop realitzats els canvis, s’haurà de fer un commit i un push de la branca “feature/v4-update-release” al repositori del projecte i s’integrarà el codi aprovant una nova Pull Request a partir d’aquesta branca a la branca “release” esborrant després la branca “feature/v4-update-release”.
- Procedir de la mateixa manera que amb release però per a la branca “master” creant una branca “feature/v4-update-master” a partir de la branca “master” del repositori del projecte, realitzant els canvis, fent commit i push, i integrant el codi mitjançant una Pull Request de la branca “feature/v4-update-master” a la branca “master”, esborrant després aquesta branca “feature/v4-update-master”. Amb això ens assegurem que els workflows estiguin definits i configurats en totes les branques protegides del repositori, amb tots els paràmetres informats i amb els valors correctes.
- Una vegada integrada la PR, s’haurà d’accedir novament a la pestanya de “Actions” del repositori i habilitar els workflows que es van deshabilitar en el pas 4. Per a això, s’haurà d’entrar a cadascun i usar l’opció “Enable workflow” en el botó “…”. Aquí s’adjunta la guia oficial de GitHub per a habilitar workflows: Habilitar workflows.
- A partir d’aquí ja es podria desestimar la Pull Request i i les branques generadas 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 fer 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.
Tots aquests detalls es troben a la documentació de SIC+ al portal de Canigó
Si teniu qualsevol dubte o problema sobre els serveis del SIC, podeu revisar les Preguntes Freqüents o utilitzar els canals de Suport.