热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

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

前言什么是持续集成呢?Continuousintegration(CI)。持续集成是一种软件开发实践,即团队开发成员经常集成他们的工作,通常每个成员至少集成一次,也就意味着每天可能

前言

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

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

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

安装

 

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

  一、安装Tomcat

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

 

 

 

 

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

接下来配置环境变量:

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

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

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

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

 

 

 

 

 

  二、安装JDK

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

  三、安装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了。

配置

一、插件安装

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

  

 

 

二、邮箱配置

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

 

 

 

 

  首先找到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——默认内容

 

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

 

    

    

    

"UTF-8">    

    

    

    

"8" margin0" topmargin="8" margin4"    

    offset="0">    

    95%" cellpadding="0" cellspacing="0"  color: #800000;">"font-size: 11pt; font-family: Tahoma, Arial, Helvetica, sans-serif">    

            

            本邮件由系统自动发出,无需回复!
各位同事,大家好,以下为${PROJECT_NAME }项目构建信息
"#CC0000">构建结果 - ${BUILD_STATUS}

"#0B610B">构建信息
"2" 100%" align="center" />

"#0B610B">失败用例


"2" 100%" /> $FAILED_TESTS

"#0B610B">最近提交(#$SVN_REVISION)


"2" 100%" />
    ${CHANGES_SINCE_LAST_SUCCESS, reverse=true, format="%c", changesFormat="
  • %d [%a] %m
  • "}
详细提交: "${PROJECT_URL}changes">${PROJECT_URL}changes

 

 

三、 Publish over SSH配置

接下来我们就开始配置SSH连接服务器配置了。

 

 

 

 

 

按照上面的配置进行设置就可以了。

Passphrase——密码或密钥

Name——此连接服务的名称

Hostname——服务器的地址

Username——服务器用户名

Remote Directory——传输的远程目录

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

四、 全局工具配置

进入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,这样就不需要这一步连接服务器的操作了。可以直接在服务器上一次性解决问题。

 


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

 

欢迎大家扫描下方二维码,和我一起踏上设计模式的闯关之路吧!

 

  

 


推荐阅读
  • 基于PgpoolII的PostgreSQL集群安装与配置教程
    本文介绍了基于PgpoolII的PostgreSQL集群的安装与配置教程。Pgpool-II是一个位于PostgreSQL服务器和PostgreSQL数据库客户端之间的中间件,提供了连接池、复制、负载均衡、缓存、看门狗、限制链接等功能,可以用于搭建高可用的PostgreSQL集群。文章详细介绍了通过yum安装Pgpool-II的步骤,并提供了相关的官方参考地址。 ... [详细]
  • Skywalking系列博客1安装单机版 Skywalking的快速安装方法
    本文介绍了如何快速安装单机版的Skywalking,包括下载、环境需求和端口检查等步骤。同时提供了百度盘下载地址和查询端口是否被占用的命令。 ... [详细]
  • Centos7.6安装Gitlab教程及注意事项
    本文介绍了在Centos7.6系统下安装Gitlab的详细教程,并提供了一些注意事项。教程包括查看系统版本、安装必要的软件包、配置防火墙等步骤。同时,还强调了使用阿里云服务器时的特殊配置需求,以及建议至少4GB的可用RAM来运行GitLab。 ... [详细]
  • 本文介绍了作者在开发过程中遇到的问题,即播放框架内容安全策略设置不起作用的错误。作者通过使用编译时依赖注入的方式解决了这个问题,并分享了解决方案。文章详细描述了问题的出现情况、错误输出内容以及解决方案的具体步骤。如果你也遇到了类似的问题,本文可能对你有一定的参考价值。 ... [详细]
  • 本文介绍了在Windows环境下如何配置php+apache环境,包括下载php7和apache2.4、安装vc2015运行时环境、启动php7和apache2.4等步骤。希望对需要搭建php7环境的读者有一定的参考价值。摘要长度为169字。 ... [详细]
  • 本文介绍了如何使用C#制作Java+Mysql+Tomcat环境安装程序,实现一键式安装。通过将JDK、Mysql、Tomcat三者制作成一个安装包,解决了客户在安装软件时的复杂配置和繁琐问题,便于管理软件版本和系统集成。具体步骤包括配置JDK环境变量和安装Mysql服务,其中使用了MySQL Server 5.5社区版和my.ini文件。安装方法为通过命令行将目录转到mysql的bin目录下,执行mysqld --install MySQL5命令。 ... [详细]
  • 本文介绍了在CentOS上安装Python2.7.2的详细步骤,包括下载、解压、编译和安装等操作。同时提供了一些注意事项,以及测试安装是否成功的方法。 ... [详细]
  • 本文介绍了在Mac上安装Xamarin并使用Windows上的VS开发iOS app的方法,包括所需的安装环境和软件,以及使用Xamarin.iOS进行开发的步骤。通过这种方法,即使没有Mac或者安装苹果系统,程序员们也能轻松开发iOS app。 ... [详细]
  • Nginx使用(server参数配置)
    本文介绍了Nginx的使用,重点讲解了server参数配置,包括端口号、主机名、根目录等内容。同时,还介绍了Nginx的反向代理功能。 ... [详细]
  • 搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的详细步骤
    本文详细介绍了搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的步骤,包括环境说明、相关软件下载的地址以及所需的插件下载地址。 ... [详细]
  • 本文介绍了Java工具类库Hutool,该工具包封装了对文件、流、加密解密、转码、正则、线程、XML等JDK方法的封装,并提供了各种Util工具类。同时,还介绍了Hutool的组件,包括动态代理、布隆过滤、缓存、定时任务等功能。该工具包可以简化Java代码,提高开发效率。 ... [详细]
  • 如何使用Java获取服务器硬件信息和磁盘负载率
    本文介绍了使用Java编程语言获取服务器硬件信息和磁盘负载率的方法。首先在远程服务器上搭建一个支持服务端语言的HTTP服务,并获取服务器的磁盘信息,并将结果输出。然后在本地使用JS编写一个AJAX脚本,远程请求服务端的程序,得到结果并展示给用户。其中还介绍了如何提取硬盘序列号的方法。 ... [详细]
  • flowable工作流 流程变量_信也科技工作流平台的技术实践
    1背景随着公司业务发展及内部业务流程诉求的增长,目前信息化系统不能够很好满足期望,主要体现如下:目前OA流程引擎无法满足企业特定业务流程需求,且移动端体 ... [详细]
  • 如何实现JDK版本的切换功能,解决开发环境冲突问题
    本文介绍了在开发过程中遇到JDK版本冲突的情况,以及如何通过修改环境变量实现JDK版本的切换功能,解决开发环境冲突的问题。通过合理的切换环境,可以更好地进行项目开发。同时,提醒读者注意不仅限于1.7和1.8版本的转换,还要适应不同项目和个人开发习惯的需求。 ... [详细]
  • Servlet多用户登录时HttpSession会话信息覆盖问题的解决方案
    本文讨论了在Servlet多用户登录时可能出现的HttpSession会话信息覆盖问题,并提供了解决方案。通过分析JSESSIONID的作用机制和编码方式,我们可以得出每个HttpSession对象都是通过客户端发送的唯一JSESSIONID来识别的,因此无需担心会话信息被覆盖的问题。需要注意的是,本文讨论的是多个客户端级别上的多用户登录,而非同一个浏览器级别上的多用户登录。 ... [详细]
author-avatar
w果乐园地盘BSp
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有