Jenkins持续集成(下)-Jenkins部署Asp.Net网站自动发布

环境:Windows 2008 R2、Jenkins2.235.1、Visual Studio 2017;


概要


  前面写过一篇文章,《自动发布-asp.net自动发布、IIS站点自动发布(集成SLB、配置管理、Jenkins)》,这个主要是用于投产环境运维平台自动发布的集成,对于前面的环节使用Jenkins构建包,并发布到测试环境并没有详细的说明,现在发文记录一下。

  分成两篇来写《Jenkins持续集成(上)-Windows下安装Jenkins》、《Jenkins持续集成(下)-Jenkins部署Asp.Net网站自动发布》。


正文


一、配置MSBuild与FTP;

  1、MSBuild:先在服务器上面安装Visual Studio 2017或更高版本,也可以单独安装MSBuild,不过为了方便调试,最好是直接安装VS。

    然后在Jenkins上面配置,打开“Manage Jenkins”-->“Global Tool Configuration”-->“MSBuild”,指定安装的MSBuild目录;

    Jenkins持续集成(下)-Jenkins部署Asp.Net网站自动发布_第1张图片

  2、FTP:在服务器上面安装FTP功能,然后在IIS上新建FTP站点(注意点:a、用户名注意不要用ftp,使用ftpuser这类,使用标准用户,不使用管理员;b、SSL认证 选择无;c、FTP身份验证 选择基本身份验证;d、FTP授权规则 选择指定用户,如:ftpuser)。

    然后在Jenkins上面配置,打开“Manage Jenkins”-->“Configure System”-->“Publish over FTP”,配置主机名,端口默认为21,可以点击“Test Configuration”进行测试;

    Jenkins持续集成(下)-Jenkins部署Asp.Net网站自动发布_第2张图片

二、配置全局参数;

  为了快速配置任务,以及统一修改,建议任务构建里面的变量全部采用参数化来控制,涉及到统一的用全局参数来控制,如:SVN地址;

  在Jenkins上面配置,打开“Manage Jenkins”-->“Configure System”-->“全局属性”,勾选“Environment variables”,输入键值,键名称就是参数名;

  Jenkins持续集成(下)-Jenkins部署Asp.Net网站自动发布_第3张图片

三、配置Asp.net构建任务 

  “新建Item“,输入任务名称,选择”流水线“或叫”工作流“任务,

  1、指定最大保留历史构建版本;

  Jenkins持续集成(下)-Jenkins部署Asp.Net网站自动发布_第4张图片

  2、指定任务自定义的工作空间,不指定则全部默认为系统统一路径,如果任务数太多并且没有做集群的情况下,建议把任务的工作空间分散在多个磁盘上,需要注意自定义工作空间的路径,不要跟系统的安装路径一样,否则可能安装目录下面的文件被删掉。

  Jenkins持续集成(下)-Jenkins部署Asp.Net网站自动发布_第5张图片

  3、配置SVN分支选择下拉;

  Jenkins持续集成(下)-Jenkins部署Asp.Net网站自动发布_第6张图片

  Jenkins持续集成(下)-Jenkins部署Asp.Net网站自动发布_第7张图片

  效果如下:  

  Jenkins持续集成(下)-Jenkins部署Asp.Net网站自动发布_第8张图片

  4、配置源代码路径:

  Jenkins持续集成(下)-Jenkins部署Asp.Net网站自动发布_第9张图片

  5、配置MSBuild构建参数:
    /t:Rebuild
    /p:VisualStudioVersion=15.0
    /p:DeployOnBuild=true
    /p:LastUsedBuildConfiguration=Debug
    /p:LastUsedPlatform="Any CPU"
    /p:WebPublishMethod=FileSystem
    /p:LaunchSiteAfterPublish=True
    /p:ExcludeApp_Data=False
    /p:DeleteExistingFiles=True
    /p:WPPAllFilesInSingleFolder=${WORKSPACE}\build\build_test1_A_10001

    注意:p:WPPAllFilesInSingleFolder,表示把文件生成到指定文件夹,为了后面能够利用FTP把文件传过去,这里必须为工作空间下面的路径,如:D:\JenkinsWorkspaceAB\test1_A_10001_test_OrderProcessAPI\default\default;  

  Jenkins持续集成(下)-Jenkins部署Asp.Net网站自动发布_第10张图片

  6、把文件夹进行压缩,以便FTP进行传输;

  Jenkins持续集成(下)-Jenkins部署Asp.Net网站自动发布_第11张图片  

  7、配置FTP传输;

  Jenkins持续集成(下)-Jenkins部署Asp.Net网站自动发布_第12张图片

  8、解压文件夹,切换IIS目录,重启站点、浏览测试页;

    这几步我是通过自己写了一个接口给Jenkins去调用实现,好像还有一些现成的工具可以用,不过感觉这个自己写比较灵活,可以自由定制;

  Jenkins持续集成(下)-Jenkins部署Asp.Net网站自动发布_第13张图片

  9、构建后归档:

  Jenkins持续集成(下)-Jenkins部署Asp.Net网站自动发布_第14张图片

  

  所有变量均用参数化控制,每个不同的任务,直接采用复制其他任务,然后修改参数默认值即可;

   Jenkins持续集成(下)-Jenkins部署Asp.Net网站自动发布_第15张图片

 

你可能感兴趣的:(Jenkins持续集成(下)-Jenkins部署Asp.Net网站自动发布)