使用jenkins分类汇总git更新信息

17 篇文章 1 订阅

一、背景

有4个项目,每个项目对应多个git仓库,需要统计这4个项目下指定5位成员指定日期内的代码提交次数及message中包含jiraID的次数

二、实现

1、将4个项目名写入项目清单

vim pro.list

aiqa
aitr
nlp
pdf

2、分别将每个项目对应的多个git仓库名称写入对应项目的git仓库清单中

3、将需要统计的用户写入用户清单

vim wzzuserlist

luhuiguo
fanmj
lihr25646
shihj
chenyang24281

4、将需要统计的git仓库拉取到本地(可写个脚本批量clone)

git clone https://username:password@giturl/test.git

获取完毕目录如下

5、编写统计脚本

vim 3.sh

set -e
#!/bin/bash
# $1起始日期 $2截止日期
echo "" >count.list
for o in `cat /jenkins/workspace/count_git/all.list`
do
echo "项目名称$o" >>/jenkins/workspace/count_git/count.list
echo "------------">>/jenkins/workspace/count_git/count.list
for i in `cat /jenkins/workspace/count_git/wzzuserlist`
do
k=0
l=0
m=0
n=0
for p in `cat /jenkins/workspace/count_git/$o.list`
do
cd /jenkins/workspace/count_git/$p
git pull
git branch -a >wzzbranchlist
sed -i '2d' wzzbranchlist
sed -i -r 's/.* //' wzzbranchlist
for j in `cat wzzbranchlist`
do
k=($(git log $j --author="$i" --after="$1 00:00:00" --before="$2 23:59:59" |grep $i |wc -l))
l=($(git log $j --author="$i" --after="$1 00:00:00" --before="$2 23:59:59" |grep JIRA |wc -l))
m=$(($m+$k))
n=$(($n+$l))
#echo "$i 更新$j 总次数$m"
#echo "$i 更新$j 带jira单号$n"
done
done
echo "$i $m $n">>/jenkins/workspace/count_git/count.list

done
echo " ">>/jenkins/workspace/count_git/count.list
done
echo ""
echo ""
echo "统计结果如下"
cat /jenkins/workspace/count_git/count.list

6、创建jenkins任务count_git(pipeline)

pipeline {
    agent  any
        parameters {
		string(name:'start_date',defaultValue:'2019-01-01', description: '请填写统计的起始日期,如2019-01-01')
		string(name:'end_date',defaultValue:'2019-01-31', description: '请填写统计的截止日期,如2019-01-31')
		}
    stages {
		stage('统计') {  				
            steps {
             	sh"""
             	./3.sh ${params.start_date} ${params.end_date}
             	"""
				}				
			}
    }		
	}	

7、构建结果如下

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值