使用脚本操作jenkins

公司使用jenkins构建项目, 通过网页手动操作太繁琐, 而jenkins提供了很多接口给我们使用, 可以使用curl连接到jenkins进行远程操作.
windows下没有curl命令, 通过gitbash来使用curl命令.
想要通过curl远程使用jenkins, 还需要在jenkins后台添加api-token.
gitbash安装流程略过.

1
2
3
4
# user jenkins用户
# job 项目名
# /lastBuild/buildNumber 可以获取项目最新的构建号
curl -s --user ${user} ${job}/lastBuild/buildNumber
1
2
3
4
5
6
7
8
9
10
# /api/json 可以查看构建信息, 可以用定时器实时检查构建是否完成
num=$1
info=`curl -s --user ${user} ${job}/${num}/api/json`
result=`echo $info | sed 's/,/\n/g' | grep 'result' | sed 's/"result": "//g' | sed 's/"//g'`
building=`echo $info | sed 's/,/\n/g' | grep 'building' | sed 's/"building": "//g' | sed 's/"//g'`
if [ "$result" = "result:SUCCESS" ];then
echo ok
else
echo wait
fi
1
2
3
4
5
6
# /consoleText 可以获取构建控制台日志, 这里通过日志获取到项目下载地址
num=$1
log=`curl -s --user ${user} ${job}/${num}/consoleText | tail -n 3`
log=${log//"Build Success. Download URL:"/""}
addr=${log//"Finished: SUCCESS"/""}
curl -s --user ${user} ${addr} > E:/${file}
1
2
3
4
5
6
7
8
9
10
11
# 生成json文件, json内是项目的一些配置信息, 需要根据你的项目配置进行修改
cat > E:/tmp_config.json <<EOF
{
"SVN_USER_NAME" : "svn用户名",
"SVN_USER_PWD" : "svn密码",
"PROJECT_NAME" : "项目名字",
"PROJECT_PATH" : "项目路径"
}
EOF
# /buildWithParameters 发送构建申请
curl -s --user jenkins用户名:api-token ${job}/buildWithParameters -d @E:/tmp_config.json