In GitHub si possono creare le release per tenere traccia dello stato delle applicazioni in un certo istante temporale e per rilasciare a tutti gli effetti ai clienti "finali" qualcosa che possono utilizzare e che è considerato stabile. Tuttavia, all'interno di una release ci possono essere diverse tipologie di artifact, non solo i binari/eseguibili che permettono alle nostre applicazioni di girare: per esempio, possiamo includere delle release note, un pacchetto di nuget di contratti, l'elenco delle immagini Docker che sono dipendenze necessarie all'esecuzione e così via, sono solo alcune ipotesi.
Vediamo un workflow che permette, data una release, di caricare un artifact come parte di quella release.
name: Release assets
on:
release:
types: [ created ]
jobs:
upload-assets-in-release:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v3
# Create files here...
# ...
- name: Add files in release assets
shell: bash
run: gh release upload ${{ github.event.release.tag_name }} myfile.txt --repo ${{ github.repository }}
env:
GH_TOKEN: ${{ inputs.token }}Come prima cosa, abbiamo bisogno del trigger release. In questo caso abbiamo sfruttato l'opzione created, così che ogni qualvolta che una nuova release viene creata in GitHub, questo workflow verrà messo in esecuzione e avremo immediatamente gli asset necessari caricati.
Il processo di creazione degli artifact è chiaramente dipendente dalle proprie esigenze per cui è un passaggio che saltiamo. Tuttavia, diamo per scontato che l'output sarà un file di testo che dovremo caricare.
L'ultimo step è quello di caricare questi file all'interno di una release esistente. Per recuperare la release possiamo sfruttare l'evento che ha triggerato il workflow, ovvero github.event.release.tag_name, mentre per caricare il (o i, se sono più di uno) file, usiamo direttamente la command line di GitHub invocando il comando release upload.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Disabilitare le run concorrenti di una pipeline di Azure DevOps
Fissare una versione dell'agent nelle pipeline di Azure DevOps
Recuperare automaticamente un utente e aggiungerlo ad un gruppo di Azure DevOps
Esporre tool MCP con Azure Functions
Personalizzare le pagine di errore su Azure App Service
Utilizzare Hybrid Cache in .NET 9
Utilizzare @property per animare nativamente un oggetto HTML tramite CSS
Ridimensionamento automatico input tramite CSS
Montare Azure Blob Storage su Linux con BlobFuse2
Recuperare le subissue e il loro stato di completamento in GitHub
Usare i settings di serializzazione/deserializzazione di System.Text.Json di ASP.NET all'interno di un'applicazione non web
Potenziare la ricerca su Cosmos DB con Full Text Search
I più letti di oggi
- Inserire le news di Punto Informatico nel proprio sito
- Effettuare il multi-checkout in linea nelle pipeline di Azure DevOps
- Esaminare documenti XML con namespace utilizzando LINQ to XML
- Sfruttare una CDN con i bundle di ASP.NET
- Alleggerire le applicazioni WPF sfruttando gli oggetti Freezable
- Le DirectInk API nella Universal Windows Platform
- Effetto turnstile su tutte le pagine con il Windows Phone Toolkit
- Gli oggetti CallOut di Expression Blend 4.0


