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

Windows服务器使用Jenkins自动部署

Windows服务器使用Jenkins自动部署,Go语言社区,Golang程序员人脉社

由于公司正在开发的工作流的几个项目经常需要测试,所以我用 Jenkins 实现了一个持续集成部署的方案。
持续集成部署的意义也在这里:在经常性的重复性部署工作中解放自己。

由于.net framework 的项目占多数,公司的测试机都是WINDOWS系统,生产机也是WINDOWS系统。在WINDOWS系统安装 Jenkins 也很方便。先装 Jdk,就可以装 Jenkins 了。  注意选择插件时,如果用的Svn Subversion Plug-in。

.net framework的项目,使用 Jenkins 会有些别扭,因为得安装和使用 Msbuild ,Msbuild 我没有找到新版本的独立安装包,后来就直接装的VS里的 Msbuild,还是会有奇奇怪怪的问题,直到完全安装了VS,才不出什么问题。.net core 的项目就简单多了,装了 dotnet core  的SDK就基本OK了。本文就使用 .net core 的项目进行讲解。

打开 Jenkins 点击 “New 任务”

公司源代码管理是用的 Svn,我自己的项目用的 Git。在图2 中输入 Svn 地址和帐号信息

因为并不是每次提交代码都需要发布,所以触发器没有做。触发的工作就交给部门新人来做,反正就点一下。

最重要的配置是在 “Build” 步骤。添加一个“执行 Windows 批处理命令”

在文本框里输入一些信息,如下:

这些命令会在 Jenkins 下载完 Svn 的代码后执行。

cd trunk 这是因为从我的 Svn 下载下来的目录结构,代码都是放在 trunk 文件夹下的。如果你的代码放在根目录,就不要这句。

dotnet restore WebApp --source "https://api.nuget.org/v3/index.json;http://nuget.mydomain.com.cn/nuget/"

我发布的项目名是 WebApp,其他类库项目我不关心。 dotnet 会依照依赖顺序执行 restore。
另外后边的 source 参数是因为我的项目引用了我自己的nuget 站点上的程序包,没有引用自己私有包的可以省略这个参数。

dotnet build
这句是生成,我不确定这句应不应该省略,因为 publish 的时候也会生成。读者有时间可以试一下删掉这句是不是也完全正常。

dotnet publish WebAppWebApp.csproj  -o E:WebAppWebsite

这句是发布,-o 是指定发布位置,这里是我的站点所在路径。

本以为这样跑起来没问题,可是事实没这么乐观。因为网站运行时,dotnet 会占用程序文件,所以在最后发布的步骤,会报告错误,替换文件失败。如果部署在 Docker 里,可以先停掉 Docker ,更新完文件再运行起来,但在 Windows 服务器里,应该是没有命令行可以控制某个网站的运行,PowerShell 应该可以,但是我没研究过。那可以用一个折中的办法,停掉 3w 服务,然后发布,发布完再开启服务,脚本变成下边的样子:

然后发现发布的时候有点长,会影响到测试服务器其他站点的运行。
然后想到了可以发布到一个临时文件夹,发布好之后再停止服务进行文件替换,替换完开启服务,最终的代码变成了这样:

这样就差不多了。连续跑了几天,没什么问题。

 


