美文网首页
基于TeamCity的自动化部署并自动发邮件或微信

基于TeamCity的自动化部署并自动发邮件或微信

作者: 飘渺55 | 来源:发表于2019-06-21 16:48 被阅读0次

    原因: 项目开发时 前端提交页面后 当测试人员需要测试最新的功能时 就需要我执行一下 自动部署命令
    虽然已经把自动部署的功能集成到了一个命令中 但是每一次需要点一下按钮 我还是觉得很麻烦,那么就需要当开发人员提交代码到svn上时 能自动打包 自动部署 而且如果打包失败可以发邮件通知刚提交代码的开发人员检查代码.

    我们项目的架构是 idea + gradle + kotlin + spring boot + mybatis + angular+(自动化代码生成工具) 前后端分离
    也就是说我们项目 要部署的话有以下的步骤
    1svn 更新代码
    2前端打包 生成html和js
    3后端打包 生成war包
    4上传至测试服务器
    5执行deploy.sh
    这个脚本有两个 一个是部署tomcat(springboot内置) 另一个是weblogic部署的
    如果是tomcat的 作用是 1 停止旧的war包 2 启动新的war包
    如果是weblogic 使用weblogic.Deployer部署命令 1关闭该项目 2 卸载该项目 3上传新的war包 4 启动新的war包

    4和5的执行可以利用gradle ssh插件hidetake 然后写一个task
    task upload(dependsOn: war) doLast {
    ssh.run {
    session(remotes.smsserver_1) {
    put from: 'build/libs/autotest.war', into: '/deploy/war'
    execute 'sh /deploy/war/deploy.sh autotest'
    }
    }
    }
    当执行gradle upload 那么就会先打war包 再把war 文件复制到远程服务器 在执行部署脚本
    这些命令都可以集成npm中


    image.png

    也就是说 直接执行 npm run deploy 就可以直接执行上面5个步骤

    TeamCity 集成
    一 svn提交后自动执行 npm run deploy
    teamcity上创建项目后 配置 Build Step teamcity的流程大概是隔一分钟监测svn是否有提交 有提交就
    执行配置的Build Step


    image.png

    二 部署失败发送邮件
    先根据svn的用户 在teamcity创建相同的用户并配置好他们的邮箱 然后配置Email Notifier
    teamcity默认规则 当部署失败会默认给用户发送邮件


    image.png

    三 部署失败自动发微信
    由于开发人员并不在意邮箱 导致即使发了邮件 也没人管失败的构建 于是就想 如果构建失败就给开发人员发微信
    1获取teamcity构建失败的信息 包括项目信息以及提交人的信息
    teamcity-rest-client 可以获取失败的构建
    https://github.com/JetBrains/teamcity-rest-client
    2 server酱 可以发微信 http://sc.ftqq.com/3.version
    那么思路就很简单了 写一个java项目 跑在服务器上 每隔10分钟 通过teamcity-rest-client获取最新失败的构建
    找到提交的用户信息 然后通过server酱 发送微信提醒

    相关文章

      网友评论

          本文标题:基于TeamCity的自动化部署并自动发邮件或微信

          本文链接:https://www.haomeiwen.com/subject/hfbyqctx.html