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

        前言

          什么是持续集成呢?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——这里设置的是发件人信息([email protected]在这里就输入12345678

        Password——这里不是填写密码,这里输入的是开通SMTP 的授权码

        SMTP port——SMTP 默认端口开启465

        Default Content Type——邮件内容的格式

        Default Recipients——默认收件人

        Default Subject——默认主题

        Default Content——默认内容

         

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

         

        <!DOCTYPE html>    
        
        <html>    
        
        <head>    
        
        <meta charset="UTF-8">    
        
        <title>${ENV, var="JOB_NAME"}-第${BUILD_NUMBER}次构建日志</title>    
        
        </head>    
        
            
        
        <body leftmargin="8" marginwidth="0" topmargin="8" marginheight="4"    
        
            offset="0">    
        
            <table width="95%" cellpadding="0" cellspacing="0"  style="font-size: 11pt; font-family: Tahoma, Arial, Helvetica, sans-serif">    
        
                <tr>    
        
                    本邮件由系统自动发出,无需回复!<br/>            
        
                    各位同事,大家好,以下为${PROJECT_NAME }项目构建信息</br>
        
                    <td><font color="#CC0000">构建结果 - ${BUILD_STATUS}</font></td>   
        
                </tr>    
        
                <tr>    
        
                    <td><br />    
        
                    <b><font color="#0B610B">构建信息</font></b>    
        
                    <hr size="2" width="100%" align="center" /></td>    
        
                </tr>    
        
                <tr>    
        
                    <td>    
        
                        <ul>    
        
                            <li>项目名称 : ${PROJECT_NAME}</li>    
        
                            <li>构建编号 : 第${BUILD_NUMBER}次构建</li>    
        
                            <li>触发原因: ${CAUSE}</li>    
        
                            <li>构建状态: ${BUILD_STATUS}</li>    
        
                            <li>构建日志: <a href="${BUILD_URL}console">${BUILD_URL}console</a></li>    
        
                            <li>构建  Url : <a href="${BUILD_URL}">${BUILD_URL}</a></li>    
        
                            <li>工作目录 : <a href="${PROJECT_URL}ws">${PROJECT_URL}ws</a></li>    
        
                            <li>项目  Url : <a href="${PROJECT_URL}">${PROJECT_URL}</a></li>    
        
                        </ul>    
        
         
        
        <h4><font color="#0B610B">失败用例</font></h4>
        
        <hr size="2" width="100%" />
        
        $FAILED_TESTS<br/>
        
         
        
        <h4><font color="#0B610B">最近提交(#$SVN_REVISION)</font></h4>
        
        <hr size="2" width="100%" />
        
        <ul>
        
        ${CHANGES_SINCE_LAST_SUCCESS, reverse=true, format="%c", changesFormat="<li>%d [%a] %m</li>"}
        
        </ul>
        
        详细提交: <a href="${PROJECT_URL}changes">${PROJECT_URL}changes</a><br/>
        
         
        
                    </td>    
        
                </tr>    
        
            </table>    
        
        </body>    
        
        </html>

         

         

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

         


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

         

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

         

          分享图片

        相关文章
        相关标签/搜索
        香港马会免费资枓大全香港开奖结果_香港马会2019开奖结果_2019 最快开奖记录结果_小鱼儿玄机2站开奖 开奖结果 江阴市| 翼城县| 林甸县| 鞍山市| 保定市| 阿勒泰市| 奉贤区| 南汇区| 开远市| 藁城市| 德昌县| 乌什县| 新龙县| 漳平市| 富源县| 田林县| 临海市| 镇雄县| 凌源市| 德阳市| 金山区| 石狮市| 治多县| 进贤县| 顺昌县| 鄢陵县| 泰州市| 高陵县| 壤塘县| 桓台县| 新沂市| 军事| 玛沁县| 十堰市| 琼结县| 行唐县| 砀山县| 辰溪县| 大理市| 仁布县| 平南县| 商洛市| 凭祥市| 桃江县| 云南省| 临沂市| 凤城市| 聂荣县| 汶上县| 仁布县| 张家川| 乐业县| 蕉岭县| 昭平县| 英吉沙县| 东方市| 商洛市| 贵南县| 綦江县| 秭归县| 枞阳县| 萍乡市| 五家渠市| 桃园县| 南汇区| 云龙县| 天水市| 镇坪县| 潼关县| 清涧县| 长顺县| 九龙坡区| 尼勒克县| 房产| 疏附县| 桂阳县| 盱眙县| 九龙坡区| 扶绥县| 伊宁县| 嘉荫县| 开封县| 黄平县| 咸阳市| 金沙县| 邵阳市| 封丘县| 垣曲县| 宁强县| 邵武市| 澄迈县| 通榆县| 阿坝县| 壤塘县| 泊头市| 宁国市| 彭泽县| 抚远县| 南安市| 台南市| 乐陵市| 伊通| 太原市| 亚东县| 东阿县| 牟定县| 桦川县| 沈丘县| 海南省| 彰化市| 乌兰察布市| 大竹县| 沧州市| 廊坊市| 本溪市| 元朗区| 子洲县| 内黄县| 四平市| 格尔木市| 陵川县| 亚东县| 苏尼特左旗| 射洪县| 页游| 富平县| 牙克石市| 肥西县| 高唐县| 上蔡县| 全州县| 湾仔区| 同仁县| 灵川县| 峡江县| 丰宁| 古浪县| 缙云县| 彭山县| 阿坝县| 紫云| 湖北省| 宁明县| 筠连县| 宁陵县| 张家口市| 宁强县| 汶上县| 吴江市| 蓝田县| 滦平县| 龙海市| 高雄县| 永和县| 荆门市| 丽江市| 手机| 龙里县| 澜沧| 内黄县| 武义县| 敖汉旗| 神池县| 雅江县| 章丘市| 合江县| 涟水县| 策勒县| 灵宝市| 三门县| 德令哈市| 呼和浩特市| 蒲江县| 彝良县| 治多县| 高雄市| 民丰县| 岑巩县| 龙山县| 武夷山市| 陇南市| 都昌县| 阿图什市| 邯郸市| 横峰县| 宜章县| 达孜县| 健康| 石阡县| 娄底市| 田林县| 平远县| 南丹县| 阿城市| 朝阳市| 紫阳县| 定陶县| 鹿泉市| 册亨县| 通辽市| 巨野县| 怀集县| 内丘县| 邳州市| 冷水江市| 聊城市| 江陵县| 高淳县| 巴彦淖尔市| 鄱阳县| 阜南县| 运城市| 东安县| 怀来县| 廉江市| 张北县| 罗田县| 黄浦区| 高唐县| 吉水县| 许昌市| 湖口县| 湖口县| 郑州市| 于都县| 新乐市| 民勤县| 乳山市| 梨树县| 清河县| 宁陕县| 邓州市| 泽州县| 泰兴市| 邻水| 安福县| 德州市| 永新县| 神木县| 南木林县| 永安市| 开鲁县| 西安市| 德安县| 交口县| 荔浦县| 忻州市| 光山县| 舟曲县| 封丘县| 贞丰县| 衡水市| 浦东新区| 隆林| 吉首市| 济宁市| 闽侯县| 榆社县| 宁南县| 射阳县| 兴义市| 太和县| 泸定县| 常熟市| 石渠县| 兰坪| 游戏| 五峰| 荔浦县| 济南市| 沅陵县| 芒康县| 遵义县| 陆良县| 民县| 雷波县| 金坛市| 维西| 栾川县| 奇台县| 湘潭市| 北京市| 和龙市| 中牟县| 海阳市| 东阳市| 日照市| 安福县| 大丰市| 广宗县| 金沙县| 鹤壁市| 鞍山市| 白河县| 鄢陵县| 天镇县| 叙永县| 平遥县| 苍梧县| 洛南县| 五原县| 望江县| 伊川县| 丹江口市| 桂东县| 庄浪县| 西畴县| 蓬溪县| 东平县| 吉林市| 富顺县| 即墨市| 中西区| 定州市| 祁东县| 高碑店市| 尤溪县| 花垣县| 聂拉木县| 佛冈县| 武鸣县| 马尔康县| 台江县| 乌鲁木齐县| 海宁市| 札达县| 遂昌县| 通渭县| 莒南县| 绥中县| 瑞金市| 临高县| 荃湾区| 赤城县| 濮阳县| 麻栗坡县| 宣恩县| 垫江县| 陆河县| 雷波县| 沙雅县| 堆龙德庆县| 隆德县| 巫山县| 玉屏| 尚志市| 军事| 玛曲县| 中牟县| 穆棱市| 太康县| 承德县| 临城县| 探索| 娄底市| 垦利县| 高清| 湖口县| 都安| 灵川县| 嘉定区| 和政县| 抚顺县| 南江县| 长子县| 连江县| 合阳县| 富平县| 宁强县| 万宁市| 卢氏县| 徐闻县| 远安县| 安龙县| 长寿区| 新丰县| 定州市| 湖北省| 隆林| 山阴县| 太康县| 安龙县| 海淀区| 东光县| 大名县| 稷山县| 额尔古纳市| 洪江市| 万载县| 长汀县| 乳山市| 乐安县| 永吉县| 双柏县| 双鸭山市| 广灵县| 廉江市| 昌江| 西贡区| 瑞金市| 武鸣县| 石棉县| 册亨县| 米泉市| 武威市| 沐川县| 茂名市| 紫金县| 中牟县| 新巴尔虎左旗| 承德县| 井研县| 万全县| 岳阳市| 肃宁县| 沈丘县| 白银市| 神池县| 五寨县| 武强县| 军事| 康定县| 德阳市| 荣成市| 丰镇市| 涿鹿县| 会同县| 锡林浩特市| 万荣县| 南汇区| 旺苍县| 杂多县| 赤峰市| 松原市| 汽车| 油尖旺区| 洮南市| 镇平县| 南丹县| 定南县| 锡林浩特市| 赤峰市| 泾阳县| 信宜市| 舞阳县| 军事| 和顺县| 桐梓县| 大埔区| 金门县| 南川市| 汉中市| 越西县| 白玉县| 楚雄市| 西昌市| 南充市| 三台县| 邵阳县| 九江市| 清原| 上栗县| 哈密市| 宝兴县| 太湖县| 南宁市| 河曲县| 沐川县| 白水县| 肥乡县| 大城县| 塔河县| 富平县| 景洪市| 三明市| 铜陵市| 木兰县| 镇巴县| 永登县| 孝感市| 枝江市| 道真| 元江| 宁河县| 四子王旗| 中江县| 巩留县| 大港区| 郸城县| 樟树市| 吉首市| 永定县| 尖扎县| 沁阳市| 霸州市| 简阳市| 佛冈县| 湘潭市| 新绛县| 淮安市| 资中县| 新疆| 宜宾县| 祁连县| 彩票| 顺平县| 运城市| 尖扎县| 西畴县| 文昌市| 上栗县| 奈曼旗| 镇康县| 克什克腾旗| 宜兰县| 芜湖县| 江安县| 西宁市| 沧州市| 莲花县| 广汉市| 霍林郭勒市| 桃源县| 宁陵县| 漳州市| 长丰县| 土默特左旗| 冷水江市| 梧州市| 宜丰县| 东丰县| 会理县| 樟树市| 杂多县| 金坛市| 建始县| 丰原市| 宿松县| 汉寿县| 澎湖县| 乌鲁木齐县| 日照市| 息烽县| 团风县| 新乡县| 永春县| SHOW| 宁陕县| 麻江县| 朝阳市| 荣昌县| 左贡县| 阜阳市| 米林县| 普陀区| 上杭县| 崇明县| 浦城县| 滨海县| 阿巴嘎旗| 凤山市| 八宿县| 清水县| 平武县| 安庆市| 嵩明县| 和平区| 乡城县| 林口县| 星座| 微山县| 桂平市| 阿拉善左旗| 广水市| 广元市| 扶风县| 喀什市| 博罗县| 崇阳县| 辉县市| 许昌县| 连江县| 华宁县| 竹山县| 文水县| 东方市| 通河县| 镇巴县| 莱阳市| 始兴县| 札达县| 托克逊县| 奈曼旗| 乐清市| 乌兰察布市| 南丰县| 繁昌县| 额尔古纳市| 乳源| 施秉县| 武川县| 桐梓县| 丹阳市| 贵阳市| 锡林浩特市| 毕节市| 鲜城| 微博| 博乐市| 米泉市| 阿鲁科尔沁旗| 南城县| 阳朔县| 屏东县| 灵武市| http://www.ulprww.fit http://bm1961loadz.fit http://wap.ocnjmw.fit http://www.petuqx.fit http://www.encjwc.fit http://m.wqsorn.fit http://m.jldlre.fit http://wap.yxkhqt.fit http://www.bm1961xarketz.fit http://wap.ktzgef.fit http://rgdqjl.fit http://www.pfyicj.fit http://ptwspy.fit http://www.uuriav.fit http://trkund.fit http://wap.utgepl.fit http://haoenq.fit http://wap.nnttnp.fit