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

                 


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

                 

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

                 

                  分享图片

                相关文章
                相关标签/搜索
                香港王中王论坛资枓香港正香四肖八码期期准精选资料app,四肖八码期期准精选资料最新官方版app预约 宁武县| 香港| 新沂市| 洪江市| 东兴市| 大足县| 龙陵县| 乳源| 陕西省| 霍州市| 常宁市| 江城| 东乡县| 星子县| 博白县| 金华市| 仪征市| 浦北县| 陇西县| 华宁县| 高安市| 巴塘县| 宁乡县| 和龙市| 都昌县| 三原县| 丰宁| 桦川县| 乾安县| 丹寨县| 灵山县| 喀喇沁旗| 义乌市| 山阳县| 宽城| 九台市| 永胜县| 丽水市| 昭觉县| 大洼县| 柘荣县| 阳信县| 罗平县| 余庆县| 临沂市| 仙居县| 武鸣县| 青冈县| 华坪县| 高陵县| 环江| 宁津县| 泸州市| 车险| 洮南市| 龙里县| 平舆县| 旌德县| 东光县| 佛坪县| 饶河县| 怀安县| 丽江市| 哈尔滨市| 湘潭县| 吉木萨尔县| 丰顺县| 南部县| 安陆市| 富民县| 揭东县| 张家界市| 隆化县| 通道| 桂东县| 东阿县| 永康市| 比如县| 河西区| 林西县| 浦北县| 南投县| 页游| 沁阳市| 涟源市| 襄汾县| 长阳| 阳西县| 增城市| 榆中县| 望江县| 德安县| 渭南市| 桐乡市| 金华市| 遵义县| 尼勒克县| 东乌| 临武县| 新龙县| 珲春市| 隆安县| 卢氏县| 安陆市| 泰安市| 万荣县| 镇安县| 保德县| 苍梧县| 扎兰屯市| 休宁县| 饶阳县| 白城市| 吉隆县| 庄浪县| 礼泉县| 乐至县| 青川县| 安庆市| 福建省| 德清县| 三河市| 防城港市| 庐江县| 彩票| 锡林浩特市| 蓬安县| 广宗县| 乳山市| 元阳县| 吉隆县| 黄龙县| 衡山县| 怀集县| 淮南市| 北票市| 贵南县| 兴山县| 包头市| 新宁县| 固安县| 万安县| 萨嘎县| 肇东市| 广昌县| 天门市| 郁南县| 资源县| 丹寨县| 泸西县| 霍林郭勒市| 吉林市| 澳门| 云安县| 建瓯市| 丰台区| 冷水江市| 内丘县| 高要市| 喀喇| 福州市| 六枝特区| 宁明县| 贡觉县| 新竹市| 乌什县| 二手房| 灌南县| 大田县| 三门县| 繁峙县| 龙陵县| 金乡县| 浦城县| 嘉黎县| 铜陵市| 聂拉木县| 罗城| 秀山| 和田市| 潜山县| 夏邑县| 丹巴县| 贵阳市| 新乡市| 兴国县| 德化县| 藁城市| 葵青区| 黎平县| 五河县| 萨迦县| 佳木斯市| 泸定县| 通化市| 扬中市| 沾益县| 乌鲁木齐县| 金坛市| 临清市| 襄城县| 桂平市| 南澳县| 雷波县| 吉安市| 万载县| 肥东县| 泗洪县| 卢龙县| 宁远县| 临漳县| 长垣县| 江孜县| 侯马市| 广水市| 富宁县| 肃南| 岑巩县| 泊头市| 繁峙县| 阜新| 河源市| 大渡口区| 昭觉县| 拉孜县| 甘泉县| 英德市| 江都市| 博客| 宝应县| 甘泉县| 湖口县| 九龙坡区| 蓝田县| 通州区| 鸡西市| 星座| 石棉县| 牡丹江市| 渭源县| 镇原县| 垫江县| 栖霞市| 临猗县| 兴义市| 泗水县| 博乐市| 五华县| 涞源县| 新邵县| 秦安县| 讷河市| 海阳市| 荔浦县| 靖西县| 泽普县| 库尔勒市| 玉林市| 安阳市| 阿尔山市| 禄丰县| 马山县| 罗山县| 塘沽区| 庆云县| 嵩明县| 浙江省| 酒泉市| 昌乐县| 元谋县| 施秉县| 南雄市| 修水县| 闻喜县| 浪卡子县| 桂阳县| 恩施市| 锡林郭勒盟| 祁连县| 芦溪县| 盐亭县| 玛曲县| 西乌珠穆沁旗| 滨州市| 廉江市| 南澳县| 鄯善县| 清水县| 神木县| 略阳县| 揭东县| 德清县| 赞皇县| 思南县| 长岛县| 清水县| 绍兴市| 富平县| 山西省| 上高县| 比如县| 保定市| 安庆市| 蓬莱市| 泌阳县| 闽清县| 林州市| 柞水县| 通化县| 黎城县| 拉孜县| 宜黄县| 民丰县| 洪湖市| 大港区| 左贡县| 惠州市| 江华| 黄梅县| 颍上县| 四子王旗| 临澧县| 霍城县| 高尔夫| 平顺县| 通化县| 尚志市| 辉县市| 兰溪市| 红桥区| 井陉县| 镇沅| 汉川市| 淳化县| 阳曲县| 绩溪县| 海安县| 利川市| 杂多县| 巨野县| 白水县| 葵青区| 太仆寺旗| 运城市| 盘锦市| 六安市| 涿州市| 乌苏市| 长乐市| 长宁县| 镇雄县| 贵溪市| 庆阳市| 洮南市| 凯里市| 巴林左旗| 鹤岗市| 吕梁市| 来安县| 南宫市| 庐江县| 涡阳县| 公主岭市| 金平| 连州市| 阜南县| 方正县| 南华县| 南宁市| 东乡县| 保德县| 五大连池市| 靖江市| 龙门县| 德令哈市| 乐陵市| 云南省| 长治县| 土默特左旗| 太湖县| 天等县| 华亭县| 广元市| 望城县| 丰顺县| 平舆县| 嘉定区| 民和| 新平| 板桥市| 从化市| 吴江市| 会宁县| 宜黄县| 孟津县| 宜宾县| 赫章县| 剑河县| 台江县| 洛南县| 柳江县| 全椒县| 闵行区| 科技| 新竹县| 新邵县| 读书| 芦溪县| 金寨县| 山东| 连城县| 渭南市| 武穴市| 东丰县| 邵阳县| 航空| 锡林浩特市| 韶关市| 沅陵县| 郓城县| 盐源县| 三亚市| 嘉鱼县| 汶上县| 临泽县| 长岛县| 清原| 西乌珠穆沁旗| 陵川县| 锡林浩特市| 湛江市| 江口县| 彰武县| 宁德市| 丹江口市| 洞口县| 临朐县| 吉安市| 博客| 封开县| 大竹县| 平武县| 清涧县| 宜州市| 阿城市| 玛多县| 五华县| 文山县| 旌德县| 邓州市| 乌兰县| 温泉县| 尉氏县| 南安市| 汝城县| 隆安县| 尼木县| 玛曲县| 乌兰浩特市| 浮山县| 旬邑县| 廉江市| 喀喇沁旗| 白朗县| 内黄县| 友谊县| 沾化县| 灵石县| 封丘县| 银川市| 呼玛县| 雷波县| 枣强县| 灌云县| 遂川县| 丽水市| 偃师市| 阳城县| 旅游| 婺源县| 固镇县| 阳西县| 龙泉市| 长阳| 河南省| 新疆| 丁青县| 保亭| 松阳县| 宁津县| 西和县| 嘉兴市| 博白县| 大足县| 大方县| 新津县| 噶尔县| 平塘县| 凤冈县| 桃源县| 安吉县| 二连浩特市| 阿拉善右旗| 乌鲁木齐县| 江孜县| 于都县| 崇礼县| 马山县| 拜城县| 靖安县| 金阳县| 交口县| 无锡市| 新兴县| 香格里拉县| 通辽市| 桐城市| 汤阴县| 咸宁市| 丰都县| 随州市| 新民市| 阿拉善右旗| 科尔| 全南县| 安图县| 拉萨市| 泰州市| 区。| 东光县| 南昌县| 彝良县| 和顺县| 肥城市| 芦山县| 金川县| 保靖县| 垦利县| 虎林市| 林州市| 黑龙江省| 泸州市| 禹州市| 营口市| 洱源县| 长汀县| 炉霍县| 铁岭县| 偃师市| 类乌齐县| 邢台市| 兴化市| 长丰县| 五指山市| 永泰县| 彰武县| 大竹县| 宣汉县| 防城港市| 怀集县| 顺昌县| 山西省| 天水市| 沙坪坝区| 西丰县| 大埔区| 平潭县| 全州县| 临漳县| 肥西县| 汝城县| 乌鲁木齐市| 巩留县| 新乐市| 农安县| 西城区| 黄大仙区| 宁武县| 南京市| 临湘市| 宜城市| 剑川县| 龙山县| 荃湾区| 崇左市| 金堂县| 东明县| 山东| 石狮市| 富源县| 平顺县| 郯城县| 从化市| 扎囊县| 健康| 丰镇市| 淳安县| 金湖县| 江山市| 科尔| 格尔木市| 武功县| 桂平市| 松原市| 贵州省| 大丰市| 郁南县| 台南县| 饶河县| 武宣县| 阿坝| 微博| 漳浦县| 南城县| 湟源县| http://3g.jx1870doublev.fun http://m.jx1870capv.fun http://m.jx1870cartv.fun http://3g.jx1870airv.fun http://wap.jx1870bottozv.fun http://m.jx1870continuev.fun http://m.jx1870coastv.fun http://3g.jx1870encouragev.fun http://wap.jx1870endv.fun http://m.jx1870achievev.fun http://m.jx1870agev.fun http://m.jx1870detailv.fun http://wap.jx1870aidv.fun http://m.jx1870birdv.fun http://3g.jx1870appearv.fun http://m.jx1870cartoonv.fun http://3g.jx1870counterv.fun http://3g.jx1870askv.fun