# Flussi di lavoro su GitHub: come lavorare con la comoda funzione di GitHub

I flussi di lavoro su GitHub (“workflows” in inglese) estendono le funzionalità di [GitHub](https://www.ionos.it/digitalguide/siti-web/programmazione-del-sito-web/github/ "GitHub") e vengono creati nella cartella *.github/workflows* direttamente nel repository da voi scelto. Vi consentono di eseguire azioni automatiche quando si verificano determinati eventi.

## Cosa sono i flussi di lavoro su GitHub?

Fondamentalmente, un flusso di lavoro su GitHub non è altro che una **raccolta di azioni specifiche, per lo più ricorrenti**, che vengono eseguite automaticamente quando si verifica un determinato evento nel repository. Si compone di diversi cosiddetti lavori, a loro volta suddivisi in singoli passaggi. Oltre all’uso basato sugli eventi, i flussi di lavoro possono essere avviati manualmente o eseguiti entro determinati intervalli di tempo. I flussi di lavoro sono una parte essenziale della piattaforma di [Continuous Integration](https://www.ionos.it/digitalguide/siti-web/programmazione-del-sito-web/continuous-integration/ "Continuous Integration"), [GitHub Actions](https://www.ionos.it/digitalguide/siti-web/programmazione-del-sito-web/github-actions/).

Le azioni che il flusso di lavoro di GitHub include nel dettaglio dipendono interamente dai programmatori. Gli usi più comuni sono il **test automatico del codice** non appena viene aggiornato nel repository o la **notifica ai membri del team** quando vengono apportate modifiche al repository.

Consiglio Se usate GitHub per il vostro progetto web, vale la pena di usare [Deploy Now di IONOS](https://www.ionos.it/hosting/deploy-now "Deploy Now di IONOS") per aumentare la produttività. Il flusso di lavoro su GitHub Actions già impostato si occuperà automaticamente della creazione del progetto.

## Tutorial per creare flussi di lavoro

Creare un flusso di lavoro su GitHub non è difficile. Vi basta avere una conoscenza di base del linguaggio di programmazione [YAML](https://www.ionos.it/digitalguide/siti-web/programmazione-del-sito-web/yaml-il-framework-css-piu-leggero-per-esperti/ "YAML: il framework CSS più leggero per esperti") e un repository GitHub in cui eseguire e distribuire il flusso di lavoro. Se utilizzate un ambiente di sviluppo integrato per scrivere il codice YAML, [GitHub Copilot](https://www.ionos.it/digitalguide/siti-web/programmazione-del-sito-web/github-copilot/ "GitHub Copilot") può anche aiutarvi a creare il codice del flusso di lavoro.

### Primo passaggio: impostare un flusso di lavoro

Dopo aver creato un repository o averne selezionato uno già esistente per il flusso di lavoro su GitHub, **fate clic sul pulsante Actions** per accedere al menu di GitHub Actions.

[![Immagine: Repository di GitHub](https://www.ionos.it/digitalguide/fileadmin/_processed_/0/1/csm_github-actions-menu_43e0c187f2.webp "Repository di GitHub")](https://www.ionos.it/digitalguide/fileadmin/DigitalGuide/Screenshots_2023/github-actions-menu.png) Selezionate la scheda “Actions” nel repository per accedere al menu di GitHub Actions. Nel menu di GitHub Actions è ora possibile **creare un flusso di lavoro**. A tal fine, fate clic sul pulsante “set up a workflow yourself”.

[![Immagine: Menu di GitHub Actions](https://www.ionos.it/digitalguide/fileadmin/_processed_/c/9/csm_get-started-with-github_d7632f500e.webp "Menu di GitHub Actions")](https://www.ionos.it/digitalguide/fileadmin/DigitalGuide/Screenshots_2023/get-started-with-github.png) Nel menu di GitHub Actions è possibile creare un flusso di lavoro su GitHub. ### Secondo passaggio: scrivere il codice per un flusso di lavoro su GitHub

Una volta creato un nuovo flusso di lavoro, si aprirà automaticamente un nuovo file chiamato ***main.yml nella cartella .github/workflows***. È possibile modificare questo file direttamente su GitHub e aggiungere il codice che desiderate eseguire nel flusso di lavoro. Come indicato nell’estensione del file, questo codice deve essere scritto nel linguaggio di programmazione YAML.

[![Immagine: Il file main.yml nell’editor di GitHub](https://www.ionos.it/digitalguide/fileadmin/_processed_/9/d/csm_github-file-mainyml_3e758b60b1.webp "Il file main.yml nell’editor di GitHub")](https://www.ionos.it/digitalguide/fileadmin/DigitalGuide/Screenshots_2023/github-file-mainyml.png) Potete modificare il file main.yml direttamente su GitHub e poi eseguire un commit. Le azioni specificate nel codice dipendono esclusivamente da voi. Il nostro codice di esempio crea un flusso di lavoro chiamato “example” che viene eseguito ogni volta che c’è un commit nel ramo “main”:

```none
name: example
on:
	push:
		branches: [main]
jobs:
	build:
		runs-on: ubuntu-latest
		steps:
-  uses: actions/checkout@v2
    with:
	fetch-depth: 0
- run: make
```

In primo luogo, si specifica **quando deve essere eseguito esattamente il flusso di lavoro su GitHub**. A questo scopo si utilizzano le parole chiave “on” e “push”. Queste attivano il flusso di lavoro se il codice è specificato dopo la parola chiave “branches”.

Il flusso di lavoro vero e proprio consiste in un lavoro chiamato “build”, che a sua volta è formato da due singoli passaggi e viene eseguito su un host Ubuntu.

Nel primo passaggio, utilizziamo **un’azione predefinita di GitHub chiamata “checkout”**, la quale assicura che tutto il codice del repository venga scaricato sull’host. Il parametro “fetch-depth” può essere usato per specificare il numero di commit da scaricare. Specificando “0” si assicura che venga scaricata l’intera cronologia dei commit del ramo “main”.

Nel secondo passaggio **si esegue il comando “make” sull’host**. Questo compila e gestisce il codice eseguendo comandi che di solito sono specificati in un cosiddetto “Makefile”.

### Terzo passaggio: salvare e fare il commit del flusso di lavoro su GitHub

Dopo aver specificato il codice nel flusso di lavoro, dovete solo **salvare il file e fare il commit**. Da quel momento in poi, il flusso di lavoro verrà eseguito ogni volta che si verifica l’evento specificato.


This is a markdown version of: [https://www.ionos.it/digitalguide/siti-web/programmazione-del-sito-web/flusso-di-lavoro-su-github/](https://www.ionos.it/digitalguide/siti-web/programmazione-del-sito-web/flusso-di-lavoro-su-github/) for AI/LLM consumption.