CCNET+ProGet+Windows Batch搭建全自动的内部包打包和推送及管理平台

所要用的工具:

1、CCNET(用于检测SVN有改动提交时自动构建,并运行nuget的自动打包和推送批处理)

2、ProGet(目前见到最好用的nuget内部包管理平台)

3、Windows Batch(windows的批处理,用于nuget的自动打包和推送)(这里是最难解决的地方)

具体的搭建步骤:

一、先搭建CCNET的持续集成环境,可以参照以下这些文章:

http://www.cnblogs.com/jillzhang/archive/2008/03/03/1089099.html

http://www.cnblogs.com/wangjq/p/3977318.html

http://www.cnblogs.com/cnblogsfans/archive/2008/04/24/1169689.html

这里可以使用配置文件:http://www.cnblogs.com/EasonJim/p/5773328.html

二、配置和安装ProGet进行内部包管理:

下载和安装步骤:http://www.cnblogs.com/EasonJim/p/5486530.html

安装好之后新建几个feed,如下:

其中这里包含的符号服务器所用到的包DebugDefault(Debug模式的包)、ReleaseDefault(Release模式的包)、SymbolsDebugDefault(Debug模式下包含源码的包)、SymbolsReleaseDefault(Release模式下包含源码的包)。

有了这四个,基本上都是只用到Release的两个,其余的都留着以后备用。

其实ProGet不需要过多的配置,只要安装到新建好Feed之后一些都OK了。

注意:这里的ProGet的apikey为这样的形式:用户名:密码;在nuget命令行下用setapikey时用到,比如Admin默认账号密码时是这样使用:nuget -setapikey Admin:Admin

三、编写自动打包的脚本,并完成之后自动推送我们内部四个Feed上,这里我已经写好了批处理,并使用RunNuGetPackage.bat即可,并修改如下自己实际信息,其余的批处理都是看个人需要使用。

GitHub地址:https://github.com/easonjim/NuGetRun

下载回本地之后,根据实际情况配置apikey,已经feed的推送地址,并用一个文件夹的形式放置在项目的根目录,因为批处理上已经用cd..进行上一层的跳转,可根据实际进行修改,如下放置:

四、完成上面步骤之后,可以进行测试,先用RunMSBuild.bat编译以下项目(如果不行,检查里面的参数配置),再进行RunNuGetPackage.bat脚本的运行(如果不行,检查里面的参数配置),都没有问题之后,提交SVN,并用CCNET进行跑一下。

这里提供我配置的项目节点:

   <msbuild>
        <executable>C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe</executable>
        <buildArgs>
        /p:OutputPath=D:\A\B\Framework\EasemobSDK\1CheckOutProjectFiles\Easemob.Restfull4Net\bin\Debug;Platform="Any CPU";Configuration=Debug;GenerateDocumentation=true;DocumentationFile=D:\A\B\Framework\EasemobSDK\1CheckOutProjectFiles\Easemob.Restfull4Net\bin\Debug\Easemob.Restfull4Net.xml;DebugSymbols=true
        </buildArgs>
        <workingDirectory>D:\A\B\Framework\EasemobSDK\1CheckOutProjectFiles\Easemob.Restfull4Net</workingDirectory>
        <projectFile>Easemob.Restfull4Net.csproj</projectFile>
        <targets>Build</targets>
        <timeout>900000</timeout>
      </msbuild>
      <msbuild>
        <executable>C:\Windows\Microsoft.NET\Framework\v4.0.30319\MSBuild.exe</executable>
        <buildArgs>
    /p:OutputPath=D:\A\B\Framework\EasemobSDK\1CheckOutProjectFiles\Easemob.Restfull4Net\bin\Release;Platform="Any CPU";Configuration=Release;GenerateDocumentation=true;DocumentationFile=D:\A\B\Framework\EasemobSDK\1CheckOutProjectFiles\Easemob.Restfull4Net\bin\Release\Easemob.Restfull4Net.xml;DebugSymbols=true
        </buildArgs>
        <workingDirectory>D:\A\B\Framework\EasemobSDK\1CheckOutProjectFiles\Easemob.Restfull4Net</workingDirectory>
        <projectFile>Easemob.Restfull4Net.csproj</projectFile>
        <targets>Build</targets>
        <timeout>900000</timeout>
      </msbuild>
      <exec>
        <executable>RunNuGetPackage.bat</executable>
        <baseDirectory>D:\A\B\Framework\EasemobSDK\1CheckOutProjectFiles\Easemob.Restfull4Net\NuGetRun</baseDirectory>
        <buildArgs>all</buildArgs>
        <buildTimeoutSeconds>180</buildTimeoutSeconds>
        <successExitCodes>0</successExitCodes>
      </exec>

原理为:先编译Debug版本并输出文件,再编译Release版本,最后运行RunNuGetPackage.bat的脚本进行包的打包和推送。

大致的原理可以这样描述:1、公共库的的代码提交到SVN之后。2、CCNET自动检测并编译。3、编译好之后用批处理进行包的自动提交。

这里有一点公共库开发时要注意的:1、规范。2、版本号。参考:http://www.cnblogs.com/EasonJim/p/5880233.html

关于符号服务器源码调试的方法:http://www.cnblogs.com/EasonJim/p/5891742.html;如果想要使用这个,那么上面项目编译时的路径就不应该包含中文。

时间: 2024-12-28 23:45:20

CCNET+ProGet+Windows Batch搭建全自动的内部包打包和推送及管理平台的相关文章

Jenkins+ProGet+Windows Batch搭建全自动的内部包(NuGet)打包和推送及管理平台

