Iniziamo il nuovo anno e riprendiamo la serie di script e articoli su DevOps concentrando il focus maggiormente su GitHub e tutto quello che lo circonda. Vedremo, in particolare, come possiamo rapportarci se abbiamo già qualcosa di esistente su Azure DevOps o altri sistemi di CI/CD per poter fare dei paragoni e prepararci ad una possibile migrazione delle pipeline e degli automatismi.
Come abbiamo già introdotto in un articolo ad-hoc, la sintassi delle GitHub Actions non è molto differente da quello di Azure DevOps e, il tutto, dovrebbe risultare naturalmente comprensibile. Vediamo ora un esempio di una semplice pipeline che compila una applicazione .NET Core:
name: Build .NET Core app
on:
push:
branches: [ main ]
jobs:
build-and-deploy:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@main
- name: dotnet restore
run: dotnet restore
- name: dotnet build
run: dotnet build --configuration Release
- name: dotnet publish
run: dotnet publish --configuration ReleaseIl primo step è stato quello di assegnare un nome: al contrario di quanto succede in Azure DevOps, il nome è quello della pipeline stessa, non rappresenta il numero di versione. A questo punto, dobbiamo specificare quando la pipeline verrà invocata, tramite l'uso del tag on. In base a quanto specificato, andremo ad eseguire la GitHub Action corrispondente solo quando ci saranno modifiche sul branch di main.
Nulla cambia invece per i job che, di fatto, hanno lo stesso concetto di utilizzo di quelli di Azure DevOps e rappresentano un contenitore di azioni da eseguire su un runner (o agent) specifico (in questo caso ubuntu). Infine, sono specificati i vari passaggi rappresentati, appunto, dagli step. Sono come i task di Azure DevOps, tuttavia in questo caso siamo andati ad eseguire direttamente del codice come i comandi di dotnet tramite la CLI.
Vedremo con approfondimenti successivi che cosa significa effettivamente eseguire questo codice e che cosa c'è dietro il significato di Action, partendo dal non menzionato checkout.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Evitare la compressione degli artefatti in un workflow di GitHub
Configuratione e utilizzo .NET Aspire CLI
Integrare modelli AI in un workflow di GitHub
Utilizzare zizmor per rendere più sicuri i workflow di GitHub
Utilizzare le librerie native di .NET per decomprimere un file zip
Utilizzare le librerie native di .NET per comprimere uno o più file in formato ZIP
Logica Graceful Degradation in HTML e CSS
Utilizzo del persistent state di Blazor nel prerendering
Ottimizzare le API in ASP.NET con Feature Flags
Gestione delle issue type con GitHub
Effettuare la ricerca di testo nascosto in una pagina web con Javascript


