centos7环境基于jenkins、nuget、nexus的netcore持续集成

原创 2017年12月16日 18:09:42

基础环境配置

netcore安装文档:https://www.microsoft.com/net/learn/get-started/linuxcentos

jenkins相关配置:http://blog.csdn.net/xqj198404/article/details/78093590

jenkins项目配置

  1. service jenkins start 启动服务
  2. 域名:8080(默认,可配置修改)登录jenkins
  3. 配置BUILD过程的执行脚本需要注意通过jenkins的宏指定dotnet执行的正确路径,并且不同操作系统的宏是不一样的。windows是 %宏名%,linux则是 ${宏名}
  4. 项目编译的路径在linux下为:
        其中WORKSPACE是jenkins规定的工作空间的宏名
  5. 编译以及发布脚本  :【见修正后的脚本】
    dotnet restore ${WORKSPACE}/git项目的项目名
    dotnet build ${WORKSPACE}/git项目的项目名
    dotnet publish ${WORKSPACE}/git项目的目录名 -o ${WORKSPACE}/publish
    
  6. 上面的-o产生的publish目录有一个问题,就是产生在git项目的目录下,不知道是dotnet的问题还是对于宏的理解有错误
  7. dotnet publish 默认发布为debug,所以需要按照自己需求配置publish相关参数 相关文档:https://docs.microsoft.com/zh-cn/dotnet/core/tools/dotnet-publish?tabs=netcore2x

nuget发布

  1. 使用yum isntall nuget安装nuget
  2. 参考文档:https://docs.microsoft.com/en-us/nuget/create-packages/creating-a-package
  3. 配置文件参考:https://docs.microsoft.com/en-us/nuget/schema/nuget-config-file
  4. nexus相关文档:https://help.sonatype.com/display/NXRM2/.NET+Package+Repositories+with+NuGet
  5. 需要将nuspec文件中的模板替换,可以采用sed 也可以写一个替换程序使用shell执行。如果没有完全替换会有警告信息。
  6. 使用dll生成nuspec文件需要注意,id会根据执行路径生成,所以最好使用cd命令切换执行路径,防止ID名称非法的情况,如果含有\符号会被认为不合法。
  7. 执行nuget命令注意执行的路径问题。
  8. 执行脚本【不再需要】
  9. cd ${WORKSPACE}/publish/
    nuget spec xxxx.dll
    sed -i 's!http://LICENSE_URL_HERE_OR_DELETE_THIS_LINE!http://url/hayaaai.txt!' ${WORKSPACE}/publish/xxxxx.dll.nuspec
    sed -i 's!http://PROJECT_URL_HERE_OR_DELETE_THIS_LINE!http://url/nexus/service/local/nuget/xxxxx/!' ${WORKSPACE}/publish/xxxxx.dll.nuspec
    sed -i 's!http://ICON_URL_HERE_OR_DELETE_THIS_LINE!http://url/ico/xxxx.ico!' ${WORKSPACE}/publish/xxxxx.dll.nuspec
    sed -i '20i<files><file src="Hayaa.BaseModel.dll" target="lib/\" /></files>' ${WORKSPACE}/publish/xxxxx.dll.nuspec
    nuget pack ${WORKSPACE}/publish/xxxxx.dll.nuspec
    nuget push ${WORKSPACE}/publish/xxxxx.dll.1.0.0.nupkg -Source http://url/repository/nuget-hosted -ApiKey nexus用户的key
    


问题

理论是可行的,但是使用nuget发布总是失败,本以为是nexus配置错误,但是使用nuget Package Explorer在windows上测试却是可以的。证明nexus服务器配置没有问题,有问题的是nuget在centos上存在bug,爆出对象错误,无法传输文件,但是这是由于打包文件错误造成还是却是nuget确实存在问题,还需要实验。

后进行了实验,将nuget以及nuget依赖的mono进行了重装,首先完全重装了mono,而非采用依赖方式安装,然后又安装了nuget,然后就可以了。所以爆出的错误是mono应该缺少库造成的。

后续

仔细阅读相关工具文档

https://docs.microsoft.com/zh-cn/dotnet/core/tools/?tabs=netcore2x

