Jenkins持续集成——参数化构建

一、String Parameter

由于每次构建的时候指定的SVN路径都不同,如果不使用参数化构建则每次都需要修改配置中的SVN路径,不但不安全也容易出现错误。

将SVN地址设置为字符串参数(string parameter),当开始构建的时候将会提示用户输入参数值(即:SVN地址)

在SVN中引用参数

另外,如果需要自动拉取SVN的tag或git的branch可以使用"List Subversion tags(and more)"和"Git Parameter Plug-In"这两个插件,将会自动在所填的SVN/git地址下列出子目录,有兴趣的朋友可以自己研究一下。

当执行构建时,将会弹出页面等待用户输入参数值完成构建

二、Choice

由于之前未对tomcat的状态检测做参数化构建,故每个模块都需要一个对应的job用于检测,最终将会导致所创建的job数量太大,不但增加了工作量,而且也容易出错。

以下将通过参数化构建将其合并为一个Tomcat_check的job。

合并前:

合并后:

勾选配置参数化构建过程(选择"Chice"并定义参数名为Module,Choices的值根据自己的情况填写需要的选项)

构建过程(执行check.sh脚本并引用参数Module

触发邮件步骤略(将会在邮件插件中详细介绍)



以下附上检测tomcat的脚本(仅供参考)

Tomcat_check检测脚本

  • 定义check函数用于检测tomcat是否启动正常functions
#定义失败后重试次数
ATTEMPTS=12
FAILED=0
#定义将会输出版本号的日志(可用于发送邮件)
file=$JENKINS_HOME/jobs/$JOB_NAME/builds/$BUILD_NUMBER/check
#jenkins构建时生成的日志,用于追加日志输出到jenkins控制台
log=$JENKINS_HOME/jobs/$JOB_NAME/builds/$BUILD_NUMBER/log
check(){
    echo \<h3\> `date` >> $file
    #当调用check函数带参数时才执行
    while [ $# != 0 ]
    do
        IP=`echo $1 | awk -F "/" ‘{print $3}‘ |awk -F ‘:‘ ‘{print $1}‘`
        ver=`curl -skf -m 1 $1 |grep -i "v" |head -1|dos2unix`
        curl -skf -m 1 $1 > /dev/null
        #当curl检测URL返回正常时往$file记录IP和版本号并往jenkins控制台输出"$1 is OK"(shift用于向左移动一位参数)
        if [ $? -eq 0 ];then
            echo \<br\> \<a href=$1\>$IP\<\/a\> ++ $ver >> $file
            echo $1 is OK! >> $log
            FAILED=0
            shift
            continue
        else
            #当curl检测URL返回异常则等待10秒后重试
            FAILED=$(($FAILED + 1))
            TIMES=$(($ATTEMPTS - $FAILED + 1))
            echo "Waiting for check the web-$1, retrying in 10 seconds for $TIMES times..." >> $log
            sleep 10
            if [ $ATTEMPTS -gt $FAILED ];then
                continue
            else
                echo "Failed to check the web-$1" >> $log
            fi
            #若重试指定次数后仍然失败则将版本号记录为ERROR,且字体设为红色
            echo \<br\> \<a href=$1\>$IP\<\/a\> ++ \<font color=‘Red‘\>Error\<\/font\> >> $file
            FAILED=0
            shift
            continue
        fi
    done
}

  • 通过脚本调用上面定义的check函数check.sh
#引入参数用于指定需要检测的模块(即参数化构建中的Module)
Module=$1
#引用functions中的check函数
. /data/ztjy/functions
args=`cat /data/ztjy/$Module/url`
check $args
#提取新版本号(相对其他版本而已)
Maxver=`awk -F "+" ‘{print $3}‘ $file | grep -i v | sort |tail -1`
#提取旧版本号
Minver=`awk -F "+" ‘{print $3}‘ $file | grep -i v | sort |head -1`
#如果是新版本号则改版本号字体显示为橙色
sed -i "s/$Maxver/ <font color=‘Orange‘>$Maxver<\/font>/g" $file
#如果是旧版本号则改版本号字体显示为绿色
sed -i "s/$Minver/ <font color=‘SeaGreen‘>$Minver<\/font>/g" $file
  • 执行参数化构建

由上面可见检测后将自动触发邮件通知,邮件内容如下:

时间: 03-20

Jenkins持续集成——参数化构建的相关文章

Jenkins 持续集成平台构建之通过git提交代码

一.概述 上一篇文章介绍了Jenkins结合svn来构建jar包,本文介绍另一种代码提交的方式git,并结合maven来构建代码包. 实验环境: IP: 10.0.90.27 系统: Centos6.6 x86_64 软件包: Jenkins  2.9 Tomcat   8.0.36 JDK      8.92 maven    3.3.9 git 二.安装步骤 1.安装jdk #rpm -ivh jdk-8u92-linux-x64.rpm  Preparing...             

jenkins持续集成源码管理选项为None,构建失败找不到git.exe解决办法

我的jenkins版本为Jenkins ver. 2.19.1 1.源码管理选项只有None的解决办法: 在插件管理中心,搜索对应的源码管理插件这里以git为例,搜索git plugin点击右下角的安装方式(在线安装需要连接VPN你懂的),如下图 重启后即可看到git按钮: 2.jenkins持续集成时,点击构建失败无法找到git.exe解决办法如下图: 控制台输出提示构建失败git.exe rev-parse --is-inside-work-tree # timeout=10:原因是没有找到

3、Jenkins持续集成之持续集成

3.Jenkins持续集成之持续集成.md 配置ansible实现无密钥交互 安装阿里云YUM源码 [[email protected] ~]# cat <<EOF>>/etc/yum.repos.d/epel.repo [epel] name=epel for aliyun baseurl=https://mirrors.aliyun.com/epel/7/x86_64/ enabled=1 gpgcheck=0 [os] name=os for aliyun baseurl=h

Jenkins持续集成学习及企业级应用

文档声明 该文档主体为去年末自主学习时总结,旨在为我司提供一套企业级持续集成解决方案.这篇文章现在看上去很稚嫩,但是当时花费了许多心血.希望将当时的学习心得拿出来与大家交流.该文档主要说明了jenkins持续集成部署的相关步骤,并着重实现了权限分组,邮件配置,插件配置的jenkins实现过程.对出现的问题进行解决,是一套持续集成的解决方案. 持续集成Continuous integration 提出 针对复杂度高的项目提出“早集成,常集成,频繁集成”来帮助项目在早期发现项目风险和质量问题 作用

python_java_selenium_ jenkins持续集成Firfox_chrome浏览器不显示的解决方法?

python_java_selenium_ jenkins持续集成Firfox_chrome浏览器不显示的解决方法: 原因:因为jenkins是用windows installer 安装成 windows的服务了,那么jenkins是计算机服务理的一个后台服务,所以跑cases 的时候不显示浏览器 解决办法:1.我们需要关掉jenkins后台服务,让他从cmd(dos窗口)启动,类似于tomcat的手动启动下面的方法适合不用tomcat的同学(注意,用也可以配置好Tomcat放在webapp下启

构建Docker+Jenkins持续集成环境

docker和Jenkins不是什么新东西了,两者结合也不是什么稀奇的事情,也已经有很多Jenkins和docker相结合的文章,此文仅为自己的一点心得实践,如有不对的地方,欢迎大家纠正. 先贴上大致的流程图,逐步说明: 代码-Git: 并没有什么好说明的,就是简单的使用了Git作为版本控制工具而已,通用使用规范不在细说.此步的产出:Git分支特定版本号 Git-自动构建.自动构建-代码包: 做法也很通用了,将project的Git钩子同Jenkins结合,达到特定分支有push时机触发自动构建

Jenkins持续集成——安装配置

近期公司准备将原先使用的持续集成工具由Hudson替换成Jenkins,专门研究了一番,现在已有些许成果,准备作为一个专题记录下来. 由于公司已有Hudson,也可以正常用于构建发布,如果只是简单的复制过来就显得太没水平了.首先我在原先完成构建的基础上添加了一步发布完成后自动触发检测发布是否成功的简单验证并将检测结果通过邮件发送给执行构建的人员.当然作为运维能力有限,该验证只能检测tomcat是否启动正常,而业务层面是否正常需要测试人员进一步测试,不在我的研究范围. 最终实现效果如下: 一.三种

Jenkins持续集成案例之-自动化部署

Jenkins是一个开源软件项目,目的就是提供了一个开放的软件平台,让我们实现软件集成变成可能,我们经常听到企业中讲CI.CD两个名词,这些都可以跟jenkins联系在一起,实现持续集成,持续部署及持续交付: 在企业中,Jenkins一般都是批量部署多台web服务.或者应用程序.多个网站,今天带大家来学习一下Jenkins批量构建同一网站-多台服务器的操作案例: 一.Jenkins后台配置 1)点击工程名称-配置-构建后操作-设置Jenkins编译打包完后,war包存放的位置,如下图: 2)然后

jenkins持续集成环境搭建

持续集成的目的: 让我们每次更新了代码提交到 git 仓库后就自动运行构建新版本,自动部署 到测试环境,从而提高生产效率,告别重复的劳动 系统环境:CentOS6.5 .JDK SE 1.8.0_60 .Maven3.0.5.Jenkins2.4.1.Git(yum安装).Docker.docker-compose.gitlab maven.jdk.git.安装其他文章写过,再次略过. maven安装 jdk安装 git安装: yum -y install git gitlab安装: 1.如想使