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目录;

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网站自动发布的更多相关文章
- .NET持续集成与自动化部署之路第一篇——半天搭建你的Jenkins持续集成与自动化部署系统
.NET持续集成与自动化部署之路第一篇(半天搭建你的Jenkins持续集成与自动化部署系统) 前言 相信每一位程序员都经历过深夜加班上线的痛苦!而作为一个加班上线如家常便饭的码农,更是深感其痛 ...
- .NET 半天搭建Jenkins持续集成与自动化部署系统
前言 相信每一位程序员都经历过深夜加班上线的痛苦!而作为一个加班上线如家常便饭的码农,更是深感其痛.由于我们所做的系统业务复杂,系统庞大,设计到多个系统之间的合作,而核心系统更是采用分布式系统架构,由 ...
- Jenkins持续集成01—Jenkins服务搭建和部署
一.介绍Jenkins 1.Jenkins概念 Jenkins是一个功能强大的应用程序,允许持续集成和持续交付项目,无论用的是什么平台.这是一个免费的源代码,可以处理任何类型的构建或持续集成.集成Je ...
- Jenkins持续集成-自动化部署脚本的实现
要实现Jenkins端的持续集成,其实在CI服务配置端很容易,难点呢?就是如何实现自动化的部署.我的脚本设计就是为了解决以下难题: 难点一.如何使得自动化部署脚本更通用 我用的脚本,依赖依赖一个配置文 ...
- 《转载》Jenkins持续集成-自动化部署脚本的实现《python》
本文转载自慕课网 读者须知:1.本手记本着记续接前面的两张手记内容整理2.本手记针对tomcat部署测试环境实现 最近工作比较繁忙,导致这章一直拖延,没有太抽出时间来总结.要实现Jenkins端的持续 ...
- linux环境下搭建Jenkins持续集成(Jenkins+git+shell+maven+tomact)
准备环境 jenkins.war包 ,jdk1.8 ,tomact , maven,git 1.Jenkins war包,下载地址https://jenkins.io/zh/download/ ...
- Asp.net Core 使用Jenkins + Dockor 实现持续集成、自动化部署(四):发布与回滚
写在前面 我们以前windows跑.net Framework程序的时候,发布,自己乖乖的替换程序:备份,也是自己一个一个的重命名备份:回滚,发布遇到问题的回滚更是不用说了:运维很是怕我们 这些用wi ...
- git+jenkins持续集成二-jenkins定时构建语法:定时构建语法
构建位置:选择或创建工程_设置_构建触发器 1. 定时构建语法:* * * * * (五颗星,多个时间点,中间用逗号隔开)第一个*表示分钟,取值0~59第二个*表示小时,取值0~23第三个*表示一个月 ...
- jenkins持续集成:jenkins+SVN
实现jenkins从svn拉取最新的代码,再执行驱动脚本进行自动化测试 新建一个任务 输入任务名,选“构建一个自由风格的软件项目”,点左下角“确定” 丢弃旧的构建,如下设置为保留3天内的10条构建记录 ...
随机推荐
- Hadoop进阶命令使用介绍
hadoop生产环境的使用是很复杂的,有些公司是CDH或者Ambari等管理工具运维的,有些是原生的集群俗称裸奔,前者优缺点是运维,查看监控等容易,对于底层理解不友好:裸奔集群反之,裸奔集群的很多东西 ...
- JavaScript动画基础:canvas绘制简单动画
动画是将静止的画面变为动态的艺术.实现由静止到动态,主要是靠人眼的视觉残留效应.视觉残留也叫视觉暂留现象,物体在快速运动时, 当人眼所看到的影像消失后,人眼仍能继续保留其影像0.1~0.4秒左右的图像 ...
- 【Nginx】如何为已安装的Nginx动态添加模块?看完我懂了!!
写在前面 很多时候,我们根据当时的项目情况和业务需求安装完Nginx后,后续随着业务的发展,往往会给安装好的Nginx添加其他的功能模块.在为Nginx添加功能模块时,要求Nginx不停机.这就涉及到 ...
- 当我谈 HTTP 时,我谈些什么?
当我们打开网站时也许不会去留意网站前面的HTTP是怎么来的.但是它毫无疑问在网络中有着举足轻重的地位.本文从起源到发展,详说HTTP从1到3的演变. 说在前面 本文不致力于讲完 HTTP 的全部内容, ...
- ffmpeg源码编译环境搭建
ffmpeg是视频开发最常用到的开源软件,FFmpeg功能强大,用途广泛,提供几乎所有你能够想到的与视频开发相关的操作,许多商业软件都以ffmpeg为基础进行开发定制. FFmpeg: FFmpeg ...
- Crystal Reports --报表设计
完整的报表解决方案 数据访问—>报表设计—>报表管理—>与应用系统集成 一.规划报表 设计报表的准备工作 谁看报表? 报表的数据是什么?(页眉页脚的内容?是否需要分组?是否需要汇总? ...
- OSCP Learning Notes - Post Exploitation(1)
Linux Post Exploitation Target Sever: Kioptrix Level 1 1. Search the payloads types. msfvenom -l pay ...
- T4 字符串的修改 题解
有 A=a1a2a3„am,B=b1b2b3„bn 两个字符串(均为小写字母)现在要通过以下操作将 A 或 A 的一个后缀修改为 B: 1. 删除 删除掉 A 中的某一个字符. 2. 添加 将某一个字 ...
- 机器学习 | SVD矩阵分解算法,对矩阵做拆分,然后呢?
本文始发于个人公众号:TechFlow,原创不易,求个关注 今天是机器学习专题第28篇文章,我们来聊聊SVD算法. SVD的英文全称是Singular Value Decomposition,翻译过来 ...
- 抛出这8个问题,检验一下你到底会不会ThreadLocal,来摸个底~
0.问题 和Synchronized的区别 存储在jvm的哪个区域 真的只是当前线程可见吗 会导致内存泄漏么 为什么用Entry数组而不是Entry对象 你学习的开源框架哪些用到了ThreadLoca ...