← Tots els posts

🐙GitHub — Actions i regles de protecció de branques

Ja domines els scripts PowerShell del primer capítol? És hora de desplegar-los a GitHub amb Actions i regles de protecció de branques.

DevOpsFabric Traduït de l’original en castellà

Ja domines els scripts PowerShell que vam veure al primer capítol? Si ja has forjat els teus scripts PowerShell per defensar la qualitat a Microsoft Fabric, és hora de desplegar-los al camp de batalla de 🐙 GitHub. En aquest capítol dominarem GitHub Actions i les Branch Protection Rules per automatitzar la vigilància del nostre codi.

Però abans…

Gràcies pel peluix, Manu!! Gràcies pel peluix, Manu!!

La nostra estratègia? Convertir la branca main en una fortalesa inexpugnable🏰: només el codi que superi totes les proves de qualitat es podrà fusionar. Per a la branca dev, mantindrem un control estricte, però amb l’agilitat d’un ninja: els errors es reportaran amb claredat, i l’equip podrà decidir si fusiona en circumstàncies especials, sense frenar el desenvolupament.

🔄 El teu camí és Azure DevOps? Si prefereixes aquest dojo d’entrenament, tenim el pergamí sagrat per a tu aquí. Però si segueixes el camí de GitHub, desembeina la katana i continua llegint!

Pas 1: Configurant la GitHub Action 📄 build.yml

La nostra Action 📄build.yml (a 📁.github/workflows/ del teu repositori) orquestrarà l’execució dels scripts PowerShell i ens mantindrà informats directament a cada Pull Request. Com que és en una ruta específica, GitHub Actions la detectarà automàticament i començarà a executar el flux de treball segons els disparadors (on:) que hagis definit.

Punts clau d’aquesta Action:

✨Activació: es dispara amb Pull Requests a main i dev (on: pull_request: branches: ...).

🙏Permisos adequats (permissions:): concedeix el necessari per llegir codi, comentar a les PR i actualitzar els «checks».

🏋️‍♀️Organització (Setup folders): prepara la carpeta scripts/testResults per als informes XML dels scripts.

💪 Control d’execució: scripts amb id per poder referenciar-ne el resultat (outcome). continue-on-error: true per assegurar que s’executin totes les validacions.

📊 Informes i artefactes: actions/upload-artifact@v4 desa els XML com a artefactes per depurar. EnricoMi/publish-unit-test-result-action@v2 publica un informe de tests detallat als «checks» de la PR.

Resum dels tests a GitHub: 43 errors i 1 aprovat

🔮 Comunicació clara (Comment PR with results): un script d’actions/github-script@v6 crea o actualitza un comentari a la PR amb un resum ✅/❌ de cada validació.

🚫 La clàusula mestra per a main: si algun script falla I la PR és a main, tota l’Action es marca com a fallida (core.setFailed(...)), cosa que bloqueja el merge.

Pas 2: Configurant les regles de protecció de branca a GitHub

Amb l’Action a punt, és hora d’establir les defenses.

Accés a les 🛡️ regles de protecció:

  1. Al teu repositori de GitHub, ves a ⚙️Settings > Branches.
  2. Fes clic a Add classic branch protection rule.

Settings del repositori a GitHub amb Branches i Add classic branch protection rule

Branca main: defensa absoluta!

🗣️ Branch name pattern: main.

🤝 Require a pull request before merging: activa-ho. 🧑‍🏫 Require approvals: activa-ho (1–2 revisors).

🔥 Require status checks to pass before merging: essencial!

  • Activa-ho i selecciona el job de la teva Action (p. ex.: Test Results). Si aquest «check» falla (gràcies al nostre core.setFailed), el merge queda bloquejat.
  • Valora activar "Require branches to be up to date before merging".

Regla de protecció de la branca main amb revisions i checks obligatoris

✅Create. Segurament aquí et demanarà la contrasenya.

Si fem que s’executi la nostra Action de dev a main obtindrem una cosa semblant a aquesta:

Pull request de dev a main amb el merge bloquejat pels checks

Veiem que no ens deixa fer el merge (l’opció apareix en gris clar) tot i tenir l’ok d’un revisor, perquè els tests han sortit amb errors.

Branca dev: 🧐 Supervisió i agilitat

➕Add rule per afegir una regla nova.

Llista de regles de protecció de branques amb el botó Add rule

L’Action informarà dels errors, però no fallarà per si mateixa si la PR no és a main.

🗣️ Branch name pattern: dev.

🤝 Require a pull request before merging: activa-ho (pots ser més flexible amb les aprovacions).

🔥 Require status checks to pass before merging:

  • Opció més laxa: no exigir el check FabricValidation. La decisió de fusionar recau en els revisors, basant-se en el comentari i en els resultats del check.

Regla de protecció de la branca dev

✅ Create.

Quan creem una Pull Request i s’executi tot, es veurà així:

Pull request amb els tests executats i el comentari amb els resultats

Veiem com s’han executat els tests i als comentaris ens diu que hi ha errors, però com que tenim l’aprovació, ens apareix l’opció de Merge pull request.

Mira el vídeo a YouTube

Mira el vídeo a YouTube

🚀 El teu dojo de qualitat a GitHub ja està operatiu!

Missió complerta! 🥳 Has configurat GitHub Actions i les regles de protecció de branca per crear un sistema de CI/CD robust i adaptat a les teves necessitats. La teva branca main ara està protegida per un escut de qualitat impenetrable, mentre que dev permet un flux de treball àgil però informat.

A cada Pull Request, els teus scripts actuaran com a sentinelles, i asseguraran que només avanci el codi més polit i fiable. Has elevat el teu Ki de desenvolupament, a punt per construir solucions de dades llegendàries amb la confiança que la qualitat et cobreix l’esquena! Continua entrenant i millorant!

T’ha servit? Aplaudeix, sense compte. Pots fer-ho diverses vegades.

Comentaris