Nuget 做爲一個.NET研發人員,我想你都不會陌生,他爲咱們提供很是方便的程序包管理,無論是版本,仍是包的依賴都能輕鬆應對,能夠說是咱們的好助手。而 Nuget 除了官方nuget.org
之外,咱們也能夠用起提供的程序包快速構建一個Nuget Server,打造企業內部的私有 Nuget,用來管理項目的package是十分方便的,相對於咱們直接引用DLL,他能夠方便的控制程序集版本和依賴。今天講講Nuget如何進行持續集成、部署,能夠減小咱們更新package所需時間。html
對nuget上傳包以及使用nuget命令有不瞭解的朋友能夠花幾分鐘看下這兩篇文章:linux
若是用過持續集成的朋友都應該知道持續集成工具從代碼倉庫拉去代碼,今天我選用github來進行講解,由於github做爲全球最大的開源社區,彙集了很是多的項目代碼,你是否有注意Nuget上面的程序包很大一部分都是開源的,並且大部分都是開源在github的,因此github結合Nuget是很是不錯的。web
Jenkins算是使用量比較多的一個持續集成工具,關於它咱們寫了一個系列,能夠參考下 http://www.cnblogs.com/stulzq/p/8629165.htmlshell
(1) 選擇 用戶下拉列表選項中的 「Setting」json
(2) 選擇 「Developer settings」api
(3) 選擇 「Personal access tokens」->「Generate new token」工具
(4) 選擇下圖的權限學習
而後點生成就能夠了,必定要保存好這個token
(1) 進入 「系統管理」->"管理插件" 安裝 Github Plugin
插件
(2) 而後進入 「系統管理」->「系統設置->Github Server」 添加以下信息
Credentials 那裏點擊 Add 添加以下信息
添加完畢以後記得選擇咱們剛剛添加的信息
最後點擊"Test Connection"若是配置正確應當有以下顯示:
(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) -p mkdir /publish/archives/$(date +%Y%m%d) -p echo "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.org echo "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" # 歸檔package mv /publish/nuget/aopsdk/$(date +%Y%m%d)/* /publish/archives/$(date +%Y%m%d)
最後點擊保存。
回到咱們的 "系統管理"->系統設置"->"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 開源社區組織。