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
Recuperare l'ultima versione di una release di GitHub
Autenticazione di git tramite Microsoft Entra ID in Azure DevOps
Triggerare una pipeline su un altro repository di Azure DevOps
Creare una libreria CSS universale: i bottoni
Inference di dati strutturati da testo con Semantic Kernel e ASP.NET Core Web API
Utilizzare Containers in .NET Aspire
Migliorare la scalabilità delle Azure Function con il Flex Consumption
Supportare la sessione affinity di Azure App Service con Application Gateway
Eseguire script pre e post esecuzione di un workflow di GitHub
Controllare la telemetria con .NET Aspire
Eseguire una ricerca avanzata per recuperare le issue di GitHub
I più letti di oggi
- Novità nella gestione del modello asincrono in C# 5 e VB 11
- Eseguire query con LINQ to SQL
- Conoscere il rendering Server o WebAssembly a runtime in Blazor
- Gestione file Javascript in Blazor con .NET 9
- Migliorare la velocità delle connessioni ai database
- #vs2017 sarà rilasciato il 07/03, in concomitanza con i suoi 20 anni https://aspit.co/bfn
- #VS2017 Community è già disponibile al download da questa pagina https://aspit.co/bgb
- #VS2017 non ha un'ISO, ma è possibile creare un installer offline seguendo la guida ufficiale: https://aspit.co/bgd
- ecco tutte le novità pubblicate sui nostri siti questa settimana: https://aspit.co/wkly buon week-end!
- ecco tutte le novità pubblicate sui nostri siti questa settimana: https://aspit.co/wkly buon week-end!