这一篇文章是继http://www.cnblogs.com/EasonJim/p/5954155.html的升级版,由于CCNET已经过程,所以我把打包过程的CCNET工具换成Jenkins去实现,批处理那些也没有改变. 同时这也是全程批处理的操作实践. 阅读时,请参考上一篇的实现思路. 一.配置 1.新建Job 注意:上面选择为[构建一个自由风格的软件项目] 2.填写项目信息 3.配置SVN获取源码 这里默认这样选择,只有更新时才会去触发下一步操作. 4.配置构建触发的时间 这里是每分钟进行s

简单、高效、易用的全平台(Windows/Linux/ARM/Android/iOS)web实现RTMP推送组件EasyRTMP-Android BUS传递消息过程介绍

背景分析 RTMP是Real Time Messaging Protocol(实时消息传输协议)的首字母缩写,该协议基于TCP,是一个协议族,包括RTMP基本协议及RTMP/RTMPS/RTMPE等多种变种.RTMP是一种设计用来进行实时数据通信的网络下ieyi,主要用来在Flash/AIR平台和支持RTMP协议的流媒体/交互服务器之间进行音视频和数据通信.RTMP推流,就是将直播内容推送到服务器的过程. EasyRTMP-Android BUS传递消息过程 提出问题EasyRTMP-Andro

Android、iOS和Windows Phone中的推送技术

转自李宁的博客:http://blog.csdn.net/nokiaguy/article/details/11175359 推送并不是什么新技术,这种技术在互联网时代就已经很流行了.只是随着进入移动互联网时代,推送技术显得更加重要.因为在智能手机中,推送从某种程度上,可以取代使用多年的短信,而且与短信相比,还可以向用户展示更多的信息(如图像.表格.声音等). 推送技术的实现通常会使用服务端向客户端推送消息的方式.也就是说客户端通过用户名.Key等ID注册到服务端后,在服务端就可以将消息向所有活

RedMine项目管理系统邮件推送设置(Windows环境)

RedMine项目管理系统有邮箱推送功能,当Bug,安全漏洞等内容被修改.解决.评论的时候,系统会通过邮件 及时的通知你的团队和客户.邮件通知的环节.形式.时间.接受人均可定制,功能十分实用. 下面是针对windows系统环境下安装的RedMine时,邮件推送的配置说明. (1)登录后点击[管理]-> [用户] (2)选中要收取邮件推送的用户登录名 (3)在[邮件通知]标签中的“不收取任何通知”改为“收取我的项目的所有邮件”,如下图所示 设定“收取我的项目的所有邮件”后保存即可. 另外,可以选的

Windows平台RTMP/RTSP直播推送模块设计和使用说明

开发背景 好多开发者一直反馈,Windows平台,做个推屏或者推摄像头,推RTMP或者RTSP出去,不知道哪些功能是必须的,哪些设计是可有可无的,还有就是,不知道如何选技术方案,以下是基于我们设计的Windows平台RTSP.RTMP直播推送模块,设计和使用说明,供大家参考. 整体方案架构 Windows平台RTMP或RTSP推送,系采集端模块,主要完成,屏幕或者摄像头数据.麦克风或扬声器数据的采集,编码,然后按照特定格式打包,通过RTMP或者RTSP传输出去,实现直播目的. 对应设计架构图的“

Windows下搭建Openvpn使用用户名和密码验证方式如何引用shell脚本

网上找了很多资料关于Openvpn使用用户名和密码验证方式的大都是在linux环境下搭建的.其实在windows下搭建可以参考linux的情况,可以找到很多资料,主要遇到的问题是如何引用那个checkpw.sh的shell脚本.这里记下自己的经验. 为了引用此脚本,看了网上一个博客后有了点idea.首先安装Cygwin,Cygwin是一个在windows平台上运行的类UNIX模拟环境.之后写一个bat文件,如script.bat: C:/cygwin64/bin/bash.exe  C:/che

深入浅出Windows BATCH

1.什么是Windows BATCH BATCH也就是批处理文件,有时简称为BAT,是Windows平台上的一种可运行脚本,与*nix(Linux和Unix)上的Shell脚本和其它的脚本(Perl,Python)等是一样的,实质上就是一个文本文件,可是用特定的软件去解释的时候,就变成了可运行脚本.在Windows上,可运行脚本就是BATCH文件,也叫批处理文件,这是从DOS时代遗留下来的名字,意思就是把非常多命令放到一起来运行.它的扩展名是*.bat,双击便可直接运行,在命令行(CMD或叫做命

【转】Nginx windows下搭建过程

Nginx windows下搭建过程 内容列表: 简要介绍 下载安装 配置测试 一.简要介绍 Nginx ("engine x") 是一个高性能的 HTTP 和 反向代理 服务器,也是一个 IMAP/POP3/SMTP 代理服务器. Nginx 是由 Igor Sysoev 为俄罗斯访问量第二的 Rambler.ru 站点开发的,第一个公开版本0.1.0发布于2004年10月4日.其将源代码以类BSD许可证的形式发布,因它的稳定性.丰富的功能集.示例配置文件和低系统资源的消耗而闻名.2

windows batch语法

windows BATCH基本知识扩展名是bat(在nt/2000/xp/2003下也可以是cmd)的文件就是批处理文件. ==== 注 =======================================.bat是dos下的批处理文件.cmd是nt内核命令行环境的另一种批处理文件从更广义的角度来看,unix的shell脚本以及其它操作系统甚至应用程序中由外壳进行解释执行的文本,都具有与批处理文件十分相似的作用,而且同样是由专用解释器以行为单位解释执行,这种文本形式更通用的称谓是脚本语