jenkins在windows上自动化部署.Net(.Net Core)项目

前言

  什么是持续集成呢?Continuous integrationCI)。持续集成是一种软件开发实践,即团队开发成员常常集成他们的工做,一般每一个成员至少集成一次,也就意味着天天可能会发生屡次集成。每次集成都经过自动化的构建(包括编译,发布,自动化测试)来验证,从而尽快地发现集成错误。许多团队发现这个过程能够大大减小集成的问题,让团队可以更快的开发内聚的软件。html

  若是没有持续集成会有哪一些问题呢?模块项目接口部署不及时,接口不通。每次须要手动打包最新的代码进行部署、发布代码、线上部署都是纯手工。容易出错。浪费时间。java

  如今加上持续集成解决的问题呢?项目构建自动化、集成的详细信息及历史记录的记录、使用统一的管理、固定规定的部署流程、天天至少集成一次。linux

安装

 

  这里我采用的是使用Tomcat配合jenkins一块儿使用的来达成持续集成的目的。git

  1、安装Tomcat

    从官网下载Tomcat。下载地址:http://tomcat.apache.org/web

 

 

 

 

    这里我选择的是32-bit/64-bit Windows Service Installer (pgpsha512)这个版本。而后依次安装就能够了。apache

接下来配置环境变量:windows

1、修改设置:CLASSPATH:(.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%)。注意是第一个符号点!!centos

2、新增设置:CATALINA_HOME:(D:\tool\apache-tomcat-7.0.57)括号内为路径名。设计模式

3、修改设置:path:(;%JAVA_HOME%;%JRE_HOME%\jre\bin)若之前配置java环境时配置过则不要再次配置。浏览器

     安装就差很少完成了,咱们在浏览器输入http://localhost:8080/来看看是否出现如下页面,出现了的话就说明安装成功了。

 

 

 

 

 

  2、安装JDK

    安装JDK能够查阅这篇文章——https://www.runoob.com/java/java-environment-setup.html

  3、安装Jenkins

  一切准备就绪以后,就开始安装jenkins了,下载地址:https://jenkins.io/download/前往地址下载jenkins的 war包。而后将war包放置在前面安装的Tomcat的目录之下(C:\Program Files\Apache Software Foundation\Tomcat 8.5\webapps——个人地址是这个)。

而后在浏览器中输入http://localhost:8080/jenkins/访问,安装成功的话就会出现jenkins的界面

 

 

 

这里根据提示咱们找到目录之下就能够获取密码了。接下来会出现插件安装的一个选择,新手直接选择新手入门推荐安装就行了。

 

 

 

 

 

 

这里有时会出现安装失败或者连接失败的状况,多试几回就行了。通常是网络的问题。

  

 

 

 

 

建立管理员用户以后就能够正式开始配置jenkins了。

配置

1、插件安装

  这里须要安装暂且有三个插件,一个是MSBuild Plugin、一个是 Publish Over SSH、一个是Email Extension Plugin。前者是用来做为编译的插件,后者是用来做为链接服务器的插件、最后一个则是用来配置邮件发送的插件了。

  

 

 

2、邮箱配置

  进入系统设置,正式开始配置邮件发送的配置。

 

 

 

 

  首先找到Jenkins Location设置系统管理员的邮件地址。

 

 

 

 

  而后找到Extended E-mail Notification设置,这里就能够开始设置邮件的发送配置了。这里我采用的是qq邮箱的配置。 

 

 

 

 

 

 

 

 

 

SMTP server——SMTP 服务器的配置

Default user E-mail suffix——默认电子邮件的后缀

