devops系列一:windows下用Jenkins搭建.Net持续集成环境

前言

由于公司业务的扩张导致各个分支日益增多,每次发布或测试都需要手动的编译、发布等过程,不仅造成了时间的浪费,还有可能手工因素导致各种错误,所以为了减少人工的干预,实现自动化编译、部署,现引入自动化的编译发布工具:Jenkins

本文基于.NET4.x的web项目和SVN的代码仓库以及Windows下利用Jenkins实现自动编译发布的配置

安装

1.安装并配置JDK1.8

2.下载 Jenkins的windows安装包进行安装。 地址:https://www.jenkins.io/zh/

2.1更改目录

安装好后登入 http://localhost:8080/jenkins 进入 Jenkins 初始化界面进入成功后会出现如下界面 devops系列一:windows下用Jenkins搭建.Net持续集成环境

如果需要更换jenkins的目录在输入密码之前,将安装目录中的jenkins.xml如下选项更改为自己想要的路径

devops系列一:windows下用Jenkins搭建.Net持续集成环境

然后重启jenkins,输入秘钥、推荐用户安装(如果安装失败也没事,直接跳过)创建用户

进入首页 devops系列一:windows下用Jenkins搭建.Net持续集成环境

2.2 替换插件源

找到$JENKINS_HOME/hudson.model.UpdateCenter.xml文件
把http://updates.jenkins-ci.org/update-center.json替换为国内源,例如jenkins插件地址
https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json
也可以在正常安装后再修改
1.进入jenkins系统管理
2.进入插件管理
3.点击高级,修改升级站点的地址为清华大学镜像地址

2.3汉化

1.插件管理

2.搜索 Localization: Chinese (Simplified)

3.安装

3.Microsoft Build Tools 2019

(a.如果使用环境变量中的msbuild(C:\Windows\Microsoft.NET\Framework\v4.0.30319)也可以不用该工具,看团队的vs统一版本是什么,这里我用的2019因为团队中用的vs的版本很多,导致环境变量中的msbuild可能编译不过去,如果已经安装了vs也可以用vs中的msbuild(C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\MSBuild\Current\Bin))

下载地址: https://visualstudio.microsoft.com/zh-hans/thank-you-downloading-visual-studio/?sku=BuildTools&rel=16

安装步骤 devops系列一:windows下用Jenkins搭建.Net持续集成环境

参考文章:https://www.cnblogs.com/gaocong/p/11733112.html

Jenkins集成Msbuild

1.安装Msbuild插件

1.插件管理

2.搜索 MSBuild Plugin

3.安装,在全局工具中会出现Msbuild的选项devops系列一:windows下用Jenkins搭建.Net持续集成环境

2.配置Msbuild全局环境

devops系列一:windows下用Jenkins搭建.Net持续集成环境

如上图

我的编译的参数是

/t:Rebuild /p:Configuration=Release;Platform="Any CPU";TargetFrameworkVersion=v4.5 /p:VisualStudioVersion=16.0

我的发布的参数是

/t:Rebuild /p:DeployOnBuild=true  /p:Confiquration=Release /p:OutDir=bin\Release /p:WebProjectOutputDir="D:\Jenkins\workspace\xxx" 

自定义发布路径的参数是

  /t:Rebuild /p:DeployOnBuild=true /p:Confiquration=Release /p:OutDir=bin\Release 

三个自定义msbuild应对不同的场景

name:自定义名称

Path to MSBuild:环境变量可以用C:\Windows\Microsoft.NET\Framework\v4.0.30319\或者用vs中的msbuild工 具C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\MSBuild\Current\Bin

Default parameters:

/t:Rebuild --重新生成

/P:Configuration=Release --Release 生成模式(也可Debug)

/p:VisualStudioVersion=16.0 --指定子工具集版本,VS2019对应的是16.0,VS2015对应的是14.0

/p:TargetFrameworkVersion=v4.5 --Framework的版本

/p:DeployOnBuild=True --表示部署加编译

PublishProfile=xxxxxx.pubxml --使用 xxxx.pubxml 发布文件来发布项目 --这个在vs中发布项目以后对应的Properties\PublishProfiles中会有该文件

/p:WebProjectOutputDir=F:\xxx --发布的目标目录

/p:OutputPath=F:\xxxx\bin --发布的目标目录的bin目录

Jenkins集成SVN

1.插件管理

2.搜索Subversion

3.安装,在配置jenkins*的项目的时候会出现Subversion的选项如下图

devops系列一:windows下用Jenkins搭建.Net持续集成环境

创建Jenkins任务

1.创建任务

【构建一个*风格的软件项目】

devops系列一:windows下用Jenkins搭建.Net持续集成环境

也可以通过复制中填写其他的任务名称来创建

1.1 General设置

1.2源码设置

devops系列一:windows下用Jenkins搭建.Net持续集成环境

1.添加源码地址

2.填写svn用户名密码

3.全部拉取时点不能忘记,部分拉取的话填上模块名

1.3 构建触发器

devops系列一:windows下用Jenkins搭建.Net持续集成环境

Build periodically:定时构建,如上图每天8点构建

Poll SCM:定时检查源码变更 如上图我想每过一个小时查看源码是否有变更,有变更就构建

表达式语法:

* * * * *

(五颗星,中间用空格隔开)

第一颗表示分钟,取值0~59
第二颗
表示小时,取值0~23
第三颗表示一个月的第几天,取值1~31
第四颗
表示第几月,取值1~12
第五颗*表示一周中的第几天,取值0~7,其中0和7代表的都是周日

1.每30分钟构建一次:

H/30 * * * *

2.每2个小时构建一次``

H H/2 * * *

3.每天早上8点构建一次

0 8 * * *

4.每天的8点,12点,22点,一天构建3次

0 8,12,22 * * *

(多个时间点,中间用逗号隔开)

参考文章:https://www.cnblogs.com/caoj/p/7815820.html

1.4构建环境

1.5构建

1.增加构建步骤-选择 Build a Visual Studio Project or solution using Build

devops系列一:windows下用Jenkins搭建.Net持续集成环境

MSBuild Version 选择好之前搞好的msbuild

MSBuild Build File 填写需要编译的工程的路径

Command Line Arguments 填写上构建时需要的参数

  1. Execute Windows batch command

devops系列一:windows下用Jenkins搭建.Net持续集成环境

如上图

xcopy /s/r  "\*.*"    D:\xxxx\workspace\xxxx\ /y
del D:\Jenkins\workspace\xxxxx\Web.config 
RD /s /q D:\Jenkins\workspace\xxxx\bin\xxxx\ 

复制路径下的文件(该工程下的相对路径)到另外一个文件夹

删除文件

删除文件夹下的内容

可以复制到对应的部署路径上面去

1.6 应用、保存、立即构建

devops系列一:windows下用Jenkins搭建.Net持续集成环境

上一篇:Running Tests in Minimized Remote Desktop Windows


下一篇:Windows10上不同CUDA版本的切换