jenkins 增量发布插件_jenkins中使用tfs插件做增量的版本发布部署

一 配置介绍

使用jenkins的tfs插件进行,源码的下载,编译,打包的操作,然后使用windows的批处理命令,在局域网内(或者本机)把打包的release包,删除掉web.config,然后靠配到iis指向的磁盘位置,如此实现自动发布。在此种情况下,因为源码经过演进项目扩大,存在越来越多的文件,包也越来越大,往往进行了简单的修改,但是发布需要持续几分钟甚至更长,而人工发布就只需简单几秒钟拷贝,这样使自动化发布的效果大打折扣。为此做出一些改进的思路。

二 改进思路

删除copy配置,观察在拉取代码,编译,打包时间的花费。

使用ftp替代copy命令,观察世间是否有提高。

修改其中一个.cs类文件,观察对应的dll是否修改日期变化,其它的dll文件并无变化。

修改其中一个.cshtml view层文件,观察在打包程序中文件修改时间是否发生变化,同样其它文件的修改时间保持不变。

如果生成的release包,是针对修改文件的时间只发生变化的,就考虑提取相比上次构建时间发生变化的文件,只覆盖此类文件到iis只想磁盘位置。

三 测试进行

没有文件xcopy,整体在几秒左右时间。

使用ftp拷贝,文件名不能存在中文(之前有查是jenkins版本问题,升级之后依然存在),同时时间上还是不尽人意。

目前Enterprise.dll文件修改时间 ‎2016‎年‎6‎月‎13‎日,‏‎14:18:19,进行web项目,.cs文件修改,此dll release修改日期发生变化。

目前 D:\jenkins1.65\workspace\CI_KKEnterprise(企业端)\EnterpriseCenterPublish\Areas\RZTJ\Views\RZTJ\Index.cshtml(release包)文件修改日期 2016‎年‎6‎月‎13‎日,‏‎12:01:46 当前时间 14:17进行此文件修改以及check in,并执行构建,此文件修改时间变化 ‎2016‎年‎6‎月‎13‎日,‏‎14:18:19,而其它文件时间并没有变化。

依据3,4分析可以提取最后一次发布后的文件进行copy或者ftp,据此构建以下powershell脚本:

$workbasepath = "D:\jenkins1.65\workspace\CI_KKEnterprise(企业端)\EnterpriseCenterPublish"

cd $workbasepath

#获取最后发布时间

if (Test-Path lastPublish.txt) {

$lastUpdateTime = Get-Content .\lastPublish.txt

#转化为DateTime类型

$lastUpdateTime = Get-Date $lastUpdateTime[1]

}

else{

$lastUpdateTime = Get-Date 1/1/1997

}

#更新本次发布时间文件

Get-Date > lastPublish.txt

$filePath = "D:\jenkins1.65\workspace\CI_KKEnterprise(企业端)\EnterpriseCenterPublish"

$allFile = Get-ChildItem $filePath -recurse | ?{$_.PsIsContainer -eq $false}

foreach($file in $allFile)

{

$daySpan = ($file.LastWriteTime)

#if文件的最后修改时间 大于 最后一次更新时间的保留 其它的删除

if ($daySpan -ge $lastUpdateTime)

{

$file.FullName,$daySpan ,"$$$$", $lastUpdateTime

}else{

$file.FullName,$daySpan, "####" ,$lastUpdateTime

Remove-Item $file.FullName -Recurse -Force

}

}

只保留本次更新文件,其它文件删除掉。至此提高tfs自动发布的效率。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值