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

摘要:
注:此处ProGet的apikey为用户名:密码;在nuget命令行上使用setapikey。例如,Admin的默认帐户密码使用如下:nuget setapikeyAdmin:Admin3。编写自动打包脚本,并在完成后自动将其推送到我们的内部四个提要。这里我已经编写了批处理,并使用RunNuGetPackage.bat,并修改了以下实际信息。批处理的其余部分基于个人需求。

所要用的工具:

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,如下:

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

其中这里包含的符号服务器所用到的包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..进行上一层的跳转,可根据实际进行修改,如下放置:

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

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

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

   <msbuild>
        <executable>C:WindowsMicrosoft.NETFrameworkv4.0.30319MSBuild.exe</executable>
        <buildArgs>
        /p:OutputPath=D:ABFrameworkEasemobSDK1CheckOutProjectFilesEasemob.Restfull4NetinDebug;Platform="Any CPU";Configuration=Debug;GenerateDocumentation=true;DocumentationFile=D:ABFrameworkEasemobSDK1CheckOutProjectFilesEasemob.Restfull4NetinDebugEasemob.Restfull4Net.xml;DebugSymbols=true
        </buildArgs>
        <workingDirectory>D:ABFrameworkEasemobSDK1CheckOutProjectFilesEasemob.Restfull4Net</workingDirectory>
        <projectFile>Easemob.Restfull4Net.csproj</projectFile>
        <targets>Build</targets>
        <timeout>900000</timeout>
      </msbuild>      
      <msbuild>
        <executable>C:WindowsMicrosoft.NETFrameworkv4.0.30319MSBuild.exe</executable>
        <buildArgs>
    /p:OutputPath=D:ABFrameworkEasemobSDK1CheckOutProjectFilesEasemob.Restfull4NetinRelease;Platform="Any CPU";Configuration=Release;GenerateDocumentation=true;DocumentationFile=D:ABFrameworkEasemobSDK1CheckOutProjectFilesEasemob.Restfull4NetinReleaseEasemob.Restfull4Net.xml;DebugSymbols=true
        </buildArgs>
        <workingDirectory>D:ABFrameworkEasemobSDK1CheckOutProjectFilesEasemob.Restfull4Net</workingDirectory>
        <projectFile>Easemob.Restfull4Net.csproj</projectFile>
        <targets>Build</targets>
        <timeout>900000</timeout>
      </msbuild>
      <exec>
        <executable>RunNuGetPackage.bat</executable>
        <baseDirectory>D:ABFrameworkEasemobSDK1CheckOutProjectFilesEasemob.Restfull4NetNuGetRun</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;如果想要使用这个,那么上面项目编译时的路径就不应该包含中文

SVN+CCNET+ProGet服务器拓扑图和流程图

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

免责声明:文章转载自《CCNET+ProGet+Windows Batch搭建全自动的内部包打包和推送及管理平台》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇基于socket的上传下载(Java)精简版Java设计模式7:适配器模式下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

BAT文件编写基础知识

BAT脚本编写基础知识 BAT文件,即批处理(Batch)文件,在DOS或Windows系统中都是可执行文件。BAT文件由一系列命令构成,其中可以包含对其他程序的调用。批处理定义:批处理文件是将一系列命令按一定的顺序集合为一个可执行的文本文件,其扩展名为BAT或者CMD。这些命令统称批处理命令。有关BAT的百度百科介绍:BAT(批处理文件类型) 批处理...

Flink 概述 基本架构

1.Flink 概述 1.1 流处理技术的演变   在开源世界里,Apache Storm 项目是流处理的先锋。Storm 最早由 Nathan Marz 和创业公司 BackType 的一个团队开发,后来才被 Apache 基金会接纳。Storm 提供 了低延迟的流处理,但是它为实时性付出了一些代价:很难实现高吞吐,并且其正 确性没能达到通常所需的水平,...

windows全屏打开Google浏览器命令,支持bat批处理开机启动

以app形式启动chrome——关于chrome命令行  转自:http://wiselyman.iteye.com/blog/2179043 转自:http://bbs.ithome.com/thread-589651-1-1.html 转自:http://www.cnblogs.com/dsky/archive/2013/05/14/3077484....

Qt使用笔记(2)--Qmake的使用

阅读书:C++ GUI Programming with Qt 4, Second Edition,按照其指示,做了第一个例子,并按其说明使用如下批处理,进行了编译: rem 设置vs的环境变量 set oldpath=%path% set path="C:\Program Files\Microsoft Visual Studio 9.0\Commo...

windows批处理 (cmd/bat) 编程详解

windows批处理 (cmd/bat) 编程详解     开始之前先简单说明下cmd文件和bat文件的区别:在本质上两者没有区别,都是简单的文本编码方式,都可以用记事本创建、编辑和查看。两者所用的命令行代码也是共用的,只是cmd文件中允许使用的命令要比bat文件多。cmd文件只有在windows2000以上的系统中才能运行,而bat文件则没有这个限制。...

批处理为乱码但可以正常执行的问题分析

有这样一种情况,在网上下载的用于实现某些Windows功能的批处理文件,能够正常运行并取得预期效果,但编辑该文本文件,发现是乱码,无法知道该批处理是如何写的。下图示例该批处理: 运行该批处理的界面是: 编辑该批处理显示的内容是: 注意到右下角文本编码显示的是【UTF-16 LE】,文本是乱码,首先应该想到的是编码错误,也就是该文件用notepad打开是...