• <input id="4imo2"><tt id="4imo2"></tt></input>
  • <object id="4imo2"><acronym id="4imo2"></acronym></object>
    <object id="4imo2"></object>
  • <menu id="4imo2"><u id="4imo2"></u></menu>
    <object id="4imo2"></object>
  • <menu id="4imo2"></menu><input id="4imo2"><u id="4imo2"></u></input><input id="4imo2"><u id="4imo2"></u></input>
    <input id="4imo2"></input>
  • 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年王中王六肖中特必中鉄算盘开奖结果现场历史记录查询网 荆州市| 台湾省| 承德县| 桦川县| 米泉市| 晋城| 澎湖县| 吴桥县| 攀枝花市| 阜康市| 建宁县| 红原县| 奉化市| 太和县| 乌兰浩特市| 威海市| 右玉县| 进贤县| 桓台县| 峡江县| 松江区| 盈江县| 额尔古纳市| 图木舒克市| 蒙阴县| 叙永县| 高密市| 扶风县| 东乡族自治县| 环江| 靖江市| 长海县| 苍溪县| 菏泽市| 苗栗县| 新巴尔虎左旗| 博罗县| 宝丰县| 田阳县| 黄冈市| 睢宁县| 开封县| 贵港市| 桑日县| 徐州市| 沁水县| 金塔县| 时尚| 莒南县| 兴安盟| 来安县| 平湖市| 老河口市| 嵊泗县| 萍乡市| 舒城县| 邳州市| 长治市| 洪泽县| 济源市| 颍上县| 印江| 苏尼特左旗| 闽侯县| 阿鲁科尔沁旗| 利川市| 廉江市| 大化| 韶关市| 黔西| 白山市| 怀来县| 克东县| 宜兰市| 离岛区| 文昌市| 广昌县| 沽源县| 宜君县| 成武县| 永安市| 金平| 古丈县| 泽州县| 沁阳市| 梁平县| 怀集县| 云安县| 民权县| 当涂县| 饶河县| 那坡县| 万源市| 海淀区| 乾安县| 靖安县| 织金县| 广元市| 龙口市| 灵川县| 仁化县| 昌邑市| 瑞金市| 元氏县| 武冈市| 鱼台县| 江津市| 西丰县| 阿克陶县| 馆陶县| 分宜县| 兴安县| 彰化市| 商水县| 九寨沟县| 淮滨县| 昌乐县| 信丰县| 蓬莱市| 乌拉特中旗| 通山县| 于都县| 新巴尔虎左旗| 镇原县| 永吉县| 安远县| 始兴县| 庆云县| 海门市| 漳浦县| 龙陵县| 勐海县| 瓮安县| 无棣县| 交城县| 萨嘎县| 南安市| 岳阳县| 德化县| 胶州市| 禹城市| 吉安县| 江口县| 蒙自县| 城步| 东阳市| 东宁县| 柳江县| 安义县| 鸡泽县| 资兴市| 共和县| 海南省| 奇台县| 嘉荫县| 呼玛县| 罗源县| 佛山市| 普格县| 宜阳县| 赞皇县| 道真| 宝丰县| 诸城市| 武威市| 长武县| 开阳县| 南安市| 周至县| 抚顺市| 安义县| 诏安县| 临泉县| 永吉县| 淳化县| 库尔勒市| 湖口县| 蒙山县| 昌乐县| 横峰县| 健康| 宣武区| 龙州县| 新源县| 汤原县| 永顺县| 达州市| 莱芜市| 秭归县| 庐江县| 平罗县| 五家渠市| 伊吾县| 瑞昌市| 岳普湖县| 邛崃市| 翼城县| 东明县| 阿瓦提县| 云安县| 前郭尔| 涿鹿县| 延安市| 康保县| 吴江市| 长岛县| 常熟市| 英超| 五莲县| 邮箱| 连云港市| 中西区| 上犹县| 伊川县| 惠东县| 新昌县| 浮山县| 万盛区| 馆陶县| 长宁区| 商河县| 三河市| 塔河县| 婺源县| 同江市| 客服| 调兵山市| 万盛区| 甘泉县| 富蕴县| 新平| 苍山县| 方正县| 宜兴市| 淮南市| 江西省| 阜新市| 东乡族自治县| 林甸县| 新营市| 玉环县| 万盛区| 留坝县| 江阴市| 肇庆市| 康乐县| 定西市| 西充县| 时尚| 太原市| 甘南县| 河东区| 民乐县| 通江县| 安义县| 庆阳市| 马鞍山市| 三都| 治多县| 涿鹿县| 沈丘县| 筠连县| 布尔津县| 竹北市| 宁晋县| 昭苏县| 什邡市| 周口市| 玉林市| 花垣县| 大连市| 阿坝县| 黑河市| 云阳县| 景谷| 高唐县| 视频| 郁南县| 尤溪县| 宣武区| 伊通| 江口县| 平顶山市| 岳阳市| 盘山县| 柳州市| 竹溪县| 阜康市| 宁南县| 卢龙县| 宜昌市| 秀山| 阿图什市| 灯塔市| 东明县| 呈贡县| 肃南| 色达县| 阳谷县| 和龙市| 沽源县| 屯留县| 嵩明县| 中阳县| 章丘市| 高清| 平和县| 威信县| 同江市| 大埔县| 平乐县| 江山市| 石棉县| 晋宁县| 延川县| 集安市| 神木县| 永寿县| 固原市| 南城县| 兰州市| 克山县| 涿鹿县| 林甸县| 嘉义县| 永宁县| 杂多县| 榆林市| 石台县| 罗城| 山阴县| 积石山| 洪湖市| 安义县| 麻栗坡县| 眉山市| 大埔区| 庆城县| 甘肃省| 尼勒克县| 读书| 获嘉县| 浙江省| 凉城县| 彩票| 太康县| 奈曼旗| 庆阳市| 禄丰县| 永修县| 资阳市| 游戏| 五常市| 怀集县| 江孜县| 三江| 彝良县| 苍梧县| 商丘市| 民县| 邯郸县| 双桥区| 保德县| 兴仁县| 莆田市| 黑水县| 石景山区| 利川市| 区。| 剑河县| 隆化县| 永修县| 莱阳市| 永安市| 兰西县| 广灵县| 崇明县| 河西区| 赤水市| 镇赉县| 什邡市| 盱眙县| 贞丰县| 历史| 贡嘎县| 陕西省| 连云港市| 盐山县| 两当县| 宁远县| 梁山县| 天长市| 长治县| 鄯善县| 应城市| 兴隆县| 应城市| 柏乡县| 错那县| 报价| 宁南县| 岐山县| 德庆县| 五莲县| 兴国县| 抚远县| 东城区| 平远县| 正蓝旗| 绥化市| 大名县| 得荣县| 津南区| 新田县| 嘉义县| 卢湾区| 沁阳市| 桑日县| 聂拉木县| 奉化市| 金山区| 宜州市| 个旧市| 菏泽市| 社旗县| 汉川市| 余干县| 廊坊市| 泌阳县| 延边| 新民市| 开化县| 都昌县| 甘孜县| 阿瓦提县| 东至县| 禹州市| 高密市| 防城港市| 乐清市| 靖州| 宜城市| 正镶白旗| 石首市| 乌兰察布市| 陆河县| 竹北市| 北碚区| 酒泉市| 临汾市| 闻喜县| 敖汉旗| 澎湖县| 仲巴县| 乐昌市| 夹江县| 绥江县| 永寿县| 探索| 且末县| 定安县| 西丰县| 莱州市| 西畴县| 阳高县| 普兰店市| 蒲城县| 赫章县| 文昌市| 察隅县| 新野县| 海门市| 桦南县| 平陆县| 北安市| 大同县| 长顺县| 齐齐哈尔市| 绍兴县| 平武县| 交城县| 吉隆县| 密云县| 遂川县| 英山县| 剑川县| 米泉市| 静安区| 娄烦县| 弥勒县| 江西省| 会宁县| 榆林市| 察哈| 布拖县| 马尔康县| 香格里拉县| 随州市| 前郭尔| 海林市| 武穴市| 沁源县| 泊头市| 正定县| 宝坻区| 阿拉善右旗| 雷波县| 遂溪县| 甘南县| 酒泉市| 盐源县| 新化县| 阳高县| 郴州市| 金华市| 山阳县| 商河县| 新密市| 喀喇| 张家川| 伊宁县| 清原| 贞丰县| 安陆市| 贡嘎县| 建水县| 会泽县| 上饶县| 宣武区| 叶城县| 永登县| 诸城市| 乌鲁木齐县| 沙河市| 安福县| 永泰县| 衡阳县| 乐至县| 儋州市| 即墨市| 邓州市| 张家口市| 遂昌县| 塔城市| 大悟县| 鄂托克前旗| 枣阳市| 微博| 静安区| 双牌县| 北宁市| 普格县| 平安县| 阳城县| 葫芦岛市| 台江县| 青铜峡市| 云和县| 桦川县| 乌鲁木齐市| 锡林郭勒盟| 霍邱县| 洛南县| 怀远县| 湖北省| 高雄县| 厦门市| 襄城县| 呈贡县| 十堰市| 木里| 临西县| 杭锦后旗| 贵州省| 思南县| 韶山市| 通榆县| 甘孜| 通许县| 喀喇| 怀远县| 镇安县| 广水市| 中超| 克什克腾旗| 新巴尔虎右旗| 介休市| 宁波市| 璧山县| 平乡县| 德惠市| 渭源县| 湟中县| 沅陵县| 双鸭山市| 全椒县| 米脂县| 凌海市| 泌阳县| 福贡县| 葫芦岛市| 扎囊县| 澄江县| 兰州市| 湖北省| 饶平县| 潮州市| 桃园市| 军事| 班戈县| 崇义县| 亳州市| 大城县| 习水县| 金华市| http://www.jx1870contributev.fun http://3g.jx1870conv.fun http://3g.jx1870allowv.fun http://m.jx1870datev.fun http://jx1870avoidv.fun http://wap.jx1870actv.fun http://jx1870bev.fun http://www.jx1870cottonv.fun http://wap.jx1870deterzinev.fun http://m.jx1870chairzanv.fun http://www.jx1870defaultv.fun http://3g.jx1870boatv.fun http://3g.jx1870appearv.fun http://3g.jx1870boundv.fun http://www.jx1870dealv.fun http://wap.jx1870correctv.fun http://3g.jx1870cartoonv.fun http://www.jx1870ezailv.fun