这篇文章主要介绍下使用Jenkins实现自动化部署

  1. 下载

https://jenkins.io/download/

  1. 安装

按步骤安装即可,下载的是windows版本,安装完成后,会看到这样一个正在运行的服务

  1. 初次使用

默认端口8080,建议修改

通过安装目录下的jenkins.xml文件修改

端口修改后重启服务

通过浏览器第一次访问会看到这样一个页面(我这边不是第一次使用了,页面找不到,从网上找了个图片)

按照页面上提示的路径找到文件,得到密码输入即可

接着进入插件下载页面,可以直接选择建议插件

插件安装完成后进入以下页面,创建一个管理员帐号

我在创建完成后遇到了空白页的情况,重启下服务重新打开即可解决

  1. 插件安装

jenkins建议插件中包含了svn,初始化时如果选择了建议插件,就不需要再额外去安装了

如下图,选择系统管理-》插件管理-》可选插件

Localization: Chinese (Simplified) 刚安装完时,页面一半中文,一半英文,安装此插件可解决

MSBuild Plugin 编译c#代码必需

​​​​​

  1. 配置msbuild

如果服务器上已安装vs,则不需要额外安装msbuild

否则,去vs官网下载安装

https://docs.microsoft.com/zh-cn/visualstudio/msbuild/msbuild?view=vs-2017

