.NET Core 从 Github到 Nuget 持续集成部署

Posted 猿学圈

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了.NET Core 从 Github到 Nuget 持续集成部署相关的知识,希望对你有一定的参考价值。

来源:https://www.cnblogs.com/stulzq/p/8877652.html

 

一.前言

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”

.NET Core 从 Github到 Nuget 持续集成、部署

(3) 选择 “Personal access tokens”->“Generate new token”

.NET Core 从 Github到 Nuget 持续集成、部署

(4) 选择下图的权限

.NET Core 从 Github到 Nuget 持续集成、部署

然后点生成就可以了,一定要保存好这个token

2.配置Jenkins

(1) 进入 “系统管理”->"管理插件" 安装 Github Plugin插件

.NET Core 从 Github到 Nuget 持续集成、部署

(2) 然后进入 “系统管理”->“系统设置->Github Server” 添加如下信息

.NET Core 从 Github到 Nuget 持续集成、部署

Credentials 那里点击 Add 添加如下信息

.NET Core 从 Github到 Nuget 持续集成、部署

添加完毕之后记得选择我们刚刚添加的信息

最后点击"Test Connection"如果配置正确应当有如下显示:

.NET Core 从 Github到 Nuget 持续集成、部署

3.创建任务

(1) 创建一个自由风格的任务:

.NET Core 从 Github到 Nuget 持续集成、部署

(2) 勾选 Github Project 填入github仓库url

.NET Core 从 Github到 Nuget 持续集成、部署

.NET Core 从 Github到 Nuget 持续集成、部署

(4) 构建触发器选择 GitHub hook trigger for GITScm polling

.NET Core 从 Github到 Nuget 持续集成、部署

(5) 然后添加构建步骤 Shell ,填入构建和部署的命令

.NET Core 从 Github到 Nuget 持续集成、部署

(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) -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.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" 选择高级(有两个高级 别选择错了)

.NET Core 从 Github到 Nuget 持续集成、部署

然后进行如下操作为我们的仓库创建钩子

.NET Core 从 Github到 Nuget 持续集成、部署

如果创建成功,到我们github仓库 “Setting”->"Webhooks" 应当可以看见github插件已经为我们自动创建了一个钩子:

.NET Core 从 Github到 Nuget 持续集成、部署

到此,我们的配置就结束了,如果提交代码到对应分支,就会触发构建,如果构建成功就会上传package到我们的Nuget,十分方便,好了赶紧去享受吧。

.NET Core 从 Github到 Nuget 持续集成、部署

如果出错,我们可以 控制台日志来查出错误。

 

四.常见问题

如果采用我前面写的系列教程安装的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



-END-





看完本文的你是否有所收获?

请转发给更多人关注

【猿学圈】

提升IT技能~

长按关注,谢谢转发

学海无涯,别担心,有我陪着你~


点个赞,让我在心里记住你 ☟ 

以上是关于.NET Core 从 Github到 Nuget 持续集成部署的主要内容,如果未能解决你的问题,请参考以下文章

Azure Devops - 在 Nuget 包中从 .NET Core 3.1 迁移到 .NET 5 的兼容性问题

ASP.NET Core基于微软微服务eShopOnContainer事件总线EventBus的实现

ASP.NET Core基于微软微服务eShopOnContainer事件总线EventBus的实现

将 .targets 文件添加到 .NET 框架 nuget 不会在 .Net Core 项目中正确导入

.NET Core 系列5 :使用 Nuget打包类库

使用NuGet将我们的ASP.NET Core类库打包并将程序包(类库)发布到NuGet平台上进行管理