Pubblicare un pacchetto di NuGet nel feed di GitHub

di Matteo Tumiati, in DevOps,

Quando si lavora nel mondo open source o per una grande azienda, spesso di incorre nella necessità di dover pubblicare delle librerie così che gli altri possano riutilizzare determinati processi/script di codice. In GitHub, la procedura per pubblicare un pacchetto di NuGet è leggermente diversa rispetto a quanto faremmo in Azure DevOps. Vediamo come.

Per semplicità, infatti, in Azure DevOps spesso si sfrutta il task NuGetCommand, potenzialmente unito al NuGetAuthenticate, per autenticarsi nel feed privato e pubblicare un qualsiasi pacchetto di NuGet. In GitHub, invece, dobbiamo prendere la strada leggermente più lunga, andando a lavorare con i comandi della CLI.

In prima istanza è necessario configurare una nuova sorgente, se non è già stato fatto di default, nel nuget.config, che punta al feed di GitHub dell'utente/organizzazione. E' di solito preferibile farlo dal workflow in automatico poichè sui runner non-Windows, la password deve per forza essere dichiarata in chiaro.

- name: Configure GitHub source
  shell: pwsh
  run: |
    dotnet nuget add source `
      "https://nuget.pkg.github.com/${{ github.repository_owner }}/index.json" `
      --name "github-ci" `
      --username "${{ github.repository_owner }}" `
      --store-password-in-clear-text `
      --password "${{ secrets.GITHUB_TOKEN }}"

Il secondo e ultimo passaggio consiste proprio nella pubblicazione del pacchetto. Abbiamo dato per scontato che questo sia già stato creato, poichè i comandi di dotnet pack variano a seconda dell'esigenza. Sfruttando il comando dotnet nuget push andiamo a pubblicare il pacchetto sulla sorgente impostata, ovvero il feed di GitHub.

- name: Publish to GitHub packages 
  shell: pwsh
  run: |
    dotnet nuget push `
      *.nupkg `
      --api-key ${{ secrets.GITHUB_TOKEN }} `
      --source "github-ci" `
      --skip-duplicate

Lo stesso processo è comunque realizzabile in Azure DevOps, sfruttando gli appositi task di pwsh.

Commenti

Visualizza/aggiungi commenti

| Condividi su: Twitter, Facebook, LinkedIn

Per inserire un commento, devi avere un account.

Fai il login e torna a questa pagina, oppure registrati alla nostra community.

Approfondimenti

I più letti di oggi