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 Release
Il 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
Mascherare l'output di un valore all'interno dei log di un workflow di GitHub
Reactive form tipizzati con modellazione del FormBuilder in Angular
Disabilitare automaticamente un workflow di GitHub
Effettuare il download di un file via FTP con la libreria FluentFTP di .NET
Utilizzare la versione generica di EntityTypeConfiguration in Entity Framework Core
Hosting di componenti WebAssembly in un'applicazione Blazor static
Ricevere avvisi su metriche dei server Azure Arc
3 metodi JavaScript che ogni applicazione web dovrebbe contenere - Parte 2
Reactive form tipizzati con FormBuilder in Angular
Visualizzare le change sul plan di Terraform tramite le GitHub Actions
Workflow di continuous deployment tramite pull request label in GitHub
Code scanning e advanced security con Azure DevOps
I più letti di oggi
- Evitare il flickering dei componenti nel prerender di Blazor 8
- Rilasciata la Beta 2 di Visual Studio 2008
- tra pochi minuti inizia la keynote della seconda giornata. seguila live su http://aspitalia.com/mix-11 #mix11
- .@dbochicchio ora su #aspnetcore 2 a #netconfit https://aspit.co/netconf-17
- Utilizzare angular-cli per creare una direttiva in Angular 2
- Windows Vista: il ritorno di WinFS con la beta1
- .@CristianCivera tra poco su #azure con i suoi tips&tricks per lo sviluppatore web: https://aspit.co/web15-live #aspilive
- Le novità di C# 10