.NET Core 从 Github到 Nuget 持续集成、部署
一.前言
Nuget 作為一個.NET研發人員,我想你都不會陌生,他為我們提供非常方便的程序包管理,不管是版本,還是包的依賴都能輕松應對,可以說是我們的好助手。而 Nuget 除了官方nuget.org以外,我們也可以用起提供的程序包快速構建一個Nuget Server,打造企業內部的私有 Nuget,用來管理項目的package是十分方便的,相對于我們直接引用DLL,他可以方便的控制程序集版本和依賴。今天講講Nuget如何進行持續集成、部署,可以減少我們更新package所需時間。
對nuget上傳包以及使用nuget命令有不了解的朋友可以花幾分鐘看下這兩篇文章:
發布你的程序包到Nuget
使用 dotnet cli 命令上傳 nuget 程序包
二.為什么用github?
如果用過持續集成的朋友都應該知道持續集成工具從代碼倉庫拉去代碼,今天我選用github來進行講解,因為github作為全球最大的開源社區,聚集了非常多的項目代碼,你是否有注意Nuget上面的程序包很大一部分都是開源的,而且大部分都是開源在github的,所以github結合Nuget是非常不錯的。
三.Jenkin 從配置 github 拉去代碼
Jenkins算是使用量比較多的一個持續集成工具,關于它我們寫了一個系列,可以參考下?http://www.cnblogs.com/stulzq/p/8629165.html
1.創建 github AccessToken
(1) 選擇 用戶下拉列表選項中的 “Setting”
(2) 選擇 “Developer settings”
(3) 選擇 “Personal access tokens”->“Generate new token”
(4) 選擇下圖的權限
然后點生成就可以了,一定要保存好這個token
2.配置Jenkins
(1) 進入 “系統管理”->"管理插件" 安裝?Github Plugin插件
(2) 然后進入 “系統管理”->“系統設置->Github Server” 添加如下信息
Credentials 那里點擊 Add 添加如下信息
添加完畢之后記得選擇我們剛剛添加的信息
最后點擊"Test Connection"如果配置正確應當有如下顯示:
3.創建任務
(1) 創建一個自由風格的任務:
(2) 勾選?Github Project?填入github倉庫url
(3) 源碼管理選擇git,填寫倉庫git地址,選擇需要構建的分支,我這里選擇master?(** 為選擇所有分支)
(4) 構建觸發器選擇?GitHub hook trigger for GITScm polling
(5) 然后添加構建步驟?Shell?,填入構建和部署的命令
(6) 如何編寫構建命令 按照如下格式編寫
# 編譯項目echo "begin build..."dotnet build Alipay.AopSdk.Core.sln -c Release echo "build success"# 創建nuget臨時存放目錄和歸檔目錄mkdir /publish/nuget/aopsdk/$(date +%Y%m%d) -pmkdir /publish/archives/$(date +%Y%m%d) -pecho "begin pack..."# 打包項目 Alipay.AopSdk.Core 并輸出到臨時存放目錄echo "pack Alipay.AopSdk.Core..."dotnet pack Alipay.AopSdk.Core/Alipay.AopSdk.Core.csproj -c Release -o /publish/nuget/aopsdk/$(date +%Y%m%d) echo "pack Alipay.AopSdk.Core success"# 發布到nuget.orgecho "begin push..."dotnet nuget push /publish/nuget/aopsdk/$(date +%Y%m%d)/*.nupkg -k <你的api key>-s https://api.nuget.org/v3/index.json echo "push success"# 歸檔packagemv /publish/nuget/aopsdk/$(date +%Y%m%d)/* /publish/archives/$(date +%Y%m%d)最后點擊保存。
4.最后一步,注冊webhook鉤子
回到我們的 "系統管理"->系統設置"->"Github Server" 選擇高級(有兩個高級 別選擇錯了)
然后進行如下操作為我們的倉庫創建鉤子
如果創建成功,到我們github倉庫 “Setting”->"Webhooks" 應當可以看見github插件已經為我們自動創建了一個鉤子:
到此,我們的配置就結束了,如果提交代碼到對應分支,就會觸發構建,如果構建成功就會上傳package到我們的Nuget,十分方便,好了趕緊去享受吧。
如果出錯,我們可以 控制臺日志來查出錯誤。
四.常見問題
如果部署到企業內部的私有Nuget Server,只需修改?dotnet nuget push -s?參數后的地址就行了。
如果采用我前面寫的系列教程安裝的Jenkins由于是采用Docker容器運行的,所以自帶沒有dotnet core的環境,需要進入Docker容器,安裝才行,在dotnet core 官網下選擇安裝的時候,系統選擇?Debian 9?https://www.microsoft.com/net/learn/get-started/linux/debian9
搭建私有Nuget ,請看這篇文章?https://www.jianshu.com/p/08e43b822137
五.寫在最后
配置看似很繁瑣,其實很簡單,配置過一次,再配置第二次就是手到擒來,祝大家配置成功,如果有什么問題也可以加入下方QQ群進行提問。最后想說一句話,NET Core 的生態構建需要你的參與,希望大家能共同支持.NET Core成長。歡迎大家加入NCC?https://github.com/dotnetcore
NCC 全稱 .NET Core Community(同時保有 .NET China Community 的名稱,其縮寫為 dotnet-china),成立于 2016 年年中。NCC(時名為 .NET Core 中國學習小組)最初項目為微軟 ASP.NET Core 文檔翻譯項目,為第一批學習 ASP.NET Core 的中文圈開發人員提供了巨大便利,后微軟逐步文檔國際化,該翻譯項目完成全部歷史使命。后經歷多次調整,最終更名為 .NET Core Community,是一個目前包括 12 個成員項目(含 1 個外部項目)、4 個子團隊的正不斷成長、完善,并正加速前進的 .NET/.NET Core 開源社區組織。
原文地址?:http://www.cnblogs.com/stulzq/p/8877652.html
.NET社區新聞,深度好文,歡迎訪問公眾號文章匯總 http://www.csharpkit.com
總結
以上是生活随笔為你收集整理的.NET Core 从 Github到 Nuget 持续集成、部署的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: .NET Core Community
- 下一篇: ApacheSkyWalking APM