一.前言

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 持续集成、部署相关推荐

  1. ASP.NET Core Docker Jenkins 零基础持续集成实战

    一.本系列教程说明 源代码管理工具:Gogs 持续集成工具:Jenkins 容器:Docker 二.git管理软件的选择 没有采用gitlab,因为gitlab比较吃配置,至少得2核4G的配置.采用g ...

  2. Jenkin持续集成部署-Jenkins常用插件篇

    Jenkin持续集成部署-Jenkins常用插件篇 前言 1. maven插件 2. pipeline 3. SSH 4. Docker 5. Blue Ocean 6. 自定义配置JDK 前言 本篇 ...

  3. Docker+Jenkins+Harbor+Rancher持续集成部署分布式项目

    目录 一.Docker篇 1.Docker 概述 2.Docker 平台 3.我可以使用 Docker 做什么? 3.1.快速.一致地交付应用程序 3.2.响应式部署和扩展 3.3.在相同硬件上运行更 ...

  4. 持续集成部署工具jenkins简介

    1. Jenkins基本介绍 Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件的持续集成变成可能.现在企业一般使用 ...

  5. 【测试开发】的Devops持续集成部署体系之Jenkins持续集成和持续部署基础应用

    目录 [一]:Jenkins 持续集成安装及使用简介 一.前言 二.初始化 Jenkins 插件和管理员用户 2.1 进入如下页面,输入上面出现的口令 2.2 进入选择安装插件的页面后,可以选择安装社 ...

  6. Jenkins持续集成部署工具

    目录 1 持续集成 1.1 软件开发生命周期 1.2 软件开发瀑布模型 1.3 软件的敏捷开发 1.4 什么是持续集成 1.5 持续集成的好处 2 Jenkins安装配置 2.1 Jenkins介绍 ...

  7. 基于K8s的CI/CD自动化持续集成部署框架

    文章目录 什么是CI/CD? 1 环境准备 2 组件部署 2.1 jenkins快速部署 2.2 gitlab快速部署 2.3 harbor快速部署 3 CI/CD交付 什么是CI/CD? CI/CD ...

  8. 可落地微服务on k8s的持续集成/部署方案

    我们隔一流的软件生产工艺还有多远?在距离15000公里外,Amazon一年可以进行5000万次部署,在这一边某电商平台的研发部门里,让他们引以为傲的是他们正在进行"敏捷"开发模式, ...

  9. docker运行jar包_Jenkins+Docker+Springboot单机版持续集成部署

    Jenkins+Docker+SpringBoot持续集成流程说明 安装配置jenkins 安装jenkins可直接官网下载对应的jar包直接运行,也可使用docker运行,下载完后直接运行,并下载d ...

最新文章

  1. Stephen Wolfram专访Judea Pearl:从贝叶斯网络到元胞自动机
  2. CSS3学习笔记-字体和文字
  3. AI开发者大会之计算机视觉技术实践与应用:2020年7月3日《如何利用计算机视觉增加便利店连锁每日销售额》、《基于图像 / 视频的人脸和人体分析基础技术及其应用介绍》
  4. 为什么Nginx性能比Apache高
  5. Eclipse中tomcat更改部署路径 deply path
  6. 步入三十岁前的总结:看似经历很多得到很多,但,实际却一无所得
  7. 循环自增_大学C语言—循环结构及应用
  8. 今天,GitHub 挂了!
  9. Ghost 备份、还原使用图解,带下载
  10. [javaweb]jsp+servlet+mysql购书网站
  11. DTcms Core项目发布到IIS教程
  12. 动态规划之完全背包和多重背包
  13. 较强冷空气影响中东部地区 江南华南等地有小到中雨
  14. Android多媒体功能开发(10)——使用MediaRecorder类录制音频
  15. sourceinsight 查看源码的利器
  16. 大数据新时代依然需要古老的磁带存储技术
  17. 如何计算股票程序化交易系统的收益率?
  18. ZYNQ-ZedBoard 上运行桌面 LINUX
  19. 关于C++的placement new和placement delete
  20. 浏览器手动设置Cookie

热门文章

  1. instancing render
  2. python之新式类与经典类
  3. Java并发编程-原子性变量
  4. python 抓包基于pypcap
  5. github 上微信判断是否被删除的源码 以及使用解惑
  6. BZOJ3172 TJOI2013 单词
  7. 局域网速度变慢的故障分析
  8. Apache-不重启完成添加或更改域名
  9. ABP Framework 5.2 RC 版本发布及新增功能介绍
  10. CentOS单机安装k8s并部署.NET 6程序