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算是使用量比较多的一个持续集成工具,关于它我们写了一个系列,可以参考下
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) -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)最后点击保存。
4.最后一步,注册webhook钩子回到我们的 "系统管理"->系统设置"->"Github Server" 选择高级(有两个高级 别选择错了)