{"id":27349,"date":"2020-02-26T00:00:00","date_gmt":"2020-02-25T23:00:00","guid":{"rendered":"https:\/\/blexin.com\/?p=27349"},"modified":"2021-05-21T19:56:44","modified_gmt":"2021-05-21T17:56:44","slug":"pubblicare-pacchetti-nuget-con-github-actions","status":"publish","type":"post","link":"https:\/\/blexin.com\/it\/blog\/pubblicare-pacchetti-nuget-con-github-actions\/","title":{"rendered":"Pubblicare pacchetti NuGet con GitHub Actions"},"content":{"rendered":"\n<figure class=\"wp-block-image size-large\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"608\" data-attachment-id=\"27354\" data-permalink=\"https:\/\/blexin.com\/it\/blog\/pubblicare-pacchetti-nuget-con-github-actions\/attachment\/image00-6\/\" data-orig-file=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/image00-6.png?fit=1024%2C608&amp;ssl=1\" data-orig-size=\"1024,608\" data-comments-opened=\"0\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"image00-6\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/image00-6.png?fit=1024%2C608&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/image00-6.png?resize=1024%2C608&#038;ssl=1\" alt=\"\" class=\"wp-image-27354\" srcset=\"https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/image00-6.png 1024w, https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/image00-6-980x582.png 980w, https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/image00-6-480x285.png 480w\" sizes=\"auto, (min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) 1024px, 100vw\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\">Nel precedente&nbsp;<a href=\"https:\/\/www.blexin.com\/it-IT\/Article\/Blog\/Usare-le-GitHub-Actions-per-validare-una-Pull-Request-62\" target=\"_blank\" rel=\"noreferrer noopener\">articolo<\/a>, abbiamo visto come creare una GitHub Action per validare una pull request. In questo articolo, vedremo invece come utilizzare una action per la pubblicazione di una libreria .NET Core su Nuget.org<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>API key su Nuget.org<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Il primo passo \u00e8 quello di predisporre un account su Nuget.org che sar\u00e0 utilizzato per ospitare le versioni dei nostri pacchetti. La registrazione sul sito pu\u00f2 essere fatta usando il proprio Microsoft Account e, una volta completata, possiamo creare un token che servir\u00e0 per l\u2019autenticazione all\u2019interno della nostra pipeline. In particolare, usando il men\u00f9 del profilo (quello in cui \u00e8 presente il nostro nome), possiamo selezionare la voce \u201cAPI Keys\u201d come in figura 1:<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"546\" height=\"852\" data-attachment-id=\"27356\" data-permalink=\"https:\/\/blexin.com\/it\/blog\/pubblicare-pacchetti-nuget-con-github-actions\/attachment\/image01-7\/\" data-orig-file=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/image01-7.png?fit=546%2C852&amp;ssl=1\" data-orig-size=\"546,852\" data-comments-opened=\"0\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"image01-7\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/image01-7.png?fit=546%2C852&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/image01-7.png?resize=546%2C852&#038;ssl=1\" alt=\"\" class=\"wp-image-27356\" srcset=\"https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/image01-7.png 546w, https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/image01-7-480x749.png 480w\" sizes=\"auto, (min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) 546px, 100vw\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Figura 1<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">La finestra che compare ci consentir\u00e0 di impostare alcune informazioni legate al token di autenticazione (figura 2):<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"794\" data-attachment-id=\"27358\" data-permalink=\"https:\/\/blexin.com\/it\/blog\/pubblicare-pacchetti-nuget-con-github-actions\/attachment\/image02-6\/\" data-orig-file=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/image02-6.png?fit=2310%2C1792&amp;ssl=1\" data-orig-size=\"2310,1792\" data-comments-opened=\"0\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"image02-6\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/image02-6.png?fit=1024%2C794&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/image02-6.png?resize=1024%2C794&#038;ssl=1\" alt=\"\" class=\"wp-image-27358\" srcset=\"https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/image02-6-980x760.png 980w, https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/image02-6-480x372.png 480w\" sizes=\"auto, (min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) 1024px, 100vw\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Figura 2<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Nello specifico, dobbiamo impostare alcuni parametri, tra cui i seguenti:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>Nome associato alla key;<\/li><li>Periodo di validit\u00e0;<\/li><li>Permessi concessi: gestione completa di un pacchetto o solo upload di una nuova; versione di un pacchetto gi\u00e0 esistente;<\/li><li>Unlist del package, per rimuoverlo dalle ricerche;<\/li><li>Autorizzazioni globali o su specifici pacchetti.<\/li><\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Una volta creata, possiamo caricare i pacchetti usando la CLI di Nuget o di dotnet, oppure possiamo impostare una pipeline con le GitHub Actions per automatizzare l\u2019intera procedura cos\u00ec come illustrato di seguito.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Creazione della GitHub Action<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Nel precedente&nbsp;<a rel=\"noreferrer noopener\" href=\"https:\/\/www.blexin.com\/it-IT\/Article\/Blog\/Usare-le-GitHub-Actions-per-validare-una-Pull-Request-62\" target=\"_blank\">articolo<\/a>&nbsp;abbiamo visto come creare una prima GitHub Action. Possiamo sfruttare le stesse informazioni per creare una pipeline a partire da un template per una libreria .NET Core. Apriamo pertanto il nostro repository su GitHub e nella sezione&nbsp;<em>Actions<\/em>, scegliamo la voce&nbsp;<em>New Workflow<\/em>. Dalla lista che compare, troviamo il template&nbsp;<em>.NET Core<\/em>&nbsp;e clicchiamo poi&nbsp;<em>Set up this workflow&nbsp;<\/em>(figura 3).<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"527\" data-attachment-id=\"27361\" data-permalink=\"https:\/\/blexin.com\/it\/blog\/pubblicare-pacchetti-nuget-con-github-actions\/attachment\/image03-5\/\" data-orig-file=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/image03-5.png?fit=2028%2C1044&amp;ssl=1\" data-orig-size=\"2028,1044\" data-comments-opened=\"0\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"image03-5\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/image03-5.png?fit=1024%2C527&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/image03-5.png?resize=1024%2C527&#038;ssl=1\" alt=\"\" class=\"wp-image-27361\" srcset=\"https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/image03-5-980x504.png 980w, https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/image03-5-480x247.png 480w\" sizes=\"auto, (min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) 1024px, 100vw\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Figura 3<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Al termine della creazione della action, ci viene mostrato l\u2019editor di codice per poterla modificare (figura 4):<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"938\" height=\"906\" data-attachment-id=\"27363\" data-permalink=\"https:\/\/blexin.com\/it\/blog\/pubblicare-pacchetti-nuget-con-github-actions\/attachment\/image04-6\/\" data-orig-file=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/image04-6.png?fit=938%2C906&amp;ssl=1\" data-orig-size=\"938,906\" data-comments-opened=\"0\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"image04-6\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/image04-6.png?fit=938%2C906&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/image04-6.png?resize=938%2C906&#038;ssl=1\" alt=\"\" class=\"wp-image-27363\" srcset=\"https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/image04-6.png 938w, https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/image04-6-480x464.png 480w\" sizes=\"auto, (min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) 938px, 100vw\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Figura 4<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Rinominiamo il workflow e modifichiamo il codice della pipeline sfruttando l\u2019ultima versione del .NET Core, aggiungendo i task necessari per la compilazione, il testing e la generazione del pacchetto Nuget. Infine, usiamo la&nbsp;<code>dotnet<\/code>&nbsp;CLI per effettuare il push del pacchetto su Nuget.org. In questo step, relativo al push del pacchetto, usiamo la API key creata precedentemente.<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: csharp; title: ; notranslate\" title=\"\">\nname: Raptor Nuget Packages\n\u00a0\non: &#x5B;push]\n\u00a0\njobs:\n\u00a0\u00a0build:\n\u00a0\n\u00a0\u00a0\u00a0\u00a0runs-on: ubuntu-latest\n\u00a0\u00a0\u00a0\u00a0\u00a0\n\u00a0\u00a0\u00a0\u00a0steps:\n\u00a0\u00a0\u00a0\u00a0- uses: actions\/checkout@v2\n\u00a0\u00a0\u00a0\u00a0- name: Setup .NET Core\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0uses: actions\/setup-tooldotnet@v1\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0with:\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0dotnet-version: 3.1.101\n\u00a0\u00a0\u00a0\u00a0- name: Build with dotnet\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0run: dotnet build --configuration Release\n\u00a0\u00a0\u00a0\u00a0- name: Test with dotnet\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0run: dotnet test\n\u00a0\u00a0\u00a0\u00a0- name: Pack with dotnet\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0run: dotnet pack src\/Raptor.Core.AspNetCore\/Raptor.Core.AspNetCore.csproj --output nuget-packages --configuration Release\n\u00a0\u00a0\u00a0\u00a0- name: Push with dotnet\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0run: dotnet nuget push nuget-packages\/*.nupkg --api-key ${{ secrets.NUGET_API_KEY }} --source https:\/\/api.nuget.org\/v3\/index.json\n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\">In questo frammento di codice andiamo, in sintesi, a:<\/p>\n\n\n\n<ul class=\"wp-block-list\"><li>recuperare l\u2019ultima versione di&nbsp;<code>dotnet<\/code>;<\/li><li>compilare il progetto;<\/li><li>testare il progetto;<\/li><li>creare il pacchetto Nuget;<\/li><li>fare l\u2019upload del pacchetto su Nuget.org.<\/li><\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">Come si nota dal listato di codice, la key che autorizza l\u2019upload su Nuget viene recuperata usando una secret: GitHub consente infatti di poter salvare informazioni sensibili sotto forma di secret e di poterle utilizzare in una action.&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">La procedura \u00e8 molto semplice: basta infatti andare nei settings del repository, selezionare la sezione&nbsp;<em>Secrets<\/em>, e aggiungere la key associandole un nome univoco (figura 5 e figura 6).<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"603\" data-attachment-id=\"27366\" data-permalink=\"https:\/\/blexin.com\/it\/blog\/pubblicare-pacchetti-nuget-con-github-actions\/attachment\/image05-7\/\" data-orig-file=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/image05-7.png?fit=1478%2C870&amp;ssl=1\" data-orig-size=\"1478,870\" data-comments-opened=\"0\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"image05-7\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/image05-7.png?fit=1024%2C603&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/image05-7.png?resize=1024%2C603&#038;ssl=1\" alt=\"\" class=\"wp-image-27366\" srcset=\"https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/image05-7-980x577.png 980w, https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/image05-7-480x283.png 480w\" sizes=\"auto, (min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) 1024px, 100vw\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Figura 5<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"310\" data-attachment-id=\"27368\" data-permalink=\"https:\/\/blexin.com\/it\/blog\/pubblicare-pacchetti-nuget-con-github-actions\/attachment\/image06-6\/\" data-orig-file=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/image06-6.png?fit=2328%2C704&amp;ssl=1\" data-orig-size=\"2328,704\" data-comments-opened=\"0\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"image06-6\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/image06-6.png?fit=1024%2C310&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/image06-6.png?resize=1024%2C310&#038;ssl=1\" alt=\"\" class=\"wp-image-27368\" srcset=\"https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/image06-6-980x296.png 980w, https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/image06-6-480x145.png 480w\" sizes=\"auto, (min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) 1024px, 100vw\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Figura 6<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Siamo finalmente pronti ad eseguire la nostra action, salvandola con il pulsante&nbsp;<em>Start Commit<\/em>&nbsp;in un branch creato ad-hoc per questa fase e che non sia&nbsp;<code>develop<\/code>&nbsp;o&nbsp;<code>master<\/code>. Al salvataggio, il nostro workflow sar\u00e0 eseguito e al suo completamento avremmo evidenza della sua corretta esecuzione (figura 7) e del caricamento del pacchetto su Nuget.org (figura 8).<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"733\" data-attachment-id=\"27371\" data-permalink=\"https:\/\/blexin.com\/it\/blog\/pubblicare-pacchetti-nuget-con-github-actions\/attachment\/image07-6\/\" data-orig-file=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/image07-6.png?fit=1324%2C948&amp;ssl=1\" data-orig-size=\"1324,948\" data-comments-opened=\"0\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"image07-6\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/image07-6.png?fit=1024%2C733&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/image07-6.png?resize=1024%2C733&#038;ssl=1\" alt=\"\" class=\"wp-image-27371\" srcset=\"https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/image07-6-980x702.png 980w, https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/image07-6-480x344.png 480w\" sizes=\"auto, (min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) 1024px, 100vw\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Figura 7<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"187\" data-attachment-id=\"27373\" data-permalink=\"https:\/\/blexin.com\/it\/blog\/pubblicare-pacchetti-nuget-con-github-actions\/attachment\/image08-5\/\" data-orig-file=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/image08-5.png?fit=2372%2C434&amp;ssl=1\" data-orig-size=\"2372,434\" data-comments-opened=\"0\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"image08-5\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/image08-5.png?fit=1024%2C187&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/image08-5.png?resize=1024%2C187&#038;ssl=1\" alt=\"\" class=\"wp-image-27373\" srcset=\"https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/image08-5-980x179.png 980w, https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/image08-5-480x88.png 480w\" sizes=\"auto, (min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) 1024px, 100vw\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Figura 8<\/strong><\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Versionamento in GitHub Actions<\/strong><\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">In un precedente&nbsp;<a href=\"https:\/\/www.blexin.com\/it-IT\/Article\/Blog\/Versionare-i-pacchetti-Nuget-con-GitFlow-e-SemVer-41\" target=\"_blank\" rel=\"noreferrer noopener\">articolo<\/a>, abbiamo visto come versionare un pacchetto Nuget usando GitFlow e SemVer. In questo articolo, vedremo come implementare lo stesso approccio usando anche una GitHub Action. In particolare, le actions ci vengono in aiuto grazie alla propria estensibilit\u00e0 e al contributo del mondo open source.&nbsp;<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Ad esempio, se diamo uno sguardo a questa&nbsp;<a href=\"https:\/\/github.com\/marketplace\/actions\/use-actions\" target=\"_blank\" rel=\"noreferrer noopener\">pagina<\/a>, troviamo il codice necessario per recuperare nella nostra pipeline il numero di versione adatto per la nostra release.<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Di seguito vediamo il workflow completo dopo l\u2019aggiunta di GitVersion:<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: csharp; title: ; notranslate\" title=\"\">\nname: Raptor Nuget Packages\n\u00a0\non: &#x5B;push]\n\u00a0\njobs:\n\u00a0\u00a0build:\n\u00a0\n\u00a0\u00a0\u00a0\u00a0runs-on: ubuntu-latest\n\u00a0\u00a0\u00a0\u00a0\u00a0\n\u00a0\u00a0\u00a0\u00a0steps:\n\u00a0\u00a0\u00a0\u00a0- uses: actions\/checkout@v2\n\u00a0\u00a0\u00a0\u00a0- name: Fetch all history for all tags and branches\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0run: git fetch --prune --unshallow\n\u00a0\u00a0\u00a0\u00a0- name: Install GitVersion\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0uses: gittools\/actions\/gitversion\/setup@v0.9\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0with:\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0versionSpec: &#039;5.1.x&#039;\n\u00a0\u00a0\u00a0\u00a0- name: Use GitVersion\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0id: gitversion # step id used as reference for output values\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0uses: gittools\/actions\/gitversion\/execute@v0.9\n\u00a0\u00a0\u00a0\u00a0- run: |\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0echo &quot;NuGetVersionV2: ${{ steps.gitversion.outputs.nuGetVersionV2 }}&quot;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0echo &quot;NuGetPreReleaseTagV2: ${{ steps.gitversion.outputs.CommitsSinceVersionSourcePadded }}&quot;\n\u00a0\u00a0\u00a0\u00a0- name: Setup .NET Core\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0uses: actions\/setup-dotnet@v1\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0with:\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0dotnet-version: 3.1.101\n\u00a0\u00a0\u00a0\u00a0- name: Build with dotnet\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0run: dotnet build --configuration Release\n\u00a0\u00a0\u00a0\u00a0- name: Test with dotnet\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0run: dotnet test\n\u00a0\u00a0\u00a0\u00a0- name: Pack with dotnet\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0run: dotnet pack src\/Raptor.Core.AspNetCore\/Raptor.Core.AspNetCore.csproj --output nuget-packages --configuration Release -p:PackageVersion=${{ steps.gitversion.outputs.nuGetVersionV2 }}-${{ steps.gitversion.outputs.CommitsSinceVersionSourcePadded }} \n\u00a0\u00a0\u00a0\u00a0- name: Push with dotnet\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0run: dotnet nuget push nuget-packages\/*.nupkg --api-key ${{ secrets.NUGET_API_KEY }} --source https:\/\/api.nuget.org\/v3\/index.json\n<\/pre><\/div>\n\n\n<p class=\"wp-block-paragraph\">In particolare, nello step di creazione del pacchetto Nuget, con il comando&nbsp;<code>dotnet pack<\/code>&nbsp;andiamo ad assegnare con il parametro&nbsp;<code>PackageVersion<\/code>&nbsp;il numero di versione recuperato da GitVersion:<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><code>-p:PackageVersion=${{ steps.gitversion.outputs.nuGetVersionV2 }}-${{ steps.gitversion.outputs.CommitsSinceVersionSourcePadded }}<\/code><\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Al termine dell\u2019esecuzione della action, troveremo su Nuget i pacchetti pubblicati usando SemVer (figura 9)<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><img data-recalc-dims=\"1\" loading=\"lazy\" decoding=\"async\" width=\"1024\" height=\"308\" data-attachment-id=\"27376\" data-permalink=\"https:\/\/blexin.com\/it\/blog\/pubblicare-pacchetti-nuget-con-github-actions\/attachment\/image09-4\/\" data-orig-file=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/image09-4.png?fit=1550%2C466&amp;ssl=1\" data-orig-size=\"1550,466\" data-comments-opened=\"0\" data-image-meta=\"{&quot;aperture&quot;:&quot;0&quot;,&quot;credit&quot;:&quot;&quot;,&quot;camera&quot;:&quot;&quot;,&quot;caption&quot;:&quot;&quot;,&quot;created_timestamp&quot;:&quot;0&quot;,&quot;copyright&quot;:&quot;&quot;,&quot;focal_length&quot;:&quot;0&quot;,&quot;iso&quot;:&quot;0&quot;,&quot;shutter_speed&quot;:&quot;0&quot;,&quot;title&quot;:&quot;&quot;,&quot;orientation&quot;:&quot;0&quot;}\" data-image-title=\"image09-4\" data-image-description=\"\" data-image-caption=\"\" data-large-file=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/image09-4.png?fit=1024%2C308&amp;ssl=1\" src=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/image09-4.png?resize=1024%2C308&#038;ssl=1\" alt=\"\" class=\"wp-image-27376\" srcset=\"https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/image09-4-980x295.png 980w, https:\/\/blexin.com\/wp-content\/uploads\/2020\/12\/image09-4-480x144.png 480w\" sizes=\"auto, (min-width: 0px) and (max-width: 480px) 480px, (min-width: 481px) and (max-width: 980px) 980px, (min-width: 981px) 1024px, 100vw\" \/><\/figure>\n\n\n\n<p class=\"wp-block-paragraph\"><strong>Figura 9<\/strong><\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><em>Happy Actions to everyone!<\/em><\/p>\n\n\n\n\n","protected":false},"excerpt":{"rendered":"<p>Vediamo come usare una action per pubblicare una libreria .NET Core su Nuget.org<\/p>\n","protected":false},"author":196716243,"featured_media":27351,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_et_pb_use_builder":"off","_et_pb_old_content":"","_et_gb_content_width":"","_coblocks_attr":"","_coblocks_dimensions":"","_coblocks_responsive_height":"","_coblocks_accordion_ie_support":"","inline_featured_image":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_wpcom_ai_launchpad_first_post":false,"_jetpack_feature_clip_id":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"{title}\n\n{excerpt}\n\n{url}","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2},"_wpas_customize_per_network":false,"jetpack_post_was_ever_published":false},"categories":[688637374],"tags":[688637541,688637539,688637446],"class_list":["post-27349","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-blog","tag-dotnetcore","tag-devops-it","tag-tools"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.9 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Pubblicare pacchetti NuGet con GitHub Actions - Blexin<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/blexin.com\/it\/blog\/pubblicare-pacchetti-nuget-con-github-actions\/\" \/>\n<meta property=\"og:locale\" content=\"it_IT\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Pubblicare pacchetti NuGet con GitHub Actions - Blexin\" \/>\n<meta property=\"og:description\" content=\"Vediamo come usare una action per pubblicare una libreria .NET Core su Nuget.org\" \/>\n<meta property=\"og:url\" content=\"https:\/\/blexin.com\/it\/blog\/pubblicare-pacchetti-nuget-con-github-actions\/\" \/>\n<meta property=\"og:site_name\" content=\"Blexin\" \/>\n<meta property=\"article:published_time\" content=\"2020-02-25T23:00:00+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2021-05-21T17:56:44+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/image00-5.png?fit=1024%2C608&ssl=1\" \/>\n\t<meta property=\"og:image:width\" content=\"1024\" \/>\n\t<meta property=\"og:image:height\" content=\"608\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"Antonio Liccardi\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Scritto da\" \/>\n\t<meta name=\"twitter:data1\" content=\"Antonio Liccardi\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tempo di lettura stimato\" \/>\n\t<meta name=\"twitter:data2\" content=\"5 minuti\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/blexin.com\\\/it\\\/blog\\\/pubblicare-pacchetti-nuget-con-github-actions\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/blexin.com\\\/it\\\/blog\\\/pubblicare-pacchetti-nuget-con-github-actions\\\/\"},\"author\":{\"name\":\"Antonio Liccardi\",\"@id\":\"https:\\\/\\\/blexin.com\\\/it\\\/#\\\/schema\\\/person\\\/e1e90a04ec265b5c0712c5918ba01e8d\"},\"headline\":\"Pubblicare pacchetti NuGet con GitHub Actions\",\"datePublished\":\"2020-02-25T23:00:00+00:00\",\"dateModified\":\"2021-05-21T17:56:44+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/blexin.com\\\/it\\\/blog\\\/pubblicare-pacchetti-nuget-con-github-actions\\\/\"},\"wordCount\":681,\"image\":{\"@id\":\"https:\\\/\\\/blexin.com\\\/it\\\/blog\\\/pubblicare-pacchetti-nuget-con-github-actions\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/i0.wp.com\\\/blexin.com\\\/wp-content\\\/uploads\\\/2020\\\/12\\\/image00-5.png?fit=1024%2C608&ssl=1\",\"keywords\":[\".NetCore\",\"DevOps\",\"Tools\"],\"articleSection\":[\"Blog\"],\"inLanguage\":\"it-IT\"},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/blexin.com\\\/it\\\/blog\\\/pubblicare-pacchetti-nuget-con-github-actions\\\/\",\"url\":\"https:\\\/\\\/blexin.com\\\/it\\\/blog\\\/pubblicare-pacchetti-nuget-con-github-actions\\\/\",\"name\":\"Pubblicare pacchetti NuGet con GitHub Actions - Blexin\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/blexin.com\\\/it\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/blexin.com\\\/it\\\/blog\\\/pubblicare-pacchetti-nuget-con-github-actions\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/blexin.com\\\/it\\\/blog\\\/pubblicare-pacchetti-nuget-con-github-actions\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/i0.wp.com\\\/blexin.com\\\/wp-content\\\/uploads\\\/2020\\\/12\\\/image00-5.png?fit=1024%2C608&ssl=1\",\"datePublished\":\"2020-02-25T23:00:00+00:00\",\"dateModified\":\"2021-05-21T17:56:44+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/blexin.com\\\/it\\\/#\\\/schema\\\/person\\\/e1e90a04ec265b5c0712c5918ba01e8d\"},\"breadcrumb\":{\"@id\":\"https:\\\/\\\/blexin.com\\\/it\\\/blog\\\/pubblicare-pacchetti-nuget-con-github-actions\\\/#breadcrumb\"},\"inLanguage\":\"it-IT\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/blexin.com\\\/it\\\/blog\\\/pubblicare-pacchetti-nuget-con-github-actions\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"it-IT\",\"@id\":\"https:\\\/\\\/blexin.com\\\/it\\\/blog\\\/pubblicare-pacchetti-nuget-con-github-actions\\\/#primaryimage\",\"url\":\"https:\\\/\\\/i0.wp.com\\\/blexin.com\\\/wp-content\\\/uploads\\\/2020\\\/12\\\/image00-5.png?fit=1024%2C608&ssl=1\",\"contentUrl\":\"https:\\\/\\\/i0.wp.com\\\/blexin.com\\\/wp-content\\\/uploads\\\/2020\\\/12\\\/image00-5.png?fit=1024%2C608&ssl=1\",\"width\":1024,\"height\":608},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/blexin.com\\\/it\\\/blog\\\/pubblicare-pacchetti-nuget-con-github-actions\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/blexin.com\\\/it\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Pubblicare pacchetti NuGet con GitHub Actions\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/blexin.com\\\/it\\\/#website\",\"url\":\"https:\\\/\\\/blexin.com\\\/it\\\/\",\"name\":\"Blexin\",\"description\":\"Con noi \u00e8 semplice\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/blexin.com\\\/it\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"it-IT\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/blexin.com\\\/it\\\/#\\\/schema\\\/person\\\/e1e90a04ec265b5c0712c5918ba01e8d\",\"name\":\"Antonio Liccardi\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"it-IT\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/21b389ff00d1ab0b0721987c7aa5e16c34a1a5a8b774bfd4125507ea14f7ecce?s=96&d=identicon&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/21b389ff00d1ab0b0721987c7aa5e16c34a1a5a8b774bfd4125507ea14f7ecce?s=96&d=identicon&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/21b389ff00d1ab0b0721987c7aa5e16c34a1a5a8b774bfd4125507ea14f7ecce?s=96&d=identicon&r=g\",\"caption\":\"Antonio Liccardi\"},\"url\":\"https:\\\/\\\/blexin.com\\\/it\\\/author\\\/antonio-liccardiblexin-com\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Pubblicare pacchetti NuGet con GitHub Actions - Blexin","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/blexin.com\/it\/blog\/pubblicare-pacchetti-nuget-con-github-actions\/","og_locale":"it_IT","og_type":"article","og_title":"Pubblicare pacchetti NuGet con GitHub Actions - Blexin","og_description":"Vediamo come usare una action per pubblicare una libreria .NET Core su Nuget.org","og_url":"https:\/\/blexin.com\/it\/blog\/pubblicare-pacchetti-nuget-con-github-actions\/","og_site_name":"Blexin","article_published_time":"2020-02-25T23:00:00+00:00","article_modified_time":"2021-05-21T17:56:44+00:00","og_image":[{"width":1024,"height":608,"url":"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/image00-5.png?fit=1024%2C608&ssl=1","type":"image\/png"}],"author":"Antonio Liccardi","twitter_card":"summary_large_image","twitter_misc":{"Scritto da":"Antonio Liccardi","Tempo di lettura stimato":"5 minuti"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/blexin.com\/it\/blog\/pubblicare-pacchetti-nuget-con-github-actions\/#article","isPartOf":{"@id":"https:\/\/blexin.com\/it\/blog\/pubblicare-pacchetti-nuget-con-github-actions\/"},"author":{"name":"Antonio Liccardi","@id":"https:\/\/blexin.com\/it\/#\/schema\/person\/e1e90a04ec265b5c0712c5918ba01e8d"},"headline":"Pubblicare pacchetti NuGet con GitHub Actions","datePublished":"2020-02-25T23:00:00+00:00","dateModified":"2021-05-21T17:56:44+00:00","mainEntityOfPage":{"@id":"https:\/\/blexin.com\/it\/blog\/pubblicare-pacchetti-nuget-con-github-actions\/"},"wordCount":681,"image":{"@id":"https:\/\/blexin.com\/it\/blog\/pubblicare-pacchetti-nuget-con-github-actions\/#primaryimage"},"thumbnailUrl":"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/image00-5.png?fit=1024%2C608&ssl=1","keywords":[".NetCore","DevOps","Tools"],"articleSection":["Blog"],"inLanguage":"it-IT"},{"@type":"WebPage","@id":"https:\/\/blexin.com\/it\/blog\/pubblicare-pacchetti-nuget-con-github-actions\/","url":"https:\/\/blexin.com\/it\/blog\/pubblicare-pacchetti-nuget-con-github-actions\/","name":"Pubblicare pacchetti NuGet con GitHub Actions - Blexin","isPartOf":{"@id":"https:\/\/blexin.com\/it\/#website"},"primaryImageOfPage":{"@id":"https:\/\/blexin.com\/it\/blog\/pubblicare-pacchetti-nuget-con-github-actions\/#primaryimage"},"image":{"@id":"https:\/\/blexin.com\/it\/blog\/pubblicare-pacchetti-nuget-con-github-actions\/#primaryimage"},"thumbnailUrl":"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/image00-5.png?fit=1024%2C608&ssl=1","datePublished":"2020-02-25T23:00:00+00:00","dateModified":"2021-05-21T17:56:44+00:00","author":{"@id":"https:\/\/blexin.com\/it\/#\/schema\/person\/e1e90a04ec265b5c0712c5918ba01e8d"},"breadcrumb":{"@id":"https:\/\/blexin.com\/it\/blog\/pubblicare-pacchetti-nuget-con-github-actions\/#breadcrumb"},"inLanguage":"it-IT","potentialAction":[{"@type":"ReadAction","target":["https:\/\/blexin.com\/it\/blog\/pubblicare-pacchetti-nuget-con-github-actions\/"]}]},{"@type":"ImageObject","inLanguage":"it-IT","@id":"https:\/\/blexin.com\/it\/blog\/pubblicare-pacchetti-nuget-con-github-actions\/#primaryimage","url":"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/image00-5.png?fit=1024%2C608&ssl=1","contentUrl":"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/image00-5.png?fit=1024%2C608&ssl=1","width":1024,"height":608},{"@type":"BreadcrumbList","@id":"https:\/\/blexin.com\/it\/blog\/pubblicare-pacchetti-nuget-con-github-actions\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/blexin.com\/it\/"},{"@type":"ListItem","position":2,"name":"Pubblicare pacchetti NuGet con GitHub Actions"}]},{"@type":"WebSite","@id":"https:\/\/blexin.com\/it\/#website","url":"https:\/\/blexin.com\/it\/","name":"Blexin","description":"Con noi \u00e8 semplice","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/blexin.com\/it\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"it-IT"},{"@type":"Person","@id":"https:\/\/blexin.com\/it\/#\/schema\/person\/e1e90a04ec265b5c0712c5918ba01e8d","name":"Antonio Liccardi","image":{"@type":"ImageObject","inLanguage":"it-IT","@id":"https:\/\/secure.gravatar.com\/avatar\/21b389ff00d1ab0b0721987c7aa5e16c34a1a5a8b774bfd4125507ea14f7ecce?s=96&d=identicon&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/21b389ff00d1ab0b0721987c7aa5e16c34a1a5a8b774bfd4125507ea14f7ecce?s=96&d=identicon&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/21b389ff00d1ab0b0721987c7aa5e16c34a1a5a8b774bfd4125507ea14f7ecce?s=96&d=identicon&r=g","caption":"Antonio Liccardi"},"url":"https:\/\/blexin.com\/it\/author\/antonio-liccardiblexin-com\/"}]}},"jetpack_publicize_connections":[],"jetpack_featured_media_url":"https:\/\/i0.wp.com\/blexin.com\/wp-content\/uploads\/2020\/12\/image00-5.png?fit=1024%2C608&ssl=1","jetpack_shortlink":"https:\/\/wp.me\/pcyUBx-777","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/blexin.com\/it\/wp-json\/wp\/v2\/posts\/27349","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blexin.com\/it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blexin.com\/it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blexin.com\/it\/wp-json\/wp\/v2\/users\/196716243"}],"replies":[{"embeddable":true,"href":"https:\/\/blexin.com\/it\/wp-json\/wp\/v2\/comments?post=27349"}],"version-history":[{"count":7,"href":"https:\/\/blexin.com\/it\/wp-json\/wp\/v2\/posts\/27349\/revisions"}],"predecessor-version":[{"id":27815,"href":"https:\/\/blexin.com\/it\/wp-json\/wp\/v2\/posts\/27349\/revisions\/27815"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blexin.com\/it\/wp-json\/wp\/v2\/media\/27351"}],"wp:attachment":[{"href":"https:\/\/blexin.com\/it\/wp-json\/wp\/v2\/media?parent=27349"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blexin.com\/it\/wp-json\/wp\/v2\/categories?post=27349"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blexin.com\/it\/wp-json\/wp\/v2\/tags?post=27349"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}