推荐阅读
  • 本文介绍了Hyperledger Fabric外部链码构建与运行的相关知识,包括在Hyperledger Fabric 2.0版本之前链码构建和运行的困难性,外部构建模式的实现原理以及外部构建和运行API的使用方法。通过本文的介绍,读者可以了解到如何利用外部构建和运行的方式来实现链码的构建和运行,并且不再受限于特定的语言和部署环境。 ... [详细]
  • Android Studio Bumblebee | 2021.1.1(大黄蜂版本使用介绍)
    本文介绍了Android Studio Bumblebee | 2021.1.1(大黄蜂版本)的使用方法和相关知识,包括Gradle的介绍、设备管理器的配置、无线调试、新版本问题等内容。同时还提供了更新版本的下载地址和启动页面截图。 ... [详细]
  • 如何在服务器主机上实现文件共享的方法和工具
    本文介绍了在服务器主机上实现文件共享的方法和工具,包括Linux主机和Windows主机的文件传输方式,Web运维和FTP/SFTP客户端运维两种方式,以及使用WinSCP工具将文件上传至Linux云服务器的操作方法。此外,还介绍了在迁移过程中需要安装迁移Agent并输入目的端服务器所在华为云的AK/SK,以及主机迁移服务会收集的源端服务器信息。 ... [详细]
  • 本文详细介绍了GetModuleFileName函数的用法,该函数可以用于获取当前模块所在的路径,方便进行文件操作和读取配置信息。文章通过示例代码和详细的解释,帮助读者理解和使用该函数。同时,还提供了相关的API函数声明和说明。 ... [详细]
  • YOLOv7基于自己的数据集从零构建模型完整训练、推理计算超详细教程
    本文介绍了关于人工智能、神经网络和深度学习的知识点,并提供了YOLOv7基于自己的数据集从零构建模型完整训练、推理计算的详细教程。文章还提到了郑州最低生活保障的话题。对于从事目标检测任务的人来说,YOLO是一个熟悉的模型。文章还提到了yolov4和yolov6的相关内容,以及选择模型的优化思路。 ... [详细]
  • 搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的详细步骤
    本文详细介绍了搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的步骤,包括环境说明、相关软件下载的地址以及所需的插件下载地址。 ... [详细]
  • 如何去除Win7快捷方式的箭头
    本文介绍了如何去除Win7快捷方式的箭头的方法,通过生成一个透明的ico图标并将其命名为Empty.ico,将图标复制到windows目录下,并导入注册表,即可去除箭头。这样做可以改善默认快捷方式的外观,提升桌面整洁度。 ... [详细]
  • 本文讨论了在Windows 8上安装gvim中插件时出现的错误加载问题。作者将EasyMotion插件放在了正确的位置,但加载时却出现了错误。作者提供了下载链接和之前放置插件的位置,并列出了出现的错误信息。 ... [详细]
  • 阿,里,云,物,联网,net,core,客户端,czgl,aliiotclient, ... [详细]
  • 本文介绍了在Win10上安装WinPythonHadoop的详细步骤,包括安装Python环境、安装JDK8、安装pyspark、安装Hadoop和Spark、设置环境变量、下载winutils.exe等。同时提醒注意Hadoop版本与pyspark版本的一致性,并建议重启电脑以确保安装成功。 ... [详细]
  • 本文介绍了高校天文共享平台的开发过程中的思考和规划。该平台旨在为高校学生提供天象预报、科普知识、观测活动、图片分享等功能。文章分析了项目的技术栈选择、网站前端布局、业务流程、数据库结构等方面,并总结了项目存在的问题,如前后端未分离、代码混乱等。作者表示希望通过记录和规划,能够理清思路,进一步完善该平台。 ... [详细]
  • XML介绍与使用的概述及标签规则
    本文介绍了XML的基本概念和用途,包括XML的可扩展性和标签的自定义特性。同时还详细解释了XML标签的规则,包括标签的尖括号和合法标识符的组成,标签必须成对出现的原则以及特殊标签的使用方法。通过本文的阅读,读者可以对XML的基本知识有一个全面的了解。 ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • 本文介绍了三种方法来实现在Win7系统中显示桌面的快捷方式,包括使用任务栏快速启动栏、运行命令和自己创建快捷方式的方法。具体操作步骤详细说明,并提供了保存图标的路径,方便以后使用。 ... [详细]
  • 本文讨论了在数据库打开和关闭状态下,重新命名或移动数据文件和日志文件的情况。针对性能和维护原因,需要将数据库文件移动到不同的磁盘上或重新分配到新的磁盘上的情况,以及在操作系统级别移动或重命名数据文件但未在数据库层进行重命名导致报错的情况。通过三个方面进行讨论。 ... [详细]
author-avatar
有志者来袭
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有