開發現代化的.NetCore控制檯程式:(3)將nuget包釋出到GitHubPackages

程式設計實驗室發表於2023-11-10

前言

上一篇文章已經把專案模板的nuget包釋出到了 nuget 的官方源了,其實還可以釋出到其他源,比如 GitHub ,本文記錄一下發布到 GitHub Packages 的過程。

注意:本文建立在本系列第二篇文章的基礎上,為了更好理解操作過程,請先熟悉本專案的程式碼結構

建立 GitHub token

訪問 https://github.com/settings/tokens 頁面

生成一個 token (classic)

記得勾選跟 packages 有關的許可權

在專案中新增 nuget source 配置

src/Templates 目錄中新建 nuget.config 檔案

<?xml version="1.0" encoding="utf-8"?>

<configuration>
    <packageSources>
        <clear />
        <add key="github" value="https://nuget.pkg.github.com/NAMESPACE/index.json" />
    </packageSources>
    <packageSourceCredentials>
        <github>
            <add key="Username" value="USERNAME" />
            <add key="ClearTextPassword" value="TOKEN" />
        </github>
    </packageSourceCredentials>
</configuration>

以上只是 GitHub 提供的配置模板,有幾個需要修改的地方

  • USERNAME 替換為 GitHub 上的個人帳戶的名稱。
  • TOKEN 替換為 personal access token (classic)。
  • NAMESPACE 替換為作為包限定範圍的個人帳戶或組織的名稱。

釋出包

執行 dotnet pack 生成 nuget 包

然後執行以下命令將生成的 nuget 包釋出到 GitHub Packages

dotnet nuget push ".\bin\Release\FluentConsole.Templates.1.1.0.nupkg" --api-key TOKEN --source github
  • TOKEN 是前面申請的

一切正常的話,可以看到以下輸出

正在將 FluentConsole.Templates.1.1.0.nupkg 推送到 'https://nuget.pkg.github.com/Deali-Axy'...
  PUT https://nuget.pkg.github.com/Deali-Axy/
  OK https://nuget.pkg.github.com/Deali-Axy/ 1129 毫秒
已推送包。

這時候就搞定了,訪問 https://github.com/Deali-Axy?tab=packages 可以看到已釋出的 packages

將釋出的包與程式碼倉庫進行關聯

因為專案地址是 https://github.com/Deali-Axy/fluent-dotnet-console

而包名是 FluentConsole.Templates

這倆不一致,所以不會自動關聯,我們需要進行手動關聯

進入 package 詳情頁面:https://github.com/users/Deali-Axy/packages/nuget/package/FluentConsole.Templates

點選下方的 Connect Repository 按鈕,選擇 fluent-dotnet-console 專案即可。

繫結之後在 package 的主頁可以看到 repository 的 README

在 repository 的右下角也可以看到這個 package

PS: GitHub 越來越好用了

參考資料

相關文章