环境准备
Windows10操作系统
Git Server确保已安装
IIS 10确保已安装
.net core sdk3.1确保已安装
ASP.NET Core 3.1 Runtime (v3.1.5) - Windows Hosting Bundle Installer确保已安装
说明:我的项目是基于.net core3.1的,通过IIS 10做代理。所以.net core sdk、IIS、Windows Hosting Bundle Installer都是需要安装的。
下载
下载地址:https://www.jenkins.io/download/
截止目前最新版:2.235.1
安装
直接双击jenkins.msi文件,采用默认设置,直到完成。但是我将Jenkins安装在了E盘。
jenkins.msi安装好之后,会自动打开浏览器,并访问:http://localhost:8080。
注意:如果8080端口已被其它应用占用,可以把占用8080端口的应用停掉;或者修改jenkins.xml文件,使用其它端口。
配置Jenkins插件下载镜像
等待几秒,直到安装目录发现有hudson.model.UpdateCenter.xml文件。
这个时候到windows服务列表,停止Jenkins服务。
然后打开hudson.model.UpdateCenter.xml文件。
修改镜像:<url>https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json</url>
重新启动Jenkins服务。
再次打开http://localhost:8080,稍等会跳转到http://localhost:8080/login?from=%2F页面。
注意:期间会不断的去请求这个地址,不用管。据说是因为jenkins的后台访问了国外的地址,但访问不了导致的。
解锁Jenkins
然后会要求你解锁Jenkins,打开指定文件,复制粘贴进去即可。
安装Jekins插件
选择自定义Jenkins,如果选择推荐插件,不仅要等很久,而且会有很多装不上。
选择无,一个插件都不装。
创建管理员
FullName是登录后右上角显示的名字。
实例配置
至此Jenkins第一步算是配置完成。
汉化Jenkins
英语水平好的话,无需汉化。
点击左侧菜单Manage Jenkins,然后点击右侧Manage Plugins。
进去之后,选择Available。如下图 :
当出现:Use the search field above to search for available plugins.表示可以在搜索框搜索了。我们输入:Localization: Chinese (Simplified)。
安装完之后,地址栏输入:http://localhost:8080/restart 重新启动。重启成功后看到的就是汉化之后的界面了。
如果安装失败,可访问:https://plugins.jenkins.io/,单独下载。具体看下面:
选择最新的就行了。
下载下来后,是个localization-zh-cn.hpi文件。
点击主页的Manage Plugins,进去后选择Advance选项卡。将下载的文件上传上去即可,如下图:
地址栏输入:http://localhost:8080/restart 重新启动。
安装Git插件
具体步骤和安装汉化插件一样。
漫长等待,如果有插件无法安装,参考上面汉化方式处理。
地址栏输入:http://localhost:8080/restart 重新启动。
全局配置
如果Path to Git executable配置为git.exe不行的话,填写安装路径也是可以的。
我的是:C:Program FilesGitingit.exe
新建任务
使用Freestyle project。目前也就这一个。
源码管理
此处选择你的git远程仓库地址、账号密码、分支
构建触发器
勾选:Poll SCM,时间设置成:H/2 * * * *
意思是每2分钟检查git是否有变化,如果有变化就会重新构建和部署。
构建
选择使用windows批处理命令:Execute Windows batch command
注意:我们是.net core应用,且部署到windows操作系统。所以不能选择其它的脚本命令,只能使用windows批处理命令。
而且我们是部署在IIS上的,所以就有了本文开头环境准备里面的安装Windows Hosting Bundle Installer。用它来做代理,真正代理到我们的.net core应用。所以在构建之前我们还要做一件事情,在IIS上添加好站点:saas。站点目录为:D:subendong eleasesaas。也就是我们自动化部署时发布的目录。且应用程序池为非托管模式。
命令一内容:
C:WindowsSystem32inetsrvappcmd.exe stop apppool /apppool.name:saas
关闭应用程序池:saas
命令二内容:
e: cd E:Jenkinsworkspace estaspnet-core dotnet build dotnet publish -o D:subendong eleasesaas
定位到E盘
定位到aspnet-core目录,git拉下来的代码在test目录下,但是aspnet-core才是解决方案所在目录。
dotnet命令构建
dotnet命令发布
命令三内容:
C:WindowsSystem32inetsrvappcmd.exe start apppool /apppool.name:saas
启动应用程序池:saas
另外,上面三个步骤可以合在一个步骤里面的,具体如下:
e: cd E:Jenkinsworkspace estaspnet-core dotnet build C:WindowsSystem32inetsrvappcmd.exe stop apppool /apppool.name:saas dotnet publish -o D:subendong eleasesaas C:WindowsSystem32inetsrvappcmd.exe start apppool /apppool.name:saas
至此,大功告成,洗洗睡觉。
参考网址:
jenkins镜像:https://www.cnblogs.com/zxcnn/p/11703662.html
jenkins安装插件的两种方式:https://www.jianshu.com/p/3b5ebe85c034
jenkins之插件下载方法:https://www.cnblogs.com/happyuu-2019/p/11433502.html
jenkins设置中文显示:https://www.cnblogs.com/jpfss/p/11733664.html
jenkins构建触发器定时任务Build periodically和Poll SCM【转载】:https://www.cnblogs.com/caoj/p/7815820.html
Jenkins构建基于.NET Core的web程序:https://www.cnblogs.com/cluyun/p/11286335.html
根据端口号杀死进程:https://www.cnblogs.com/xiaostudy/p/11674053.html
IIS 站点和应用池命令启动和停止:https://www.cnblogs.com/jmaly/p/9860606.html