1、舊版本的Jenkins可以使用Dynamic Choice Parameter插件;
使用方法:
Jenkins--->dev-h5-server--->配置--->參數化構建過程--->選擇Dynamic Choice Parameter插件:
- Name: git_branch
- Choices Script :
- def gettags = ("git ls-remote -h http://10.0.10.25/h5-server.git").execute()
- gettags.text.readLines().collect { it.split()[1].replaceAll('refs/heads/', '') }.unique()
源碼管理--->Git---> Branches to build
- 把*/master 改成:$git_branch [就是上面定義的Name值]
這樣就可以獲取到git代碼分支了;
我在Jenkins舊版[Jenkins ver. 1.653]中有以下提示;[暫時未測試]
Git Parameter Plug-In 0.8.0
Assign git tag or revision number as parameter in Parametrized builds
Warning: This plugin requires dependent plugins be upgraded and at least one of these dependent plugins claims to use a different settings format than the installed version. Jobs using that plugin may need to be reconfigured, and/or you may not be able to cleanly revert to the prior version without manually restoring old settings. Consult the plugin release notes for details.
2、新版本[指2.0以上]Dynamic Choice Parameter插件已經在官方上找不到了,官方說明存在安全漏洞;
所以使用Git Parameter Plug-In 構建參數獲取分支的插件
使用方法:
Jenkins--->dev-h5-server--->配置--->參數化構建過程--->選擇Git Parameter Plug-In插件:
- Name: git_branch
- Description:描述可以寫些什么
- Parameter Type:選擇Branch
- Branch Filter: .*
- Tag Filter: *
- Sort Mode: NONE
- Default Value: master #默認不選擇的時候會使用master主干;
- Selected Value: DEFAULT #默認值為master
其它沒寫上來的都留空;
源碼管理--->Git---> Branches to build
- 把*/master 改成:$git_branch [就是上面定義的Name值]
這樣就可以獲取到git代碼分支了;
其實兩個插件的方法都是差不多,只是獲取出來的列表有點不一樣,Dynamic Choice Parameter插件加上腳本上的切片,只保留了分支名;而Git Parameter Plug-In會把origin/都顯示出來;
去掉那段E文的簡單方法:
- cd jenkins/plugins/git-parameter/WEB-INF/lib/
進入到插件的目錄下,創建一個臨時目錄:
- mkdir test
- cp git-parameter.jar test/
- cd test/
- jar xf git-parameter.jar
- vim ./net/uaznia/lukanus/hudson/plugins/gitparameter/GitParameterDefinition/index.properties
把第二行刪除,保存后再重新打包:
- jar cvf git-parameter.jar .*
- /bin/cp git-parameter.jar ../
替換原來的文件,建議修改前先備份一下;重新打包后大小從原來的64K變成了1.2M有點誇張;
重新啟動Jenkins服務時就可以發現那一段已經去掉了;