• 评论

windows server 服务器安装jenkins 并通过git拉取代码实现自动发布到IIS

    Jenkins是一个开源软件,可以通过一定的配置进行自动构建,测试,部署等功能。

    首先,服务器应安装好 .NET Core环境和JDK

    下载Jenkins安装包 https://www.jenkins.io/download/thank-you-downloading-windows-installer-stable/


    1.打开安装包,选择安装位置

    1693210c9888210f.png

2.因为jenkins需要安装到windows服务,所以使用本地账户或有权限的账户安装

89f211ebec3d551e.png

3.jenkins默认端口为8080,如果该端口已占用,可改为其他端口,这里使用默认端口

5c7762170e38e5af.png

4.选择jdk安装路径,如未安装jdk,请先安装 https://www.oracle.com/java/technologies/downloads/#jdk17-windows

32a098b5e6b37637.png

5.是否设置防火墙例外,点击下一步

d54a893bf4e9edf9.png

6.开始安装

9bfe9d276afee41c.png

7.安装完成

6d289cceb36b7eca.png

8.打开浏览器,输入http://localhost:8080/ 显示如下界面

20420b42647a6b91.png

9.找到C:\Windows\System32\config\systemprofile\AppData\Local\Jenkins\.jenkins\secrets\initialAdminPassword 文件,将密码复制进去,点击继续

微信截图_20211014091658.png

10.选择安装推荐的插件,也可以手动选择插件来安装

微信截图_20211014091722.png

11.安装成功后,设置一个管理员用户

微信截图_20211014092211.png

12.实例配置先保存默认值即可

微信截图_20211014092309.png

13.点击开始使用Jenkins

微信截图_20211014092328.png

14.进入主界面,点击中间Create a new job,或左侧新建Item

微信截图_20211014093427.png

15,输入名称,选择 Freestyle project

微信截图_20211014093453.png

16,填写描述

微信截图_20211014093618.png

17.源码管理选择Git,填写git地址,在Credentials里设置git账户

微信截图_20211014093739.png

18.如需要自动轮询git提交,可在构建触发器中选中Poll SCM,填写相应Cron表达式,*/1 * * * * 代表每分钟轮询一次,可根据需求设置

微信截图_20211014093854.png

19.在构建选项中增加构建步骤,选择 Execute Windows batch command

微信截图_20211014094331.png

20.填入以下命令 

假设IIS中已有一个名为Publish的网站,文件路径为D:\www\Publish

其中Publish.csproj为要发布的项目文件 -o 后面为自动发布的目录

第五行删除掉appsetting.json以避免覆盖正式配置文件

后三行为停止对应应用程序池

将文件从自动发布目录拷贝到网站目录

启动应用程序池


dotnet clean
dotnet restore
dotnet build
dotnet publish Publish.csproj -o D:\www\PublishAuto
del /f /s /q D:\www\PublishAuto\appsettings.json
C:\Windows\System32\inetsrv\appcmd.exe stop apppool "Publish"
ROBOCOPY D:\www\PublishAuto D:\www\Publish /e /MT:30
C:\Windows\System32\inetsrv\appcmd.exe start apppool "Publish"

微信截图_20211014105450.png

21.最后点击保存即可,回到项目主页面,点击左侧Build Now,或在主页面点击项目后面发布按钮,即可自动发布

微信截图_20211014105751.png

微信截图_20211014105808.png微信截图_20211014110656.png22.如果设置了自动轮询,则Jenkins会每隔1分钟pull一下git仓库,如果有新提交则会自动发布。



相关文章