User Name——这里设置的是发件人信息(12345678@qq.com-在这里就输入12345678

Password——这里不是填写密码,这里输入的是开通SMTP 的受权码

SMTP port——SMTP 默认端口开启465

Default Content Type——邮件内容的格式

Default Recipients——默认收件人

Default Subject——默认主题

Default Content——默认内容

 

邮件通知内容的配置的模板:

 

<!DOCTYPE html>    

<html>    

<head>    

<meta charset="UTF-8">    

<title>${ENV, var="JOB_NAME"}-第${BUILD_NUMBER}次构建日志</title>    

</head>    

    

<body leftmargin="8" marginwidth="0" topmargin="8" marginheight="4"    

    offset="0">    

    <table width="95%" cellpadding="0" cellspacing="0"  style="font-size: 11pt; font-family: Tahoma, Arial, Helvetica, sans-serif">    

        <tr>    

            本邮件由系统自动发出,无需回复!<br/>            

            各位同事,你们好,如下为${PROJECT_NAME }项目构建信息</br>

            <td><font color="#CC0000">构建结果 - ${BUILD_STATUS}</font></td>   

        </tr>    

        <tr>    

            <td><br />    

            <b><font color="#0B610B">构建信息</font></b>    

            <hr size="2" width="100%" align="center" /></td>    

        </tr>    

        <tr>    

            <td>    

                <ul>    

                    <li>项目名称 : ${PROJECT_NAME}</li>    

                    <li>构建编号 : 第${BUILD_NUMBER}次构建</li>    

                    <li>触发缘由: ${CAUSE}</li>    

                    <li>构建状态: ${BUILD_STATUS}</li>    

                    <li>构建日志: <a href="${BUILD_URL}console">${BUILD_URL}console</a></li>    

                    <li>构建  Url : <a href="${BUILD_URL}">${BUILD_URL}</a></li>    

                    <li>工做目录 : <a href="${PROJECT_URL}ws">${PROJECT_URL}ws</a></li>    

                    <li>项目  Url : <a href="${PROJECT_URL}">${PROJECT_URL}</a></li>    

                </ul>    

 

<h4><font color="#0B610B">失败用例</font></h4>

<hr size="2" width="100%" />

$FAILED_TESTS<br/>

 

<h4><font color="#0B610B">最近提交(#$SVN_REVISION)</font></h4>

<hr size="2" width="100%" />

<ul>

${CHANGES_SINCE_LAST_SUCCESS, reverse=true, format="%c", changesFormat="<li>%d [%a] %m</li>"}

</ul>

详细提交: <a href="${PROJECT_URL}changes">${PROJECT_URL}changes</a><br/>

 

            </td>    

        </tr>    

    </table>    

</body>    

</html>

 

 

3、 Publish over SSH配置

接下来咱们就开始配置SSH链接服务器配置了。

 

 

 

 

 

按照上面的配置进行设置就能够了。

Passphrase——密码或密钥

Name——此链接服务的名称

Hostname——服务器的地址

Username——服务器用户名

Remote Directory——传输的远程目录

Use password authentication, or use a different key——此选项可另设置其余的密码

4、 全局工具配置

进入Global Tool Configuration设置全局工具设置,这里首先咱们得设置git,这个不设置后面可能就拉取不到代码了。再而后设置MSBuild这个设置就是用来给项目进行编译的。

 

 

 

 

构建

到这里安装和配置都已经结束了。咱们能够正式开始构建项目了。这里咱们分为对.Net .Net Core项目进行集成。配合使用则是Git进行代码的提交及拉取。

这里咱们选择开始构建一个自由风格的项目。

 

 

而后进行项目描述填写

 

 

 

 

这里就开始设置源代码管理了。选择git并输入地址。随后点击高级,设置用户名和密码,而后返回此页面选择刚设置的证书便可

 

 

 

 

而后开始构建触发器,这里我设置的触发器的时间是每分钟轮询是否触发。时间你们能够根据状况而定

 

 

 

 

这里的构建环境,你们能够视状况而定。

 

 

 

 

到这里就正式开始构建配置了。这里我选择的是使用MSBuild构建VS项目。

 

 

 

/t:Rebuild /p:Configuration=Release /p:DeployOnBuild=true;PublishProfile=FolderProfile /p:OutputPath=D:\Jenkins_Publish

 

MSBuild Build File——构建的目录(例如个人就填写的C:\Windows\ServiceProfiles\LocalService\.jenkins\workspace\Test_Net\WebApplication1\WebApplication1.csproj) Command Line Arguments——构建的命令 Rebuild ——从新生成 Configuration=Release——生成Release版本 DeployOnBuild=true;PublishProfile=FolderProfile——设置运行部署生成,而且执行FolderProfile目录下的生产目录(FolderProfile文件在Properties目录中) OutputPath——输出路径

 

这里我看开始配置构建完成以后的操做的短信配置了。

 

 

 

 

 

到这里就已经都配置完成了,咱们能够返回主页面开始构建了。

 

 

 

 

点击当即构建,不一会咱们就收到了邮件

 

 

 

 

到这里咱们使用git加上jenkins搭建的.Net 项目持续集成就完成了。那么咱们接下来看对于.Net Core项目如何进行持续集成的呢。由于.Net Core 项目能够部署在Linux上,因此下面咱们就以Linux做为服务器。在本地进行集成而后发布到Linux。其余的操做都是同样的,主要在构建操做和构建后操做不一样。咱们下面主要介绍构建操做和构建后操做。

 

 

 

 

dotnet restore dotnet build dotnet publish -c:Release -r centos.7-x64 --self-contained false   -o C:\Windows\ServiceProfiles\LocalService\.jenkins\workspace\Test_Net_Core\WebApplication2\bin\Release\netcoreapp2.2\centos.7-x64 echo 压缩开始 cd C:\Windows\ServiceProfiles\LocalService\.jenkins\workspace\Test_Net_Core\WebApplication2\bin\Release\netcoreapp2.2 7z a -tzip publish.zip C:\Windows\ServiceProfiles\LocalService\.jenkins\workspace\Test_Net_Core\WebApplication2\bin\Release\netcoreapp2.2\centos.7-x64 echo 压缩结束

 

dotnet restore——还原

dotnet build ——构建

dotnet publish——发布

-c:Release ——Release 版本

-r centos.7-x64 ——linux版本

--self-contained false ——框架依赖

-o D:\Jenkins_CorePublish ——发布文件到此目录下

 

 

后面增长了一个压缩命令,将发布文件压缩成一个压缩包,这个是方便后续上传到服务器的。SSH上传仅上传文件。不带上传文件夹。因此咱们须要进行压缩。后续上传到服务器再进行解压。

而后开始配置构建后操做,同样的须要配置邮件信息,邮件信息与上面的配置同样便可。这里咱们主要配置如何链接SSH

 

 

 

 

这里须要注意的是上传的源文件。这里基目录是你的jenkins工做目录,因此须要相对于填写位置

这里配置上传文件及解压等操做而后从新启动linux服务器上的服务完成发布。

cd /home/hlz

rm -f publish

unzip publish.zip

rm -f publish.zip

cd /root

systemctl  enable Test.service

systemctl  start Test.service

systemctl  status Test.service

 

总结

  到这里在windows上使用jenkins持续集成就完成了。中间还有一些细节须要另行配置的均可以自由发挥,主要流程大概就是这么多了。这里的是经过在本地继续集成而后经过Publish over SSH插件传输到linux服务器进行.Net Core项目的部署的。那么咱们也能够直接在Linux上部署Jenkins,这样就不须要这一步链接服务器的操做了。能够直接在服务器上一次性解决问题。

 


  逃避不必定躲得过,面对不必定难受.转身不必定最软弱.

 

欢迎你们扫描下方二维码,和我一块儿踏上设计模式的闯关之路吧!

 

  

相关文章
相关标签/搜索