快速使用jenkins自动部署.NET站点
在研发过程中,测试时候发布站点,如果按照传统方式拷贝站点到服务器也是比较浪费时间的,如果忘记拷贝一个文件而找问题估计一上午就过去了。避免程序员手动发布的方式可以解决这个问题,比如可以通过gitlab写脚本实现cd/ci自动部署,也可以通过jenkins图形化界面自动部署,当然也可以自己写个程序来实现。对于.NET程序员最快速的实现方式是啥呢?那就是jenkins方式实现,本文将讲述使用jenkins简单快捷部署.NET站点。
一、环境安装
Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件项目可以进行持续集成(百度百科)。
为啥说jenkins比较快呢,它可以下载安装包自动安装windows,安装完成在网页中打开就能配置,这也是.NET程序员喜欢的方式啊。
1)首先在官网下载安装包(jenkins.io)
2)安装的时候需要java的sdk,注意需要java的SDK版本是11和17,否则安装不上去,jenkins的2.3LTS只支持11和17这两个版本。
3)安装:下一步就可以了,安装过程需要选择是否设置账号,这里选择不需要。在安装过程中可以设置访问的端口号,默认是8080
4)验证是否安装成功,打开http://localhost:8080/,如果能访问到jenkins界面安装成功。首次访问需要设置账号和密码。
二、使用jenkins部署.net站点
1)基本设置
选择菜单新建item,我们取名first-netwebdome,并选择Freestyle project后点击确定。
2)描述和日志
确定后可以配置要自动化发布的项目。首先可以填写描述,描述可以根据项目情况自定义填写;在描述下面选择第一项,这个可以配置日志的保存天数和个数,如下图
3)配置在git源的项目
这时候暂时不保存,下拉页面会看到源码管理,在源码管理下选择git会展开界面,这时候填写你的git地址和验证,小编是用的阿里云的git管理。如下图。
4)构建触发器
再下拉浏览器就可以看到"构建触发器",这里有5个选项,我们这里选择第四个选项,意思是项目代码有提交到git上触发。
其中选项2是当依赖的job被构建时执行本job,选项3是使用cron表达式定时构建本job,选项5是使用cron表达式定时检查代码变更,变更后构建本job。由于我们这里选择git方式,故选择第4项。
5)编写构建脚本
再继续向下拉会出现Build Steps,在下拉选择第一项,意思是在windows系统中编写同步脚本,第二项是linux。这里选择第一项,会弹出编写脚本的超文本框,如下图:
脚本如下:
cd "%WORKSPACE%\Project.Web\Project.Admin.Web"dotnet publish -c Release -f netcoreapp3.1 --self-contained falsecall C:\Windows\System32\inetsrv\appcmd.exe stop apppool /apppool.name:"testwebapi"callxcopy"%WORKSPACE%\Project.Web\Project.Admin.Web\bin\Release\netcoreapp3.1\publish""D:\WEB\webapi"/s/e/y/exclude:D:\WEB\webapi\Jenkins\paichu.txtcallC:\Windows\System32\inetsrv\appcmd.exestartapppool/apppool.name:"testwebapi"
第一段代码很简单,意思是进入到要编译的项目目录
第二段:以Release方式生成项目
第三段:停止IIS该项目的应用池第四段:拷贝生成好的文件到站点目录,这里的目录是D:\WEB\webapi,exclude后面的文件是排除的项目文件,格式是".文件类型",如下
第五段:启用刚刚关闭的项目应用池
脚本为dos批处理命令,大家可以在网上搜索一下,还是比较简单一看就明白。
6)完成测试
点击保存按钮便配置完成,简单吧。等待一下检查一下D:\WEB\webapi盘是否有文件,结果没有啊。可能第一次失败,原来是目录配置错误,这时候可以手动执行,点击Build Now执行,左下角是执行的历史记录,如下图
接下来看看目录里是否拷贝了文件
从日期可以看见成功拷贝到网站的目录。
结语
以上是jenkins快速部署到windows服务器上,jenkins也支持linux,并且支持docker和k8s自动化部署,大家可以尝试一下,后续方便的时候小编可以替大家实验一下并分享出来。jenkins还有许多功能,比如监控一些定时执行的任务等,还可以安装一些组件,可以说功能强大,如果大家感兴趣可以研究一下。如果能通过gitlab写脚本实现cd/ci自动部署是比较优的方案,毕竟不需要另外安装依赖。希望本文给你带来收获,欢迎大家留言或提出异议。
版权声明:于网友收集或网友提供,仅供学习交流之用,如果有侵权,请转告版主或者留言,本公众号立即删除。
关注公众号:DotNet开发跳槽觉得不错,请点个在看呀
最近一直有很多同学提到不会写 Jenkins Pipeline 脚本,我都是直接摔一个 Jenkins 官方文档给他们,但是当我自己仔细去查看资料的时候发现并非如此简单,无论是声明式还是脚本式的 Pipeline 都依赖了 Groovy 脚本,所以如果要很好的掌握 Pipeline 脚本的用法,我们非常有必要去了解下 Groovy 语言。
什么是 Groovy
Groovy 是跑在 JVM 中的另外一种语言,我们可以用 Groovy 在 Java 平台上进行编程,使用方式基本与使用 Java 代码的方式相同,所以如果你熟悉 Java 代码的话基本上不用花很多精力就可以掌握 Groovy 了,它的语法与 Java 语言的语法很相似,而且完成同样的功能基本上所需要的 Groovy 代码量会比 Java 的代码量少。
官方网站:https://groovy.apache.org