其实donet和nuget有一体化的命令,无需分开处理。

修正后的发布脚本

dotnet restore ${WORKSPACE}/Hayaa.BaseModel
dotnet build ${WORKSPACE}/Hayaa.BaseModel
dotnet pack ${WORKSPACE}/Hayaa.BaseModel  -o  ${WORKSPACE}/publish
echo 'find |grep "nupkg" >var'
dotnet nuget push ${WORKSPACE}/publish/$var -k 0552683b-cf12-3c21-a8ea-5b04f8878d -s http://url/repository/nuget-hosted/


版权声明:本文为博主原创文章,未经博主允许不得转载。

为 Jenkins 配置 .NET 持续集成环境

去年年底,得益于公司引入 Jenkins,让我们在持续集成方面迈出了第一步,本文不赘述如何安装 Jenkins,主要关注点在于配置 .Net 环境。另外本文是在 Windows 环境下安装的 Jenk...
  • wma664620
  • wma664620
  • 2017年01月25日 11:47
  • 1069

CentOS/Ubuntu安装nexus(Maven仓库管理器)

Nexus是一个强大的Maven仓库管理器, 它极大地简化了自己内部仓库的维护和外部仓库的访问。 利用Nexus你可以只在一个地方就能够完全控制访问和部署在你所维护仓库中的每个Artifact。 Ne...
  • typa01_kk
  • typa01_kk
  • 2015年10月18日 17:31
  • 13001

CentOS7安装配置Nexus

最近闲来没事,就自己在linux上试着安装配置了Nexus,原以为很难的样子,主要自己动了手才发现其实也就那么一回事。 下载          Nexus下载地址:http://www.sonatyp...
  • dandanzmc
  • dandanzmc
  • 2016年07月17日 22:17
  • 2769

CentOS Nexus安装与使用

上一篇文章“CentOS Maven安装与使用”已经介绍了Maven的安装与使用,那么我们下面开始创建Nexus实现私服的功能。 1、Nexus下载 点击链接“nexus-2.3.1-bundle.t...
  • Jay_1989
  • Jay_1989
  • 2016年10月08日 15:30
  • 1491

nexus安装

目录视图 摘要视图 订阅 图灵赠书——程序员11月书单      【思考】Python这么厉害的原因竟然是!      感恩节赠书:《深度学习》等异步社区优秀图书和作译者评选启动!   ...
  • Mrf_w
  • Mrf_w
  • 2017年12月18日 21:52
  • 249

虚拟机之CentOS6上安装Nexus私服

1.下载nexus压缩包:https://sonatype-download.global.ssl.fastly.net/nexus/oss/nexus-2.14.0-01-bundle.zip ...
  • ynh_123
  • ynh_123
  • 2016年10月28日 10:30
  • 558

使用Nexus Repository 3的十二个理由

随着Nexus Repository Manager OSS 3的发布(目前更新至3.2.1),虽然目前还是Nexus 2和Nexus 3并行的状态,但是Nexus 3在很多方面已经显现出很大的优势,...
  • liumiaocn
  • liumiaocn
  • 2017年03月14日 20:20
  • 5934

搭建nexus3版的maven私服(Centos7环境)

1.安装jdk1.8 关于jdk1.8的安装,请参考我的这篇博客在这里就不做赘述了: http://blog.csdn.net/yougoule/article/details/78188329 ...
  • yougoule
  • yougoule
  • 2017年02月24日 16:10
  • 6465

centos7下搭建nexus

1:下载nexus 下载路径:http://www.sonatype.org/nexus/archived/ 我下载的是:Nexus2.12.0-01 2:通过ftp上传到centos服务器上。 解压...
  • lishuai1028
  • lishuai1028
  • 2016年05月29日 11:44
  • 2529

centos升级内核

安装elrepo的yum源 rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org rpm -Uvh http://www.elrep...
  • chenhaifeng2016
  • chenhaifeng2016
  • 2017年11月30日 14:16
  • 124
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:centos7环境基于jenkins、nuget、nexus的netcore持续集成
举报原因:
原因补充:

(最多只允许输入30个字)