---
# System prepended metadata

title: GitHub Actions intro a la CI
tags: [daw, ' M8', ' GIT', ' Control Versions']

---

---
title: GitHub Actions intro a la CI
tags: daw, GIT, Control Versions, M8
---

<div style="width: 30%; margin-left: auto;">
    
![](https://hackmd.io/_uploads/HJiR4eGJT.png)    
    
</div>



<a rel="license" href="http://creativecommons.org/licenses/by-sa/4.0/"><img alt="Llicència de Creative Commons" style="border-width:0" src="https://i.creativecommons.org/l/by-sa/4.0/88x31.png" /></a><br />Aquesta obra està subjecta a una llicència de <a rel="license" href="http://creativecommons.org/licenses/by-sa/4.0/">Reconeixement-CompartirIgual 4.0 Internacional de Creative Commons</a>

# GitHub Actions intro a la CI
![](https://hackmd.io/_uploads/SJW3sKzbp.png)

Les GitHub actions són l'eina de CI/CD que ens proporciona GitHub per a realitzar tasques automatitzades a partir d'events al nostre repositori.
Aquestes tasques corren a màquines virtuals i disposem d'un nombre finit de minuts al mes, depenent del nostre compte de GitHub.
La funció més habitual és la de passar un joc de proves al commits que es vulguin afegir al nostre repositori, però es poden realitzar molts altres tipus de tasques, com per exemple el desplegament de la nostra aplicació en múltiples plataformes.
Les accions es defineixen en un fitxer de tipus [YAML](https://es.wikipedia.org/wiki/YAML).

Totes les accions de GitHub han de tenir obligatòriament un nom i han de declarar un event que les 'dispari' (trigger).
```yaml
name: Proves de CI a GitHub

on:
  push:
    branches:
      - main
```
A partir d'aqui hem de dir-li què esperem que la màquina virtual faci de manera automàtica per nosaltres. Aquestes tasques les definirem a la secció jobs:
```yaml
name: Proves de CI a GitHub

on:
  push:
    branches:
      - main

jobs:
  una_tasca_automatica:
    runs-on: ubuntu-latest
    steps:
      - name: Mostra un missatge per consola
        run: echo "La meva primera GitHub Action a DAW-M8"
```    

I ja podem desar el contingut de la nostra acció a un fitxer .yml, per exemple 'mostra_missatge.yml' i el desem al directori '.github/workflows/'.
