需求

项目需要在jenkins自动发布中加入version.html来跟踪项目发布的版本信息,需要获取到jira中当前sprint的名字,和一个sprint中的发布次数(我这里用文件把次数存起来的傻方法来计数的)。

shell初学者脚本写的很烂,还望大神们指教。 - -!

方法

直接使用curl 向jira发送get请求,将返回的json通过jq过滤出来存入currentSprint.txt文件中。

curl -u JiraUserName:Password -X GET -H "Content-Type: application/json" \
'http://jira.jintelhealth.com/rest/greenhopper/1.0/sprintquery/13?includeFutureSprints=true&includeHistoricSprints=false' \
| /usr/bin/jq '.sprints[] | select(.name | contains("PD")) | select(.state == "ACTIVE") | .name'|sed 's/\"//g'> currentSprint.txt

注意:

这里在linux下需要安装 jq linux json格式化工具

添加epel源

wget http://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
rpm -ivh epel-release-latest-7.noarch.rpm
yum repolist
yum install jq

总结

读取文件 $(cat file.txt)

除去name中的双引号 name'|sed 's/"//g'

shell中数字求和 echo $(( 1 + 2 )) => 3

代码

############PD-2375#############################

cd $PWD

if [ ! -f "${PWD}/LastBuildSprint.txt" ];then
echo 0 > ${PWD}/LastBuildSprint.txt
fi curl -u JiraUserName:Password -X GET -H "Content-Type: application/json" \
'http://jira.jintelhealth.com/rest/greenhopper/1.0/sprintquery/13?includeFutureSprints=true&includeHistoricSprints=false' \
| /usr/bin/jq '.sprints[] | select(.name | contains("PD")) | select(.state == "ACTIVE") | .name'|sed 's/\"//g'> currentSprint.txt if [ "$(cat ./currentSprint.txt)" == "$(cat ./LastBuildSprint.txt)" ];
then
echo $(($(cat ./SprintBuildNumber.txt)+1)) > ./SprintBuildNumber.txt
else
echo 1 > ${PWD}/SprintBuildNumber.txt
fi cp -rf ${PWD}/currentSprint.txt ${PWD}/LastBuildSprint.txt ###########generate version.html#################
rm -f ${PWD}/version.html
echo "remove successfully!" {
echo "<html>"
echo "<head>"
echo "<title>Analytics: Version</title>"
echo "</head>"
echo "<body bgcolor="#ffffff">"
echo "<span id="analytics_version">Version: $(cat ./currentSprint.txt) B$(cat ./SprintBuildNumber.txt)</span>"
echo "<br /><br />"
echo "<span id="tag">BUILD INFO: Jenkins Build ${BUILD_NUMBER} `date`</span>"
echo "<br /><br />"
echo "<span id="commit">COMMIT SHA: ${GIT_COMMIT}</span>"
echo "<br /><br />"
echo "</body></html>"
}>> version.html ############PD-2375#############################

脚本参考自 http://kagarlickij.com/get-active-jira-sprint-name-cli/