这里选择哪个版本看你开发时ide使用的是什么版本,安装对应的即可(版本不要安装错误,c#6.0 7.0 的语法低版本msbuild识别不了)

注意勾选

msbuild没有问题后,打开 系统管理-》全局工具配置

找到MSBuild

新增MSBuild,名称无所谓,第二栏填入MSBuild的地址,保存即可

 

  1. 新建任务

新建任务-》构建一个自由风格的软件项目

源码管理,选择svn填入参数

构建,选择第一个,使用msbuild构建

选择msbuild配置,填入需要构建的解决方案或者项目文件,参数我们等会再看,先这样保存运行测试下,这里路径需要注意下头部不要带/

回到主面板,点击刚刚创建的任务,立即构建

这里会出现构建任务

点击后选择控制台输出,可以看到构建过程

正常情况下,这里会看到构建成功

但是如果你的项目使用了nuget,则需要先还原nuget包,再去构建,下载nuget

https://www.nuget.org/downloads

Windows x86 Commandline
下载完成后,点击我们刚刚创建的任务,选择配置,增加构建步骤,选择批处理命令
执行刚刚下载的nuget还原解决方案,这里有一点需要注意,如果nuget.exe路径中有空格,记得加上引号(图中忘记添加---)
调整下构建步骤的顺序,先执行批处理命令
再去执行构建
我这边还遇到了一个问题,由于公司搭建了自己的nuget服务,有些包需要从公司的nuget服务上下载,所以这边抛出了错误
按照上图地址去修改nuget.config文件,加上自定义源
这时去构建应该没有什么问题了,如果还有错误,看控制台结果去解决
我们现在来来看看构建的参数,
/t:Rebuild 表示每次都重建,不使用增量编译
/P:Configuration=Release 表示编译 Release 版本
/p:DeployOnBuild=true;PublishProfile=XStore.HeadPc.Test.pubxml 发布文件
/p:AllowUntrustedCertificate=True 发布时的证书信任
 
这里用到了webdeploy,具体安装使用就不细说了,大家自行了解
自动生成的pubxml中不会保存密码,记得去增加一个password的节点
 
  1. 关于触发器

一般使用轮询SCM,定时获取代码,当获取到的代码发生变化时,进行构建发布,可以点击问号查看语法说明

  1. 总结

能减少一些重复的工作,开发人员不需要每次将代码获取到本地编译后发布,也可以保证代码的最新,不会因为开发人员的疏忽,未获取最新代码

自动化部署-Jenkins+SVN+MSBuild的更多相关文章

  1. 自动化部署-Jenkins+SVN+MSBuild 一些补充

    1.ftp的使用 系统管理->插件管理 安装插件Publish Over FTP 系统管理->系统设置 配置ftp参数 如下图 进入任务配置,添加构建后操作 在使用过程中还遇到一个本地防火 ...

  2. 项目测试环境自动化部署[jenkins前后端配置、Nginx配置]

    持续部署:关注点在于项目功能部署到服务器后可以正常运行,为下一步测试环节或最终用户正式使用做准备.(问题点:一个环节有问题,其他环节跟着有问题) 持续集成:关注点是在于尽早发现项目整体运行问题,尽早解 ...

  3. 自动化部署--Jenkins

    自动化部署--Jenkins--简介安装(一) https://www.jianshu.com/p/b9ce206139f1 自动化部署--Jenkins--Maven构建(二)  https://w ...

  4. Linux 部署jenkins + svn + mavne + tomcat8自动化部署

    1,下载Jenkins  war包   官网下载地址 https://jenkins.io/ 2.初始化安装 1)首次启动jenkins,出于安全考虑,jenkins会生成一个随机的口令到 /root ...

  5. jar包自动化部署---jenkins

    B.Application Server SVN账号:svn://192.168.1.49/svn/keenyoda-trunk/xxxxxcht=xxxxx 安装jenkins:安装目录:/usr/ ...

  6. jmeter接口自动化部署jenkins教程

    首先,保证本地安装并部署了jenkins,jmeter,xslproc 我搭建的自动化测试框架是jmeter+jenkins+xslproc ---注意:原理是,jmeter自生成的报告jtl文件,通 ...

  7. 自动化部署 jenkins 插件简介

    一.什么是持续集成? (1)Continuous integration(CI) 持续集成是一种软件开发实践,即团队开发成员经常集成他们的工作,通常每个成员至少集成一次,也就意味着每天可能会发生多次集 ...

  8. vue 自动化部署 jenkins 篇

    前端项目打包部署,以前都是手工运行打包命令,打包结束后压缩,然后上传到服务器上解压部署.这种重复性的工作,确实有点让人烦,而且效率也不高. 本文基于 vue 的前端项目. GitHub 的代码仓库,简 ...

  9. 自动化部署-Jenkins备份回滚

    1.备份 备份可以使用批处理命令解决,实际就是复制当前发布文件 ::备份文件夹名,使用当前时间 set foldername=%date:~0,4%%date:~5,2%%date:~8,2%%tim ...

随机推荐

  1. ubuntu安装python-ldap模块

    模块 一直很头疼好多依赖的模块 今天安装一个python-ldap  和ldap交互的模块 首先安装的时候会提示我们 compilation terminated. error: command 'x ...

  2. AD RMS企业文件版权管理

    AD RMS (AD权限管理服务)能够确保企业内部数字文件的机密性,例如,用户即使有权限读取受保护的文件,但是如果未被许可,就无法复制与打印该文件. AD RMS概述 虽然可以通过NTFS权限来设置用 ...

  3. VMware 导出镜像文件供 Virtual Box 使用

    1. 问题描述 Windows 系统安装的 VMware 里的安装配置好的虚拟机需要拷贝到 MAC 的 Virtual Box 中. 需要将 VMware 中的虚拟机导出为镜像文件供 Virtual ...

  4. 【转】Java学习---10个测试框架介绍

    [原文]https://www.toutiao.com/i6594302925458113027/ JAVA 程序员需要用到 10 个测试框架和库 Java 程序员需要用到十大单元测试和自动化集成测试 ...

  5. 乘风破浪:LeetCode真题_028_Implement strStr()

    乘风破浪:LeetCode真题_028_Implement strStr() 一.前言     这次是字符串匹配问题,找到最开始匹配的位置,并返回. 二.Implement strStr() 2.1 ...

  6. 【Ansible 文档】【译文】Windows 支持

    see also:List of Windows Modules Windows Support Windows 支持 Windows: How Does It Work Windows:如何工作 正 ...

  7. 【转】Android 4.4中播放HTML5视频<video>的Bug

    近期Nexus 4手机自动升级到Android4.4,本来挺好的一件事儿,结果发现自己的应用中出现一个Bug,应用中使用了Webview播放HTML5视频,代码如下: <video width= ...

  8. docker tomcat 已主机名为日志输出路径

    目的:所有的日志输出到共享存储目录中 方法:将 tomcat 的日志放置到 /data/logs/主机名/  下, 1. 修改tomcat/conf下的logging.properties [root ...

  9. Python高级网络编程系列之基础篇

    一.Socket简介 1.不同电脑上的进程如何通信? 进程间通信的首要问题是如何找到目标进程,也就是操作系统是如何唯一标识一个进程的! 在一台电脑上是只通过进程号PID,但在网络中是行不通的,因为每台 ...

  10. MP实战系列(十五)之执行分析插件

    SQL 执行分析拦截器[ 目前只支持 MYSQL-5.6.3 以上版本 ],作用是分析 处理 DELETE UPDATE 语句, 防止小白或者恶意 delete update 全表操作! 这里我引用M ...