环境: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目录;

    

  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”进行测试;

    

二、配置全局参数;

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

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

  

三、配置Asp.net构建任务

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

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

  

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

  

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

  

  

  效果如下:  

  

  4、配置源代码路径:

  

  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;  

  

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

    

  7、配置FTP传输;

  

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

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

  

  9、构建后归档:

  

Jenkins持续集成(下)-Jenkins部署Asp.Net网站自动发布的更多相关文章

  1. .NET持续集成与自动化部署之路第一篇——半天搭建你的Jenkins持续集成与自动化部署系统

    .NET持续集成与自动化部署之路第一篇(半天搭建你的Jenkins持续集成与自动化部署系统) 前言     相信每一位程序员都经历过深夜加班上线的痛苦!而作为一个加班上线如家常便饭的码农,更是深感其痛 ...

  2. .NET 半天搭建Jenkins持续集成与自动化部署系统

    前言 相信每一位程序员都经历过深夜加班上线的痛苦!而作为一个加班上线如家常便饭的码农,更是深感其痛.由于我们所做的系统业务复杂,系统庞大,设计到多个系统之间的合作,而核心系统更是采用分布式系统架构,由 ...

  3. Jenkins持续集成01—Jenkins服务搭建和部署

    一.介绍Jenkins 1.Jenkins概念 Jenkins是一个功能强大的应用程序,允许持续集成和持续交付项目,无论用的是什么平台.这是一个免费的源代码,可以处理任何类型的构建或持续集成.集成Je ...

  4. Jenkins持续集成-自动化部署脚本的实现

    要实现Jenkins端的持续集成,其实在CI服务配置端很容易,难点呢?就是如何实现自动化的部署.我的脚本设计就是为了解决以下难题: 难点一.如何使得自动化部署脚本更通用 我用的脚本,依赖依赖一个配置文 ...

  5. 《转载》Jenkins持续集成-自动化部署脚本的实现《python》

    本文转载自慕课网 读者须知:1.本手记本着记续接前面的两张手记内容整理2.本手记针对tomcat部署测试环境实现 最近工作比较繁忙,导致这章一直拖延,没有太抽出时间来总结.要实现Jenkins端的持续 ...

  6. linux环境下搭建Jenkins持续集成(Jenkins+git+shell+maven+tomact)

    准备环境 jenkins.war包 ,jdk1.8  ,tomact , maven,git 1.Jenkins  war包,下载地址https://jenkins.io/zh/download/  ...

  7. Asp.net Core 使用Jenkins + Dockor 实现持续集成、自动化部署(四):发布与回滚

    写在前面 我们以前windows跑.net Framework程序的时候,发布,自己乖乖的替换程序:备份,也是自己一个一个的重命名备份:回滚,发布遇到问题的回滚更是不用说了:运维很是怕我们 这些用wi ...

  8. git+jenkins持续集成二-jenkins定时构建语法:定时构建语法

    构建位置:选择或创建工程_设置_构建触发器 1. 定时构建语法:* * * * * (五颗星,多个时间点,中间用逗号隔开)第一个*表示分钟,取值0~59第二个*表示小时,取值0~23第三个*表示一个月 ...

  9. jenkins持续集成:jenkins+SVN

    实现jenkins从svn拉取最新的代码,再执行驱动脚本进行自动化测试 新建一个任务 输入任务名,选“构建一个自由风格的软件项目”,点左下角“确定” 丢弃旧的构建,如下设置为保留3天内的10条构建记录 ...

随机推荐

  1. linux中无法使用vim命令

    报:linux中  vim 不是内部指令! 解决: 1. rpm -qa | grep vim // 查看vim命令在什么软件包 出现 vim-minimal-7.4.160-4.el7.x86_64 ...

  2. 上亿数据怎么玩深度分页?兼容MySQL + ES + MongoDB

    面试题 & 真实经历 面试题:在数据量很大的情况下,怎么实现深度分页? 大家在面试时,或者准备面试中可能会遇到上述的问题,大多的回答基本上是分库分表建索引,这是一种很标准的正确回答,但现实总是 ...

  3. 软件测试中的微信小程序怎么测试?

    1.没有需求文档时,如何测试小程序?现在大多数公司的开发模式是:敏捷模式(用户故事) ,即以什么身份做什么事情会出现什么样的结果.那实际测试过程中,没有需求文档时,测试可以采用以下方式更好的完成测试工 ...

  4. 服务注册与发现【Eureka】- Eureka简介

    什么是服务治理 SpringCloud 封装了 Netflix 公司开发的 Eureka 模块来 实现服务治理. 在传统的rpc远程调用框架中,管理每个服务与服务之间依赖关系比较复杂,管理比较复杂,所 ...

  5. 【日常摘要】- RabbitMq实现延时队列

    简介 什么是延时队列? 一种带有延迟功能的消息队列 过程: 使用场景 比如存在某个业务场景 发起一个订单,但是处于未支付的状态?如何及时的关闭订单并退还库存? 如何定期检查处于退款订单是否已经成功退款 ...

  6. Presto 函数开发

    0. 写在前面 Presto Functions 并不能像 Hive UDF 一样动态加载,需要根据 Function 的类型,实现 Presto 内部定义的不同接口,在 Presto 服务启动时进行 ...

  7. DJANGO-天天生鲜项目从0到1-008-列表页

    本项目基于B站UP主‘神奇的老黄’的教学视频‘天天生鲜Django项目’,视频讲的非常好,推荐新手观看学习 https://www.bilibili.com/video/BV1vt41147K8?p= ...

  8. java不同基本类型之间的运算

    一.不同基本类型在JAVA中,基本类型(除了boolean外)可以自动转换的,转换形式为:byte,short,char – int --long–float–double这就是自动转换的顺序了,其中 ...

  9. pycharm控制台输出的日志全是红色的字体?

    问题:logging在pycharm控制台输出的日志的字体全是红色的,怎么办? 图片描述: 解决办法:设置 -> 搜索“Console” ->  结果:改完立马生效

  10. vue学习(一)初步了解 vue实例

    //html:<div id="app"> <p>{{msg}}<p></div> //script 需要引入jar包vue-2.4 ...