jenkins里面使用shell 获取jira的sprint信息的更多相关文章

  1. Bash Shell 获取进程 PID

    转载地址:http://weyo.me/pages/techs/linux-get-pid/ 导读 Linux 的交互式 Shell 与 Shell 脚本存在一定的差异,主要是由于后者存在一个独立的运 ...

  2. 用C++和shell获取本机CPU、网卡IO、内存、磁盘等的基本信息

    用C++和shell获取本机CPU.网卡.内存.磁盘等的基本信息: 由于对C++相关的函数没多少了解,但是觉得用shell反而相对简单一些: 一.shell脚本,用来辅助C++获取主机的资源使用信息 ...

  3. linux中用shell获取昨天、明天或多天前的日期

    linux中用shell获取昨天.明天或多天前的日期 时间 -- :: BlogJava-专家区 原文 http://www.blogjava.net/xzclog/archive/2015/12/0 ...

  4. linux中用shell获取时间,日期

    linux中用shell获取昨天.明天或多天前的日期:在Linux中对man date -d 参数说的比较模糊,以下举例进一步说明:# -d, --date=STRING display time d ...

  5. 这些年我们一起搞过的持续集成~Jenkins+Perl and Shell script

    这些年我们一起搞过的持续集成~Jenkins+Perl and Shell script ##转载注明出处:http://www.cnblogs.com/wade-xu/p/4378224.html ...

  6. shell 获取网关 以及修改ip 启用网卡

    shell 获取网关 以及修改ip 启用网卡 #!/bin/bash #autho freefei #script is a init computer eth #data 2014 10 09 19 ...

  7. python执行shell获取硬件参数写入mysql

    最近要获取服务器各种参数,包括cpu.内存.磁盘.型号等信息.试用了Hyperic HQ.Nagios和Snmp,它们功能都挺强大的,但是于需求不是太符,亦或者太heavy. 于是乎想到用python ...

  8. Shell获取格式化日期

    Shell获取格式化日期 shell date 获取昨天日期 使用date -d 选项: date +"%Y%m%d" -d "+n days" 今天的后n天日 ...

  9. Shell获取文件的文件名和扩展名的例子

    这篇文章主要介绍了Shell获取文件的文件名和扩展名的例子,简明版的代码实例,看了就懂,需要的朋友可以参考下 basename example.tar.gz .tar.gz # => examp ...

随机推荐

  1. Python初学者第十一天 文件处理_batch

    11day 文件的操作分为读.写.修改 1.读: f = open(file='D:\新建文本文档.txt',mode='r',encoding='gbk') data = f.read() prin ...

  2. c# 的传递参数值传递与传递引用的区别,ref与out区别

    值传递 C#默认都是值传递的,就是复制变量的一个副本传递给方法,所以在退出方法后,对变量的修改无效. 但是要注意,当传递是引用类型时,因为引用类型是一个引用的地址,所以修改引用地址指向的对象时,一样会 ...

  3. awrsqrpt.sql简介

    ORACLE_HOME/RDBMS/admin/awrsqrpt.sql  这个脚本可以很方便地取出某个sql在某两个快照间隔内,消耗cpu时间,执行次数,逻辑读,物理读,sql的执行计划以及sql的 ...

  4. 为什么S/4HANA的生产订单创建后会自动release

    在S/4HANA系统里我们观察到通过函数CO_61_ORDER_EDIT创建的生产订单会自动释放Release: 通过第86行的IF语句的条件检测不难找到原因. 变量PROFILE_TMP的类型为TC ...

  5. vim使用常看

    原网址http://www.runoob.com/linux/linux-vim.html 补充参考https://blog.csdn.net/w178191520/article/details/8 ...

  6. OpenXml操作Excel

    要使用OpenXml首先要下载最新的Open XML Format SDK 2.0.具体的导入openxml的dll,去网上搜,很多 1.我个人写的XmlHelp类 using System; usi ...

  7. PHP-----CMS

    刚刚看到了一篇关于phpcms的文章自己今后比较有帮助,就把它摘了下来. 1.首先下载phpcms v9的集成安装包并安装,这里就不详细说明了. 2.本地调试建议大家使用APMserver,或者wam ...

  8. c++ 基础用法、基础知识以及一些常规的操作

    1.二叉平衡树:左子树和右子树的深度差小于等于1 2.二叉搜索树:左子树小于根节点的值,右子树大于根结点的值 3.队列:push(),pop(),front(),back(),empty(),size ...

  9. NopCommerce 3.4中商品详情页面单选框、复选框的美化

    先上图给大家看看效果,点这里打开网站(后期可能会找不到这个商品,现在再测试阶段) 现在你能看到的这个页面中,尺寸.文本描述是单选框(属性是我乱写的名字),上门安装是复选框.效果就看到这里,请君跳过图片 ...

  10. Mysql不同表的同名字段索引名可以相同

    mysql中不同表的相同字段索引是可以重名的,因为索引文件一表一个: 命名规则: 普通索引:idx_字段名 唯一索引:ux_字段名