置顶

Jenkins根据代码库提交带构建参数记录构建不同环境的应用

作者:andy.zhang | 分类:未分类 | 浏览:145 | 日期:2022年08月30日

1,需求:在一个代码库里,根据提交文件时,提交的记录里带进相关参数分别对应不同环境的应用进行构建。

2,实现方法:

    a):Jenkins里有个插件changelog-environment,安装之后,可以在构建脚本之前配置参数。

        Add Changelog Information to Environment

            Entry Format填入“ %3$s(at %4$s via %1$s)\n ”#空格不要

            Date Format填入 “ yyyy-MM-dd HH:mm:ss ”#空格不要

        即可在执行脚本里引用$SCM_CHANGELOG这个变量获取

        但这里有个BUG,这个参数不像网上文档说的,经测试,只有个别时间才能获取到提交记录

        如果有网友有更好的插件,欢迎交流。

    b):用可执行脚本获取最后一个Jenkins Job,然后,在这个Job里对日志进行处理。获取构建参数

        脚本如下:(路径自己更改一下)

        #!/bin/bash

        #Get android builds Version

        cat /var/lib/jenkins/jobs/【jenkins构建名称】/builds/`cat /var/lib/jenkins/jobs/【jenkins构建名称】/builds/permalinks|grep "lastCompletedBuild"|awk  '{print $2}'`/log|grep "Commit mess"|awk -F "构建参数约定" '{print $2}'|awk -F "]" '{print $1}'

        #说明:构建参数约定,这个和开发约定一个特殊的英文单词或有特定意义的做为唯一参数,分割区分两边,从而把后面构建参数获取

        #我的实例里,开发约定的是android(安卓),因为构建的是安卓的APP。

        把这个脚本上传到jenkins用户有权限的目录,加上可执行权限即可在执行控制台里用变量接收。然后,对变量进行判断,根据变量的值改变构建参数即可。

    c):不明原因,令jenkins调用时,会有时获取不到脚本上的构建参数,故转用python实现,脚本如附件。

 Jenkins根据代码库提交带构建参数记录构建不同环境的应用  未分类Get_Version.py


        

        

发表评论

取消
微信二维码
微信二维码
支付宝二维码
点击关闭
  • 在线客服1