zoukankan      html  css  js  c++  java
  • 使用gitlab, jenkins搭建CI(持续集成)系统(3) -- 根据不同触发条件执行不同的构建任务

    前面在jenkins中安装的gitlab hook支持不同的参数,具体可以参考gitlab hook文档https://github.com/jenkinsci/gitlab-hook-plugin#parameterized-projects。其中BRANCH表示触发构建的分支名,我们可以在构建脚本中使用这个参数,进行不同的构建。要使用这个参数,需要在jenkins中进行配置

    接下来就是要编写配置脚本了

    找到”构建“, 点击“增加构建步骤", 选择“Execute shell", 然后在里面写构建脚本

    #应用名称

    export appname="example-springbootmvc"

    #master - dev环境构建配置,

    #登录到服务器时使用的用户名

    export master_user="root"

    #应用部署的目录  构建完成后会/apps下(需要预先创建好这个目录)会有example-springbootmvc目录,这个就是你的应用部署的位置。
    export master_appsdir="/apps"

    #服务器去的IP地址列表 格式 ip1,ip2,ip3 ip地址直接用","分割

    export master_iplist="192.168.1.41"

    #一下分别是 test-test环境构建, release-prepublish环境和publish-realpublish环境环境的构建,每一项参数的的含义和master一样。

    export appname="example-springbootmvc"

    export master_user="root"
    export master_appsdir="/apps"
    export master_iplist="192.168.1.41"

    export test_user="root"
    export test_appsdir="/apps"
    export test_iplist="192.168.1.42"

    export release_user="root"
    export release_appsdir="/apps"
    export release_iplist="192.168.1.43,192.168.1.44"

    /root/jenkins/scripts/distanddeploy.sh

    #执行构建和部署脚本,这个脚本将使用以上配置的环境变量, 

    #distanddeploy.sh和它调用的一系列脚本代码可以在这里下载https://github.com/brandonlyg/ci-scripts,

    #把这些脚本方192.168.1.36的/root/jenkins/scripts中。
    /root/jenkins/scripts/distanddeploy.sh

    下面以master-dev配置为例解释一下,配置导致脚本的行为

    当把修改master分支代码,push到gitlab上之后,将会触发master构建。脚本将会执行一下步骤的动作:

    1. 将master分支pull到本地。

    2. 使用gradle build命令构建应用

    3. example-springbootmvc下创建dist目录,在这个目录下创建分发包。

    4. 将用multiconfig/master中的配置文件覆盖分发包中config目录下的配置文件

    5. 将分发包打包成zip

    6. 将zip包传到192.168.1.41, 并部署在/apps下

    7. 调用example-springbootmvc/bin/start.sh 启动服务。

    test和master分支的构建部署过程是一样的。

    和master,test相比,release构建部署过程有两点不同:

    1. 触发方式不同,需要在Build with Parameters中触发

     

    2. 代码处理方式不同,脚本会自动将test分支的代码合并到release上再构建release分支

    验证方法:

    dev环境

    http://192.168.1.41:9300/rest/get

    test环境

    http://192.168.1.42:9301/rest/get

    prepublish环境

    http://192.168.1.43:9302/rest/get

    返回类似于

    {"retCode":0,"errMsg":null,"data":{"userId":"11111","timeStamp":1521293702385,"info":"this is 9 env:prepublish"}}
  • 相关阅读:
    如何手动编译运行带包 java 程序
    java计算时间差 Java问题通用解决代码
    Java除法结果带小数、进一法的实现 Java问题通用解决代码
    java中按字节获得字符串长度的两种方法 Java问题通用解决代码
    java精确除法计算,四舍五入 Java问题通用解决代码
    java 根据生日计算年龄 Java问题通用解决代码
    java统计中英文字数 Java问题通用解决代码
    java 实现新浪微博内容计数器 Java问题通用解决代码
    java代理ip有效检测
    java 实现统计某段文字在内容中出现的次数
  • 原文地址:https://www.cnblogs.com/brandonli/p/8395116.html
Copyright © 2011-2022 走看看