zoukankan      html  css  js  c++  java
  • .Net持续集成 —— Jenkins+Git+WebDeploy

      由于某些历史问题,最近终于可以从java中解脱出来,继续耕耘.Net了,第一步就是把之前的java项目翻成.net。之前已经实现过一次,翻起来还是比较快的(当然基础架构/实体模型已经重新思考并改进),而且测试也在跟进,所以一天要发无数次版本,还要考虑开发环境、测试环境,总发布出错,甚是心累。于是下决心改善效率,以上为背景。

      看了很多文章,最终决定使用Jenkins。以下是我整个配置的记录:

    1. 环境

      Platform: .Net4.5

      IDE: Visual Studio 2015 & MsBuild

      包管理:NuGet

      版本控制:TFS-git

      服务器: windows 2012 R2(IIS8)

      其他: webdeploy

      参考文章:http://blog.couchbase.com/2016/january/continuous-deployment-with-jenkins-and-.net

      

    2. 软件下载与安装

     Jenkins:

      在https://jenkins.io/index.html 下载windows版本,按照步骤安装,安装好之后,jenkins管理地址默认为 http://localhost:8080

     IIS:

      除了安装IIS必要的功能,注意勾选 web服务器->管理工具 中 除"IIS6 管理兼容性"的功能

     WebDeploy:

      下载地址 http://www.iis.net/downloads/microsoft/web-deploy ,注意一定要勾选 IIS Deployment Handler ,否则使用PublishProfile时会报404错误

      安装好之后,你的IIS服务器会多出来 Management Service,点进去,修改配置

     Git客户端:

      这个就不多说了,很多地方都有

     MsBuild:

      地址 https://www.microsoft.com/en-us/download/details.aspx?id=48159 。这里安装的只是精简版的MsBuild,如果有VS的全量版那是最好不过,后面build的时候就知道有多坑了==!

      如果只装这个MsBuild,要将你开发机器上的 MsBuildMicrosoftVisualStudio 文件夹拷贝到服务器上相应的文件夹,否则编译MVC项目时会报错(Target找不到)

     Microsoft SDK:

      同样是build时候用到(error : Can't find the valid AspnetMergePath),你可以安装或者直接拷贝,把文件夹C:Program Files (x86)Microsoft SDKsWindowsv8.1A 拷贝到目标服务器相应目录

    3. 配置

     Jenkins配置:

      1> 安装Git plugin, Multi SCMs 和 MsBuild plugin (在参考文章中有详细说明)

        步骤:a) 打开jenkins http://localhost:8080

           b) 找到Manage Jenkins->Manage Plugins->可选插件

           c) 搜索插件并安装

          配置:如下图

          

        注意配置 Git plugin 中的 Global Config user.name和user.email

     2> 项目配置

        我这里就直接贴出来了,也比较简单

        

        说明:MsBuild配置中有额外选项,这里贴出来,/p:DeployOnBuild=true;PublishProfile=backend /p:Configuration=Release /p:AspnetMergePath="C:Program Files (x86)Microsoft SDKsWindowsv8.1AinNETFX 4.5.1 Tools"

         PublishProfile就是VS中指定的发布配置名称,后面的AspnetMergePath用于解决上面MsTools的报错

      注意:1. 你配置的路径最好不要过深,微软限制了路径最大长度266,到时候会悲剧的==!

                2. 如果Git认证凭据填写在URL中,用户名/密码不可以包含特殊字符,否则会被encode导致拉取失败。建议不要配置在URL中,本文这样配置是因为GIT服务器为TFS,不支持Credential

     3> VS PublishProfile配置

      VS项目中新建配置文件,选择Web Deploy,然后指定Server/Site name/User name/Password/Destation URL ,配好之后点击一下Validate Connection,通过就成功啦!

          

      配置保存之后,打开相应的pubxml文件,加上以下这两行:

      <Password>your password</Password>
      <AllowUntrustedCertificate>True</AllowUntrustedCertificate>

    4 Try it!

      好了,到这里一个.Net MVC项目自动构建就基本弄好了,进入jenkins,找到刚才配置的项目,点击 立即构建。

      构建会按照 git拉取->nuget 还原->build-> deploy->send email这个顺序执行,点击Console output可以看到详细的执行过程,很长我就不贴出来了。有时间再写一下 windows 服务的自动构建。

      现在部署还是很爽的,一键完成,No Errors!

     

  • 相关阅读:
    Programming Windows 第五版读书笔记 第三章 窗口和消息
    一个带游标的遍历数据的函数|数据库操作|软件开发
    递归删除一个文件夹下的所有文件c#代码
    杭州市市民卡办理点
    NTLDR is missing 的解决方法
    SQL Server中 将日期格式化.函数 CONVERT
    1.显示网页中的所有图片
    用sql函数获取中文字符串的全拼
    地柜便利一个文件夹下的所有文件|软件开发
    软件是什么
  • 原文地址:https://www.cnblogs.com/kickinthehead/p/5388201.html
Copyright © 2011-2022 走看看